Programs from LectureTopInstructor   TextsLectures and Readings

Lectures and Readings

The schedule on the following two pages shows the tentative schedule of topics to be covered at each class meeting during the semester. Consult this page regularly to see the most current version of the schedule of topics and readings. The on-line version of this schedule will be revised as the semester progresses.

I expect you to do the reading for a class before the lecture. I will not attempt to cover in lecture all the material in the readings. Instead my goal will be to cover the highlights or particularly difficult material. For this to work, you will need to already be familiar with the simpler aspects of the material. If you keep up your part of the bargain we should be able to have more interesting discussions in class, rather than just listening to me go over the text.

In the table below, M stands for the textbook by Mitchell.

Lecture

Date Topic Reading
1. Sept. 3 Intro & Grace M 1
2. Sept. 5 Grace M 4.2
3. Sept. 8 Computability & Lisp (read)

M 2, 3
4. Sept. 10 Compilers & Lambda Calculus M 4.1-4.2, Lambda Calculus Cheat Sheet
5. Sept. 12 More lambda calculus M 4.4
6. Sept. 15 Lambda Calculus & Functional Languages Revised Chapter 5
7. Sept. 17 Haskell
8. Sept. 19 Haskell & Monads Tackling the Awkward Squad, pp. 1-16
9. Sept. 22 Haskell Monads & Functional Languages Evaluation
10. Sept. 24 Monads, Lexing & Parsing Parsing notes
11. Sept. 26 Parsing
12. Sept. 29 More Parsing & Types Revised Chapter 6.1-6.2
13. Oct. 1 Type Checking Revised Chapter 6.3
14. Oct. 3 Type Inference & Polymorphism Revised Chapter 6.4-6.6
15. Oct. 6 Type Classes Revised Chapter 7

16.

Oct. 8 Scope & Operational Semantics M 4.3
17. Oct. 10 Operational Semantics M 4.3
18. Oct. 13 Semantics of PCF Type Safety Handout
19. Oct. 15 Program units M 7.1-7.2
20. Oct. 17 run-time storage management Notes on Runtime stack

Oct. 20-21 Fall Break
21 Oct. 22 RunTimeStack & Closures M7.3-7.5
22. Oct. 24 Heap

23.

Oct. 27 Intro to Scala Scala talk, Associated Scala slides
24. Oct. 29 Control Constructs M 8 except 8.3
25. Oct. 31 Iterators & Exceptions M 8.3
26. Nov. 3 Data Abstraction & Modules M 9
27. Nov. 5 More Modules
28. Nov. 7 Subtypes Subtypes chapter
29. Nov. 10 OOLs: Simula, Smalltalk M 10, 11, 12, Why Objects are inevitable
30. Nov. 12 Class-based OOLs: Simula, Smalltalk M 12, 13
31. Nov. 14 C++ & Implementations M 13
32. Nov. 17 Java 5 (& beyond) generics, wildcards, & closures
33. Nov. 19 Java, Eiffel, & Typing Issues
34. Nov. 21 Java 5, Eiffel,
35. Nov. 24 Traits/Concurrency Scala Actors, M 14.2
36. Nov 26 Scala Actors Scala Actors,M 14.2
Nov. 28-29 Thanksgiving

37.

Dec. 1 Shared memory concurrency: Semaphores & Monitors M 14.1 & 4, A Sophomoric? Introduction to
Shared-Memory Parallelism and Concurrency

38.

Dec. 3 Shared memory concurrency: Java 14.3, Java ForkJoin Tutorial
39. Dec. 5 Ada tasks,CML
40. Dec. 5 Concurrency in Functional Languages Tutorial on Parallel and Concurrent
Programming in Haskell
41. Dec. 11 Language Design/Summary


Programs from LectureTopInstructor   TextsLectures and Readings