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
- Set up a UNIX/Linux-compatible development environment
- Installing the latest Ubuntu LTS using VirtualBox
- Installing VS Code or confirm that you have a preferred code editor
- Learn the command line and version control basics
- Commonly used shell commands
- Introduction to Git
- SSH keys for Git
- Forgejo and Class Maestro basics
- Introduction to GitHub if you are new to GitHub-style repository hosting
- Learn the container workflow used by course assignments
- Open your active course run and complete the Etude Activity in Etude
- Confirm that you are ready to begin the first programming assignment
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.
- Installing the latest Ubuntu LTS (Long Term Support release) using VirtualBox
- Installing VS Code (Optional)
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.
- Commonly used shell commands
- navigation
- manipulating files and folders
- …
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.
- Introduction to containers
- Containers can be used as portable development environments. This is the how we'll be using them in this course.
- Installing Docker
- Introduction to Docker
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:
- https://docs.python.org/3/tutorial
- https://ehmatthes.github.io/pcc/cheatsheets/README.html
- https://docs.python.org/3/
1
Practice
Before you begin your first programming assignment, ensure you've…
- prepared a development environment
- become comfortable using the
cdcommand - installed
docker - familiarized yourself with basic
dockercommands - installed and configured
gitto use your preferred code editor - generated and registered an SSH key if your course uses Class Maestro-managed Forgejo repositories
- become familiar with
git clone <rep-url>,git add <filename>,git commit, andgit push - created an account on GitHub or confirmed your course Forgejo access through Class Maestro
- installed VS Code (or your favorite code editor)