CS 68 S11 Syllabus
Detailed syllabus (subject to change):
- Monday, March 28
- Programming languages - History and Overview (M 1)
- Skim Programming Languages - the First 25 Years
linked to Blackboard
- Tuesday, March 29 (optional x-hour)
- Haskell (for those who have not taken CS 8).
I will assume that you understand the material in the
first 3 lectures and the short
assignments SA-0, SA-1, and SA-2
in CS 8. See
the CS 8 course page. Eventually you should look at lectures
4 through 7 (except the graphics and drawing) and do SA-4.
- Wednesday, March 30
- Friday, April 1
- Monday, April 4
- Tuesday, April 5 (optional x-hour)
- More Haskell (for those who have not taken CS 8).
We will discuss material in the List Processing, Data (representing
shapes), and Polymorphism lectures.
Eventually you should look at the lectures on List Functions and Trees
and do SA-6.
- Wednesday, April 6
- Friday, April 8
- The Algol family, ML, and Haskell (M 5)
- Read "Report on the Algorithmic Language Algol 60" linked to Blackboard.
- Read "Go to Statement Considered Harmful" (Dijkstra) linked to Blackboard.
- Monday, April 11
- Data Types (M 6.1, 6.2, and 6.5)
- Tuesday, April 12 (optional x-hour)
- More Haskell (for those who have not taken CS 8).
Parsing (lectures Intro to parsing, Parsing sentences, parsing
expressions). Do SA 9.
- Wednesday, April 13
- Type checking and Inference (M 6.3-6.4)
- Friday, April 15
- Monday, April 18
- Tuesday, April 19 (optional x-hour)
- More Haskell (for those who have not taken CS 8).
Monads. Lectures "Intro to monads," "List, IO, and state monads."
Do SA 12.
- Handout: HaskellCheatSheet.pdf
- Wednesday, April 20
- Friday, April 22
- Run-time Storage Management (M 7.1-7.2)
- Monday, April 25
- Functions, Procedures, and Tail Recursion (M 7.3)
- Supporting Higher-Order Functions (M 7.4-7.5)
- Managing the Heap
- Wednesday, April 27
- Friday, April 29
- Monday, May 2
- Control and Exceptions (M 8.1-8.2)
- Wednesday, May 4
- Continuations and Evaluation Order (M 8.3-8.5)
- Example: factCont.hs
- Friday, May 6
- Data Abstraction (M 9.1-9.2)
- Modules (M 9.3-9.5)
- ML Modules
- Monday, May 9
- Wednesday, May 11
- Friday, May 13
- OOLs: Simula and Smalltalk (M 11)
- Monday, May 16
- C++ and Implementation (M 12)
- Wednesday, May 18
- Java and Typing Issues (M 13.1-13.4)
- Friday, May 20
- Java 5 Generics and Wild Cards (M 13.5)
- Monday, May 23
- Wednesday, May 25
- Friday, May 27
- Concurrency - Channels, Software Transactional Memory
- Readings: Beautiful Concurrency
- Examples: stm.hs,
phil.hs
- Optional Reading: Communicating Sequenctial Processes (Hoare), linked to blackboard
- Monday, May 30 - No class - Memorial Day
- Wednesday, June 1
- Programming Language Design - Principles, Discuss Python
- Readings: On the Design of Programming Languages (Wirth), linked to blackboard