The Missing Semester is a course and repository that teaches the engineering skills often skipped in traditional computer science curricula: command-line fluency, shell scripting, editors, version control, debugging, data wrangling, and automation. It includes lecture notes, exercises, and sample solutions that encourage hands-on practice rather than passive reading. The curriculum demystifies tools like bash, vim, git, and make, showing how to combine them into efficient workflows that scale from homework to production systems. Lessons dig into practical topics such as environment management, job control, shell pipelines, profiling, and reproducibility, with an emphasis on habits that save time and prevent errors. The materials are designed to be approachable for beginners yet still valuable to advanced users who want to sharpen their tooling. By the end, learners can work faster and more reliably because they understand the mechanics of their everyday tools.
Features
- Lecture notes, slides, and assignments for topics like version control, shell, debugging, logging, systems, etc
- Website generation via Jekyll (static site build) with local preview (bundle exec jekyll serve)
- Docker / docker-compose setup for building / serving locally without requiring host Ruby dependencies
- Multiple language / translation support (site localization)
- Open contribution model (issues / PRs for new content)
- Licensing under Creative Commons (CC BY-NC-SA) for course content