Principles of Computer Systems
MIT's graduate course 6.826 covers the rigorous foundations of computer systems, with a focus on concurrent and distributed computing. Topics include formal specification and verification, concurrent algorithms, synchronization, naming, networking, replication techniques such as distributed cache management, and methods for achieving system reliability. The MIT OpenCourseWare site provides lecture notes, problem sets, and exam materials used in the original course. The emphasis throughout is on using mathematical rigor to reason about correctness in systems where multiple processes interact, rather than on any specific programming language or platform. It suits students who already have a grounding in computer science and want to understand the theoretical underpinnings of building reliable distributed systems. No certificate is offered, consistent with MIT OpenCourseWare's self-paced, materials-only format.