15 KiB
Top University Courses in Systems Programming, Compilers, and Low-Level Computing
Compilers & Language Design
-
MIT 6.035 - Computer Language Engineering
- Course Materials: MIT OCW
- Projects: Course Projects Repository
-
Stanford CS143 - Compilers
- Course Videos: YouTube Playlist
- Course Materials: Stanford EDU
- Additional Resources: Course Reader
-
Berkeley CS164 - Programming Languages and Compilers
- Course Materials: Berkeley Course Page
- Video Lectures: Berkeley Webcasts
- Projects Repository: GitHub
-
CMU 15-411 - Compiler Design
- Course Materials: CMU Course Page
- Lectures: YouTube Playlist
- Lab Resources: Course Labs
-
Cornell CS4120 - Introduction to Compilers
- Course Website: Cornell Course Page
- Lecture Notes: Course Materials
Operating Systems
-
MIT 6.828 - Operating System Engineering
- Course Materials: MIT OCW
- Video Lectures: YouTube Playlist
- xv6 Resources: xv6 Book
-
Stanford CS140 - Operating Systems
- Course Materials: Stanford EDU
- Reference Documentation: Course Reader
- PintOS Project: Project Repository
-
Berkeley CS162 - Operating Systems and System Programming
- Course Materials: Berkeley Course Page
- Video Lectures: YouTube Playlist
- Projects: CS162 GitHub
-
Harvard CS161 - Operating Systems
- Course Materials: Harvard EDU
- OS/161 Resources: OS/161 Documentation
-
MIT 6.S081 - Operating System Engineering (RISC-V Focus)
- Course Materials: MIT Course Page
- Video Lectures: YouTube Playlist
- Lab Assignments: Course Labs
Computer Architecture & Assembly
-
MIT 6.004 - Computation Structures
- Course Materials: MIT OCW
- Video Lectures: YouTube Playlist
- Lab Assignments: Course Labs
-
Berkeley CS61C - Great Ideas in Computer Architecture
- Course Materials: Berkeley Course Page
- Video Lectures: YouTube Playlist
- Labs & Projects: Course Resources
-
CMU 15-213 - Introduction to Computer Systems
- Course Materials: CMU Course Page
- Video Lectures: YouTube Playlist
- Lab Assignments: Course Labs
-
Stanford CS107 - Computer Organization & Systems
- Course Materials: Stanford EDU
- Course Reader: CS107 Reader
Performance Engineering & Systems Optimization
-
MIT 6.172 - Performance Engineering of Software Systems
- Course Materials: MIT OCW
- Video Lectures: YouTube Playlist
- Projects: Course Projects
-
Stanford CS315A - Parallel Computer Architecture and Programming
- Course Materials: Stanford Course Page
- Additional Resources: Course Notes
-
CMU 15-418 - Parallel Computer Architecture and Programming
- Course Materials: CMU Course Page
- Video Lectures: YouTube Playlist
Distributed Systems
-
MIT 6.824 - Distributed Systems
- Course Materials: MIT Course Page
- Video Lectures: YouTube Playlist
- Labs: Course Labs
-
Stanford CS244b - Distributed Systems
- Course Materials: Stanford Course Page
- Reading List: Course Readings
Security & Systems
-
MIT 6.858 - Computer Systems Security
- Course Materials: MIT Course Page
- Video Lectures: YouTube Playlist
- Labs: Security Labs
-
Stanford CS155 - Computer and Network Security
- Course Materials: Stanford Course Page
- Projects: Course Projects
Systems Programming & Low-Level Programming
-
Harvard CS50 - Introduction to Computer Science (Heavy C Focus)
- Course Materials: CS50 Website
- Video Lectures: YouTube Playlist
- Problem Sets: CS50 Problems
-
Stanford CS107E - Computer Systems from the Ground Up
- Course Materials: Stanford Course Page
- Labs: Course Labs
-
CMU 15-123 - Principles of Imperative Computation
- Course Materials: CMU Course Page
- Resources: Course Resources
Advanced Topics
- Stanford CS240 - Advanced Topics in Operating Systems
- Course Materials: Stanford EDU
- Reading List: Course Readings
Complete Systems Programming Educational Resources
Additional Learning Resources
Free Textbooks & Online Books
-
Operating Systems: Three Easy Pieces
-
Computer Systems: A Programmer's Perspective
-
The Craft of Programming
-
xv6: a simple, Unix-like teaching operating system
-
Programming from the Ground Up
Development Environments & Virtual Machines
-
MIT JOS Operating System Lab
-
Stanford PintOS
-
Harvard OS/161
-
Berkeley RISC-V Toolchain
Practice Problems & Assignments
-
CMU Computer Systems Performance Problems
-
MIT OCW Problem Sets
-
Stanford Practice Problems
Advanced Architecture & Computer Systems
-
University of Washington CSE351 - The Hardware/Software Interface
- Course Materials: Course Website
- Labs: Course Labs
-
EPFL CS-323 - Introduction to Operating Systems
- Course Materials: Course Website
- Projects: Course Projects
-
UC Berkeley CS152 - Computer Architecture and Engineering
- Course Materials: Course Website
- Labs: RISC-V Labs
Systems Programming & Performance
-
UIUC CS241 - System Programming
- Course Materials: Course Website
- Projects: Course Projects
-
UW-Madison CS537 - Introduction to Operating Systems
- Course Materials: Course Website
- Projects: Course Projects
-
ETH Zürich - Systems Programming and Computer Architecture
- Course Materials: Course Website
- Projects: Course Projects
Embedded Systems & Real-Time Computing
-
MIT 6.111 - Introductory Digital Systems Laboratory
- Course Materials: MIT OCW
- Labs: Lab Materials
-
Stanford CS341 - Embedded Systems Workshop
- Course Materials: Course Website
- Projects: Project Resources
Advanced Topics
-
MIT 6.826 - Principles of Computer Systems
- Course Materials: Course Website
- Reading List: Course Readings
-
Berkeley CS262A - Advanced Topics in Computer Systems
- Course Materials: Course Website
- Reading List: Research Papers
Online Learning Platforms with Systems Programming Courses
-
Coursera
-
edX
GitHub Repositories with Learning Resources
-
The Missing Semester of Your CS Education
- Command-line tools
- Version control
- Debugging tools
-
- Curated list of free courses
- Project-based learning
- Community support
-
- Frameworks
- Libraries
- Resources
-
- Assembly
- Operating Systems
- Compiler Construction
Development Tools & Resources
-
Debugging Tools
- GDB Tutorial: Guide
- Valgrind: Documentation
- LLDB: Tutorial
-
Performance Analysis Tools
- Perf: Tutorial
- VTune: Guide
- DTrace: Documentation
-
Compiler Tools
- LLVM: Getting Started
- GCC: Documentation
Practice Projects
-
Build Your Own X
-
System Programming Projects
Community Resources
-
Forums & Discussion
-
Conferences & Workshops
- USENIX OSDI
- SOSP
- EuroSys
Important Notes
- Course availability and materials may vary by semester
- Some resources might require university credentials
- Always check for the most recent version of course materials
- Many courses update their materials yearly
- Some resources might be architecture-specific (x86, ARM, RISC-V)
- Practice proper security when downloading virtual machines or tools
- Consider contributing back to open-source educational resources