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.
Complete these tutorials in the order listed.
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.
If you're using a machine with an ARM64 CPU (ex. a Mac M1), you won't be able to run VirtualBox. If you're on a Mac, you can install Docker Desktop directly and execute the provided commands in the terminal. If you're unsure if your Mac has an ARM64 CPU, see this article from Apple. Note the CLI commands used throughout the course tutorials will not work as-is in Windows PowerShell. Windows users should install Ubuntu (either via VirtualBox or natively on a separate partition).
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 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 all programming assignments in this course using Git and GitHub.
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.
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:
Before you begin your first programming assignment, ensure you've...
cd
commanddocker
docker
commandsgit
to use your preferred code editorgit clone <rep-url>
, git add <filename>
, git commit
, and git push