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. 4 | Intro & Grace | M 1 |
2. | Sept. 9 | Computability; Compilers, Interpreters, & Virtual Machines | M 2, 3, 4.1 |
3. | Sept. 11 | Lambda Calculus | M 4.2, Lambda Calculus Cheat Sheet |
4. | Sept. 16 | More lambda calculus & functional languages | M 4.4 |
5. | Sept. 18 | Haskell | Revised Chapter 5 |
6. | Sept. 23 | Haskell Monads & Functional Languages Evaluation | Tackling the Awkward Squad:, pp. 1-16 |
7. | Sept. 25 | Lexing & Parsing | Parsing notes |
8. | Sept. 30 | More Parsing & Types | |
9. | Oct. 2 | Types & Polymorphism | Revised Chapter 6 |
10. | Oct. 7 | Type Classes | Revised Chapter 7 |
11. | Oct. 9 | Operational Semantics | M 4.3 |
12. | Oct. 14 | Semantics of PCF | Type Safety Handout |
13. | Oct. 16 | Program units, run-time storage management | M 7.1-7.2, Notes on Runtime stack |
Oct. 21-22 | Fall Break | ||
14 | Oct. 23 | More run-time storage, garbage collection | M7.3-7.5 |
15. | Oct. 28 | Instructor out of town | |
16. | Oct. 30 | Scala | Scala talk, Associated Scala slides |
17. | Nov. 4 | Exceptions & continuations | M 8 |
18. | Nov. 6 | Data Abstraction & Modules | M 9 |
19. | Nov. 11 | Subtyping and OO languages | M 10, Subtypes chapter |
20. | Nov. 13 | Class-based OOLs | M 11, 12 |
21. | Nov. 18 | C++ & Java | M 12, 13 |
22. | Nov. 20 | Java, Eiffel & Typing issues in OO languages | |
23. | Nov. 25 | Scala Traits & Actors | Scala Actors, M 14.2 |
24. | Nov 27 | Shared memory concurrency: Semaphores & Monitors | M 14.1 |
Nov. 28-29 | Thanksgiving | ||
25. | Dec. 2 | Shared memory concurrency: Java | M 14.4, A Sophomoric? Introduction to |
Shared-Memory Parallelism and Concurrency | |||
26. | Dec. 4 | No class | |
27. | Dec. 9 | Concurrent functional languages | M14.3, Tutorial on Parallel and Concurrent |
Programming in Haskell | |||
28. | Dec. 11 | Language Design/Summary | |
Lectures and Readings |