Theory and Practice of Safe Systems Programming
Modern developments in programming languages, toolchains, and package management reduce the risk of security vulnerabilities from programming errors and supply chain attacks. This course covers the theory and practice of ownership type systems, their application in systems programming, and discussion of the vulnerabilities they mitigate. Approaches to software integrity and distributed code review are investigated in the context of package management and supply chain attacks. Coursework includes development of a large systems program in a language with ownership types such as Rust.
CSC 447 is a prerequisite for this class.