Introduces the fundamentals of software engineering, covering instruction processing, algorithms, programming languages, abstractions, testing, security, and open source.
Covers the basics of programming, including the development cycle of a program, strong typing, data storage in Java variables, and primitive data types.
Introduces Iris, a logical framework for reasoning about safety and correctness of concurrent higher-order imperative programs, emphasizing its unique characteristics and applications.