15-212: Principles of Programming
This course presents principles and techniques of programming, focusing on sophisticated methods for specifying, constructing, and reasoning about computer programs. Via features of a high-level functional programming language (currently ML), this course concretely illustrates mechanisms for building user-defined data types, including recursive and polymorphic types, and infinite data structures such as streams; for building higher-order control constructs such as first-class functions and continuations; and for building large programs using advanced module composition. It also introduces the use of formal methods for specifying and verifying programs.
| Lec | TR | 03:00 pm - 04:20 pm | DH 2210 | Brookes |
| A | W | 10:30 am - 11:20 am | MM 103 | Instructor TBA |
| B | W | 11:30 am - 12:20 pm | DH 1217 | Instructor TBA |
| C | W | 12:30 pm - 01:20 pm | DH 1217 | Instructor TBA |
| E | W | 02:30 pm - 03:20 pm | DH 1217 | Instructor TBA |
| F | W | 03:30 pm - 04:20 pm | DH 1217 | Instructor TBA |

