|
|
Feb 05, 2025
|
|
CSCI181N PO - Software FoundationsWhen Offered: Last offered spring 2016. Instructor(s): M. Greenberg Credit: 1
Building reliable software through formal verification. We weave together five threads: (1) logic, for making and justifying precise claims about programs; (2) proof assistants, to construct rigorous logical arguments; (3) functional programming, both as a method of programming and as a bridge between programming and logic; (4) formal techniques for reasoning about the properties of specific programs (e.g., the fact that a loop terminates on all inputs, or that a sorting function or a compiler obeys a particular specification; (5) type systems, for establishing well-behaveness guarantees for all programs in a given programming language (e.g., the fact that well-typed Java programs cannot be subverted at runtime). Prerequisites: CSCI 131 PO or CSCI 081 PO . This course has been revised for spring 2018 . Satisfies the following General Education Requirement(s), subject to conditions explained in the Degree Requirements section of this Catalog: Area 5; Speaking Intensive
Add to Portfolio (opens a new window)
|
|
|