The Missing Course
A University of Montana course covering helpful software development tools and techniques based on The Missing Semester.
Schedule
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.
Instruction
Lectures will be delivered electronically due to the COVID-19 pandemic. Office hours will be held virtually in an on-demand fashion. Please use Calendly to schedule an office hours appointment. I am also available on Microsoft Teams (see below).
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.
Assignments
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.
Reading
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.
Prerequisites
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.
Grading
Assignments will be evaluated automatically or by the instructor and grades will be posted on the course's Moodle page for confidentiality.
Disabilities
If you have a documented disability and would like to discuss an affordance, please let me know as soon as possible.
Instructor
George Lesica is a Senior Software Scientist in the Wheeler Lab at the University of Montana and a freelance software development and technology consultant.
- Email: george.lesica@umontana.edu
- Microsoft Teams: George Lesica