
Questions Schedule Piazza Autolab 
 DESCRIPTION:
 This multidisciplinary junior/seniorlevel course is designed to provide a thorough introduction to modern constructive logic, its roots in philosophy, its numerous applications in computer science, and its mathematical properties. Some of the topics to be covered are intuitionistic logic, inductive definitions, functional programming, type theory, connections between classical and constructive logic, logic programming, proof search, logical frameworks.
 PREREQUISITES:

15150: Functional Programming.
For the crosslisted graduate version, 15657, some experience with functional programming is recommended.  TEXTBOOK:

There is no textbook.
 METHOD OF EVALUATION:

Grading will be based on a set of homework assignments and exams.
40% Assignments, 15% Midterm I, 15% Midterm II, 30% Final.
Midterm I: TBD during lecture time, 150 points. Closed book, one doublesided sheet of handwritten notes permitted. Midterm II: TBD during lecture time, 150 points. Closed book, one doublesided sheet of handwritten notes permitted. Final: TBD during finals week, 300 points. Open book.  MORE INFORMATION:
 See prior instances of this course in Fall 2015 and Fall 2016 and by Frank Pfenning, Karl Crary for more information on prior versions of this course.