[Home] [Syllabus] [Assignments] [Resources]
Both the midterm and the final exams are open book, open notes.
Note that the date for the midterm exam is set and will not change. If you have a conflict with this date, please let me know right away.
All reading is from John Mitchell "Concepts in Programming Languages", unless specified otherwise.
Problem sets are due in the beginning of the class on the due
date. Late penalty is 1/3 of the credit per each class meeting that a
problem set is late, unless a problem set is accompanied by a late
coupon (see below).
For instance, if a problem set is due on Wednesday, but is submitted
on Thursday or on Friday before the class meeting, then it is graded
out of 2/3 credit, and if it is submitted after Friday, but before
Monday class meeting, then it is graded out of 1/3 credit. Problem sts
which are more than 2 class meetings late loose all their credit.
Problem sets submitted more than 2 minutes after beginning of the class are considered late.
|Week 1: August 25 -- August 29|
Introduction, course overview.
Reading: Ch. 1.
Language design space, language processing (compilers,
Reading: TBA due Fri, Sept. 12th
Reading: Ch. 2.
|Week 2: Sept. 1 -- Sept 5|
|LABOR DAY -- no class||
Problem set 1: Computability (WAS due Wedn., Sept. 10th, extended to Fri., Sept. 12th)
Functional vs. imperative languages, overview of Scheme.
Reading: Ch. 3.
|Week 3: Sept. 8 - Sept. 12|
|Data representation in Scheme (box-and-pointer model)||First-class functions in Scheme.||
Discussion of practicality of functional languages.
Introduction to semantics of programming languages, lambda calculus.
Reading: Ch. 4.
Problem set 1 due
Problem set 2: Scheme (due Fri., Sept. 19th)
|Week 4: Sept. 15 - Sept. 19|
|Lambda calculus (continue)||Introduction to denotational semantics.||
Reasoning about programs based on semantics.
Problem set 2 due
Problem set 3: Lambda calculus, denotational semantics. (due Fri., Sept. 26th)
|Week 5: Sept. 22 - Sept. 26|
Historic overview of "imperative" languages (Algol, Pascal,
C), introduction to ML.
Reading: Ch. 5
|Introduction to ML types, ML assignment statement.||
More on ML types; ML pattern-matching.
Problem set 3 due
Problem set 4: ML. (due Fri., Oct. 3rd)
|Week 6: Sept. 29 - Oct. 3|
Type systems in programming languages other than ML. Type checking,
Reading: Ch. 6 (except 6.5)
|ML type inference in detail.||
Problem set 4 due
Problem set 5: Type systems, type inference. (due Fri., Oct. 10th)
|Week 7: Oct. 6 - Oct. 10|
Reading: Ch. 7.
|Midterm exam (includes material up to Wedn., Oct. 1)||
Storage management for functions, parameter passing.
Problem set 5 due
|Week 8: Oct. 13 - Oct. 17|
|FALL BREAK -- no class||
Storage management for recursion, higher order functions.
Problem set 6: Storage management (due Wedn., Oct. 22nd)
|Storage management (cont.).|
|Week 9: Oct. 20 - Oct. 24|
Reading: Ch. 8 (except 8.3).
Problem set 6 due.
Problem set 7: storage management, control, exceptions. (due Wedn., Oct. 29th)
Data abstraction and modularity.
Reading: Ch. 9.
|Week 10: Oct. 27 - Oct. 31 Beginning of winter!|
|Modularity. Overview of Modula, Ada.||
Modules in other languages. Discussion.
Problem set 7 due.
Problem set 8: modularity (due Wedn., Nov. 5th)
Reading: Ch. 10.
|Week 11: Nov. 3 - Nov. 7|
|Program structure, design patterns in Object-oriented languages.||
Historic overview: Simula, Smalltalk, C++, Java
Problem set 8 due.
Problem set 9: object-oriented languages (due Wedn., Nov. 12th)
Simula, Smalltalk in more detail: subtyping, inheritance
Reading: Ch. 11.
|Week 12: Nov. 10 - Nov. 14|
Overview of C++
Reading: Ch. 12
Object-oriented features in C++
Problem set 9 due.
Problem set 10: Object-oriented languages 2 (due Wedn., Nov. 19th)
Overview of Java
Reading: Ch. 13.
|Week 13: Nov. 17 - Nov. 21|
Object-oriented features in Java
Java types and subtyping, Java system architecture, security features
Problem set 10 due.
Problem set 11: Java features (due Wedn., Nov. 26th)
Concurrency, distributed programming.
Reading: Ch. 14.
|Week 14: Nov. 24 - Nov. 28|
The Actor Model
Concurrent ML, Java threads
Problem set 11 due.
Problem set 12: Concurrency (due Wedn., Dec. 3rd)
|THANKSGIVING -- no class|
|Week 15: Dec. 1 - Dec. 5|
Reading: Ch. 15
Problem set 12 due.
Problem set 13: Logic programming (due Wedn., Dec. 10th)
|Mobile computation, web languages, XML.|
|Week 16: Dec. 8 - Dec. 11|
Catch up and discussion.
Review and wrap up.
Problem set 13 due.
The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.