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. Jan 22 Computability, Haskell M 1, 2, LYAH 1 - 2, Semicolon Wars
2. Jan 24 Haskell & Lisp (read) M 3, Revised Chapter 5, LYAH 3 -5
3. jan 29 More Haskell LYAH 6 - 8
4. Jan 31 Haskell Monads & Functional Language Evaluation LYAH 9, 11, 12, Tackling the Awkward Squad, pp. 1-16
5. Feb 5 Compilers: Lexing & Parsing Parsing notes
6. Feb 7 Parsing M 4.1-4.2
7. Feb 12 More Parsing, Lambda Calculus M 4.4. Lambda Calculus Cheat Sheet
8. Feb 14 More Lambda Calculus
9. Feb 19 Types & Type-Checking, Type Inference & Polymorphism Revised Chapter 6
10. Feb 21 Overloading & Type classes Revised Chapter 7
11. Feb 26 Overloading & Type classes Revised Chapter 7
12. Feb 28 Scope, Semantics M 4.3
13. Mar 5 Semantics of PCF & Interpreters Type Safety Handout
14. Mar 7 Type-Checking / Program units & Run-Time Stack M 7.1 - 7.2
15. Mar 12 Run-time Stack & Heap Notes on Runtime stack
16. Mar 14 More Stack & Heap

Mar 18-22 Spring Break

17.

Mar 26 Control Constructs M 8 except 8.3
18. March 28 Control Constructs, Iterators M 8
19. April 2 Modules M 9
20. April 4 Subtyping M10, Subtypes chapter
21 April 9 Object-Oriented Languages M10, Subtypes chapter
22. April 11 Class-based OOLs: Simula, Smalltalk, C++ M 10, 11, 12, Why Objects are inevitable
23 April 16 Eiffel, Java 5+ & Typing Issues in OOLs M12-13
24. April 18 Object-based languages: Grace, JavaScript
25 April 23 Shared memory concurrency: Semaphores & Monitors M14.1
26. April 25 Shared Memory concurrency: Java M14.1, 14.4, A Sophomoric? Introduction to
Shared-Memory Parallelism and Concurrency, Java ForkJoin Tutorial
27. April 30 Concurrency in Java ( Scala) A 14.2-14.3, 14.3
28. May 2 Concurrency in Ada and CML
29. May 7 Review & Summary


Programs from LectureTopInstructor   TextsLectures and Readings