The Missing Course

The Missing Course

A University of Montana course covering helpful software development tools and techniques based on The Missing Semester.



The topics/ directory contains the materials we will cover. It is organized into topics and each topic will generally take about a week. Keep in mind, however, that many topics will build on one another. This means that you really don’t want to fall behind. If you miss a week, be sure to catch up.


Lectures will be delivered electronically due to the COVID-19 pandemic. See Moodle for the Zoom link.

Office hours will be held virtually in an on-demand fashion. Please use Calendly to schedule an office hours appointment.

If you need help with an assignment, it is generally a good idea to include whatever code or data you are working with when you email me. You can do this using the tar command.

To create a zip file that includes all the files in a particular directory, use the following (in this case, the directory you want to zip is called “the_dir”):

tar czf the_dir.tgz the_dir

After you’ve done this, you can attach the_dir.tgz to an email.

Assuming no technology issues, lectures will be recorded and posted on the course web site and / or Moodle.

Lecture Videos

Lecture videos are available on YouTube, the list is on the videos/ page.


Student Guestbook

Students will submit each assignment by creating a “pull request” (PR) against this GitHub repository. Don’t worry, we’ll learn what that means before anything is due. This pattern will simulate a standard software development workflow. You can think of it as one big, semester-long group project.

Due dates are going to be a pretty relaxed affair. You’ll lose a point for every day something is late. The idea here is just to keep the whole class from turning in every assignment on the last day of the semester.

Assignments can be found in the assignments/ directory.


There isn’t a textbook, but there are a couple books that students might find informative. These are listed below. This list will likely be updated as the semester progresses.


Linux on Windows

It is possible to install a Linux distribution under Windows 10 using WSL (Windows Subsystem for Linux). This will be required for some of the topics we study during this course. See the link below for instructions.


Assignments will be evaluated automatically or by the instructor and grades will be posted on the course’s Moodle page for confidentiality.


If you have a documented disability and would like to discuss an affordance, please let me know as soon as possible.


George Lesica is a Senior Software Scientist in the Wheeler Lab at the University of Montana and a freelance software development and technology consultant.

Back to top