CS 207 - Advanced Programming Languages
Winter 2011

News

Overview

InstructorIulian Neamtiu
 
  
LecturesTR    8:10 a.m. - 9:30 a.m., CHASS Interdisciplinary Build South (INTS) room 1132
  
Office hours TR    9:45 a.m. - 10:45 a.m. Engineering Building 2 (ENGR2) room 412
GradingProject (45%) + Final exam (30%) + Assignments (20%) + Class participation (5%)
TextbookTypes and Programming Languages by Benjamin C. Pierce.
Final examTBD (take home)
Prerequisites CS 152 (or equivalent) and CS 181 (or equivalent)
iLearn page

Catalog description: Introduces the techniques for analyzing program semantics and correctness. Covers simply-typed lambda calculus, as well as basic and advanced type systems. Presents axiomatic, operational, and denotational semantics. Explores programming-language constructs and tools for specifying, reasoning, and verifying correctness properties. Includes safe memory accesses and safe concurrent programming or security.

Schedule

The schedule might change during the quarter so check this page often!

Day Date Topic Reading Notes
Tue Jan 4 Introduction   Assignment 1 out
Thu Jan 6 OCaml .  
Tue Jan 11 Untyped Arithmetic Expressions (I) Chapters 2,3  
Thu Jan 13 Untyped Arithmetic Expressions (II) . Assignment 1 due
Tue Jan 18 Untyped Lambda Calculus (I) Chapter 5  
Thu Jan 20 Untyped Lambda Calculus (II) .  
Tue Jan 25 Typed Arithmetic Expressions Chapter 8  
Thu Feb 27 Simply Typed Lambda Calculus Chapter 9 Assignment 2 due
Tue Feb 1 The Curry-Howard Isomorphism
Extensions to Simply Typed Lambda Calculus
Chapter 11  
Thu Feb 3 Extensions, Exceptions Chapters 11,14  
Tue Feb 8 Exceptions (cont'd), References Chapters 13,14 Project stage 1 due
Thu Feb 10 Subtyping Chapter 15  
Tue Feb 15 Subtyping (II) Chapters 15,16  
Thu Feb 17 Imperative Objects Chapter 18  
Tue Feb 22 Featherweight Java Chapter 19
(optional)Featherweight Java: A Minimal Core Calculus for Java and GJ by Igarashi, Pierce, and Wadler up to Section 3 (page 13)
Project stage 2 due
Thu Feb 24 Polymorphism: Universal Types Chapter 23
(optional)On Understanding Types, Data Abstraction, and Polymorphism by Cardelli and Wegner
 
Tue March 1 Polymorphism: Existential Types Chapter 24  
Thu March 3 Operational semantics
for multi-threaded programsDependent Types
Types for safe locking by Flanagan and Abadi   Assignment 3 due
Tue March 8 Project presentations    
Thu March 10 Project presentations    
  TBD Final Exam    

Projects

Each student is expected to complete a research project, write up the material describing the project in a similar manner to a research paper, and present the project in class (in one of the last classes). The project can have an implementation flavor, a theoretical flavor, or both.

The instructor will suggest several possible project topics, but the students are encouraged to choose their own topics, as long as they are relevant to this class.

The projects can be completed individually or in teams, with the expectation for team projects being commensurately higher than for individual projects.

Resources

Optional books:

Policies

Attendance and basic etiquette

Students are required to attend, follow, and actively participate in all lectures and discussions. All lectures, discussions, and exams start at the stated time. Avoid being late coming to class, as this is very disruptive. Students are requested to refrain from using electronic devices (laptops, cell phones, music players, etc.) during lectures, exams, and discussions. If, for some compelling reason, you need to be on call, be sure to put your cell phone in silent mode, and excuse yourself from the class if you need to take a call. Analogously, when coming to see the instructor or the TA, please turn your cell phone off.

Academic Integrity

Academic integrity will be strictly enforced. Any violation or suspected violation of academic integrity will be dealt with according to the UCR discipline procedure. An excellent, detailed guide to what constitutes academic dishonesty and the procedure in case of academic integrity violations is available here.

What constitutes academic dishonesty?

In short: acts including but not limited to, cheating, fabrication, plagiarism, unauthorized collaboration, or facilitating any of the above.

What are the penalties and sanctions for academic dishonesty?

In short: if a student is found guilty of academic dishonesty, penalties range from receiving an F for the class and adding a record of violation to the student's file, up to dismissal from the University, depending on the severity of the infraction and the number of prior violations of the integrity code.

Ignorance is no excuse.

The above information is not designed to threaten or intimidate the student. Rather, it is presented to inform the individual of the consequences. The important thing to remember is that if there is any doubt in one's mind that an act is in violation of academic integrity guidelines, then the prudent response would be not to do the act. It is a simplistic approach, to be sure, but one that will benefit both the student and the university community as a whole.