Distributed systems, databases, operating systems, compilers, programming languages, networking, and computer architecture.
Structural connections linking subfields, mathematical foundations, and courses across disciplines.
Through the Curry-Howard correspondence, intuitionistic proofs and constructive logic map isomorphically onto lambda calculus terms and static type systems.
MIT · Hal Abelson & Gerald Jay Sussman
SICP provides a foundational understanding of programming language design, interpretation, and compilation, exploring concepts like lambda calculus, recursion, and abstraction that underpin modern language theory.
Felienne Hermans · Vrije Universiteit Amsterdam
This lecture bridges programming language theory with the emerging impact of AI on software development, exploring how AI influences code generation, program understanding, and the very nature of programming knowledge.
Jeaye Wilkerson · Clojure/conj
This lecture explores an advanced topic in programming language implementation, specifically compiling Clojure to native code via LLVM, demonstrating practical applications of compiler design and language interoperability.
Carnegie Mellon University · Andy Pavlo
This course provides a comprehensive, graduate-level exploration of database system internals, covering storage, indexing, query processing, concurrency control, and recovery, forming the theoretical and practical core of the subfield.
Harvard University · David J. Malan
CS50 introduces fundamental programming and data structures, including basic database concepts like SQL and relational models, providing an entry point to the more specialized field of database systems.