Programming Languages
G22.2110-001, Summer 2007

News / General information / Objectives / Schedule / Grading / Examples / See also

General information

Lecture: Thursdays 6:00-8:20, Room 102, WWH
Instructor: Martin Hirzel,, 401 WWH
Recitation: Mondays 7:10-8:10, Room 102, WWH
Teaching assistant: Abhijit Guria,, 417 WWH, 212-998-3106
Instructor office hours: Thursdays 5:00-6:00pm, Room 401, WWH, or by appointment
TA office hours: Mondays 6:10-7:10pm, Room 417, WWH
Text book: Programming Language Pragmatics, Second Edition (2006), by Michael Scott
Mailing list:


This course has the following goals: See also the graduate course description for G22.2110.
This course uses examples from Python, Scheme, C, Ada 95, Java, and SML.


Below is the lecture and assignments schedule; it will probably keep changing throughout the semester. Lectures are on Thursdays, recitations are on Mondays, and homework assignments are due on Wednesdays at 1pm. Please complete the reading assignment before the corresponding lecture. This will make it easier for you to understand the material. Please take a look at the homework assignment before recitation. This will make it easier for you to ask questions.

Date Lecture and recitation topic hw Reading assignment
Th 5/17 Introduction and syntax hw01 Scott 1.2, 1.3, 2.1
Th 5/24 Imperative languages (Python) hw02 Scott 6.0, 6.1.0-6.1.1; van Rossum 1-5
Th 5/31 Functional languages (Scheme) hw03 Scott 10.0, 10.2, 10.3.0-10.3.4; Candolin
Th 6/7 Names, scopes, and binding hw04 Scott 3.2, 3.3.0-3.3.3, 3.3.6
Th 6/14 Low-level languages (C) hw05 Scott 7.7.0-7.7.1; Drexel 1-10
Th 6/21 Midterm exam   
Th 6/28 Types and modules (Ada) hw06 Scott 7.1.0-7.1.3, 7.2.0-7.2.2; Wheeler 1-6, 8-9
Th 7/5 Object-oriented languages (Java) hw07 Scott 9.1, 9.4.3; Sun classes, objects, more on
classes, interfaces, inheritance, strings, packages
Th 7/12 Subroutines hw08 Scott 8.1, 8.2.0, 8.3.0-8.3.1, 8.5.0-8.5.2
Th 7/19 Parametric polymorphism (SML) hw09 Scott 7.2.4 (on CD); Cumming
Th 7/26 Concurrency hw10 Scott 12.3.4-12.3.5, 12.4.2-12.4.3
Th 8/2 Final exam    



Code examples from homeworks. The file names end in ".txt", so that your web browser will display or download the code when you click on the link. If you would like to write some more code on your own, the table gives you some ideas for extending the code examples.

Description Language File Practice ideas
Data formatter Python hw01-py-example.txt - allow escaped doublequotes in values
- sort the table by a user-specified column
- support relational select, project, and join
Differentiator Scheme hw02-scm-example.txt - other differentation rules
- further simplification
- omit spurious parentheses in toStrng function
Linked list C hw05-c-example.txt - fix that bug
- provide an interactive driver
- implement concatenation, sorting, reverse
Stack Ada hw06-ada-driv.txt
- change internal representation from array to list
- make robust for unexpected inputs
- interpret operators: pop operands, push result
Stack Java hw07-java-driver.txt
- change internal representation from array to list
- make robust for unexpected inputs
- interpret operators: pop operands, push result
Statistics SML hw08-sml-example.txt - compute geometric mean or median
- turn standard_deviation_helper into nested function
- do excursions from Cumming tutorial

See also

Graduate courses:
Graduate schedule:
PL in previous semesters: Spring'07 (Hirzel), Fall'06 (Strom), Summer'06 (Balaban), Spring'06 (Osinski)
Core exam syllabus:
Graduate course descriptions:
Academic dishonesty policy:
This file was last checked into CVS $Date: 2013/06/16 19:11:10 $ UTC (New York is at UTC-5).