General Information
Instructor: |
John Reppy |
JCL 253 |
|
TA: |
Adrian Lehmann |
||
Lectures: |
TR 12:30-13:50 |
JCL 011 |
Course Description
This course is an introduction to the theory of programming languages. It develops the mathematical tools for specifying and reasoning about the static and dynamic semantics of programming languages. The course covers various different techniques for specifying language semantics.
Lectures
Because this is the first offering of this class, the exact syllabus is undecided. We do expect to cover most (if not all) of the following topics:
-
Review of Mathematical Tools: logic, sets, relations, lattices, term algebras, induction, etc.
-
The λ-calculus; axiomatic and operational semantics
-
The Church-Rosser Theorem
-
PCF (Programming Computable Functions)
-
Large-step operational semantics
-
Small-step operational semantics
-
Abstract machines
-
The simply-typed λ-calculus (STLC)
-
Simple types for PCF
-
Relating static and dynamic semantics (soundness)
-
Hindley-Milner Polymorphism
-
Mutable state
-
Non-local control flow (\eg{}, exceptions)
-
Abstract interpretation
Office Hours
Weekday | Time | Host | Location |
---|---|---|---|
Monday |
14:00-15:00 |
John Reppy |
JCL 253 |
Wednesday |
13:00-14:00 |
John Reppy |
JCL 253 |
14:30-15:30 |
Adrian Lehmann |
JCL Common Area 2B |
|
Friday |
9:30-10:30 |
Adrian Lehmann |
JCL 205 |
Textbook
The textbook for the course is
Introduction to the Theory of Programming Languages, by Gilles Dowek and Jean-Jacques Lévy. Springer-Verlag, 2011.
The book will be available from the Seminary Co-op Bookstore; it is also available online.
Coursework
The course work consists of attending (and participating in) the course lectures; six or seven written homework assignments, and two exams. There are no programming assignments for this class.
CMSC 32450
This course also has a graduate-version. Students who are enrolled in the graduate class will be expected to do some additional work beyond that required for 22450.
Exams
There will be two exams in this class. The first will be an in-class exam on Thursday, April 20. The second will be during exam week on Thursday May 25 from 12:30-2:30 PM in JCL 011.
Academic Honesty
Note
|
The following discussion is owed to Stuart Kurtz |
The University of Chicago is a scholarly academic community. You need to both understand and internalize the ethics of our community. A good place to start is with the Cadet’s Honor Code of the US Military Academy: "A Cadet will not lie, cheat, or steal, or tolerate those who do." It is important to understand that the notion of property that matters most to academics is ideas, and that to pass someone else’s ideas off as your own is to lie, cheat, and steal.
The University has a formal policy on Academic Honesty, which is somewhat more verbose than West Point’s. Even so, you should read and understand it.
We believe that student interactions are an important and useful means to mastery of the material. We recommend that you discuss the material in this class with other students, and that includes the homework assignments. So what is the boundary between acceptable collaboration and academic misconduct? First, while it is acceptable to discuss homework, it is not acceptable to turn in someone else’s work as your own. When the time comes to write down your answer, you should write it down yourself from your own memory. Moreover, you should cite any material discussions, or written sources, e.g.,
Note: I discussed this exercise with Jane Smith.
The University’s policy, for its relative length, says less than it should regarding the culpability of those who know of misconduct by others, but do not report it. An all too common case has been where one student has decided to "help" another student by giving them a copy of their assignment, only to have that other student copy it and turn it in. In such cases, we view both students as culpable and pursue disciplinary sanctions against both.
For the student collaborations, it can be a slippery slope that leads from sanctioned collaboration to outright misconduct. But for all the slipperyness, there is a clear line: present only your ideas as yours and attribute all others.
If you have any questions about what is or is not proper academic conduct, please ask your instructors.
COVID-19 Policies
UChicago Health Pact
All students on campus are required to adhere to the guidelines in the UChicago Health Pact in order to promote a safe environment in the classroom.
Unvaccinated and fully vaccinated individuals are required to wear a face covering over the nose and the mouth at all times while in University buildings (except when eating or in a private space). Do not attend class if you feel unwell or are experiencing COVID-19 related symptoms The complete text of the UChicago Health Pact along with additional information about COVID-19 protocols can be found here.
Reporting COVID-19 Related Concerns
Any concerns over inappropriate PPE usage, physical distancing, cleaning/disinfection, or other COVID-19 related public health concerns should be directed to UCAIR.
If there is an emergency, call 773-702-8181 or dial 123 on any campus phone.
Reporting COVID-19 Exposure or a Confirmed Case
If you were potentially exposed to COVID-19 or your COVID-19 test results come back positive, reach out immediately to C19HealthReport@uchicago.edu.