general

Configuring your development environment

Overview

In this unit, you will configure a development environment which you will use to learn the basics of the Linux command line, version control with Git, and containerization using Docker.

After reviewing, you'll apply this information to complete and submit your first programming assignment which serves as a practical introduction to jupyter notebooks.

Outcomes

  • create a working UNIX/Linux-based development environment
  • demonstrate competancy with the basics of the Linux command line (navigation, creating directories, etc.)
  • demonstrate competency with Docker containers as a means of managing dependencies
  • demonstrate how to use Git with GitHub or course Forgejo repositories to download (clone), complete (commit), and submit (push) programming assignments

Learn

Unit checklist

Configuring your development environment

The examples and assignments used in this course are all designed to run on a UNIX-like operating system (ex. Linux, Darwin/MacOS). One free(!) option is to use a Linux-based operating system. In order to ensure you can follow along, you'll need to set up a compatible development environment. We'll look at one way of doing so using a virtual machine.

Important note

Linux command line basics

Nearly all of the tools we'll use in this course must be run from the command line. While intitially intimidating for some, knowing your way around a terminal will save you a great deal of time in the long run.

Version control

Version control is an essential tool for software developers. It makes it easy to safely develop and test features, track progress, and revert to a working state if breaking changes are inadvertently introduced to some code base. You'll be developing and submitting programming assignments in this course using Git with either GitHub or the course Forgejo instance linked from Class Maestro.

Containerization and Docker

Containerization is a reliable way to manage dependencies as well as create and share uniform development environments. All of your programming assignments in this course will leverage docker for developing and testing your solutions. After you make it over this initial hurdle, you shouldn't have any trouble running future assignments.

Unfamiliar with Python?

This course assumes you have some experience programming. We'll be using Python 3 for all programming assignments. If you're unfamiliar with Python 3, you may want to review the following resources:

XKCD 3531

Practice

Before you begin your first programming assignment, ensure you've…

Footnotes

  1. https://xkcd.com/353