(jhala+230@cs.ucsd.edu)
(nvazou+230@cs.ucsd.edu)
The goal of this class is to expose students to advanced programming language ideas, including high-level programming abstractions, expressive type systems and program analyses. We will develop these ideas in roughly two parts. First, we will study various high-level programming abstractions through the lens of Haskell, a pure functional programming language that has been the incubator for many recent PL advances. In the second part we will see how the lambda calculus can be used to distill essence of computation into a few powerful constructs, and we will use it as a launching pad to study expressive type systems, logics and analyses that can make precise predictions about run-time behavior at compile time. For more details see the lecture plan.
The class is mostly self contained. However, it will be helpful to have some knowledge of basic discrete math, and it will be essential that you enjoy programming and have a desire to learn the material.
University rules on integrity of scholarship will be strictly enforced. By taking this course, you implicitly agree to abide by the UCSD Policy on Integrity of Scholarship described here.
In particular, “all academic work will be done by the student to whom it is assigned, without unauthorized aid of any kind.” You are expected to do your own work on all assignments; there are no group projects in this course. You may (and are encouraged to) engage in general discussions with your classmates regarding the assignments, but specific details of a solution, including the solution itself, must always be your own work. There will be graded assignments and exam in this course, as described below. All exams are closed book; no implement other than your brain and a writing instrument are to be used.
Incidents which violate the University’s rules on integrity of scholarship will be taken seriously. In addition to receiving a zero (0) on the assignment/exam in question, students may also face other penalties, up to and including, expulsion from the University. Should you have any doubts about the moral and/or ethical implications of an activity regarding the course, please see the instructor.