Slide 1.1: Syllabus
Slide 1.3: Guidelines of programming exercises
Home

Tentative Schedule


Week

Class Topic Reading Due Where
1 08/27
08/29
1. Introduction      
  1.1 Course outline     We're here.
  1.2 Programming languages      
  1.3 Programming paradigms      
2 09/03
09/05
2. Programming Language Syntax      
  2.1 The Chomsky hierarchy      
  2.2 Context-free grammars      
09/01 Labor Day holiday — no classes      
3 09/08
09/10
3. Programming Language Syntax (Cont.) DPL    
  3.1 BNFs      
  3.2 Ambiguity      
09/12 Presidential inauguration — no classes      
09/09 Last day to add a full-term course
Last day to add audit or change to/from audit
Drops after the last day to add will appear on a transcript.
     
4 09/15
09/17
09/19
4. Translational Semantics Using Attribute Grammars Attribute
Grammars
   
  4.1 Syntax-directed translation Web    
  4.2 Syntax-directed definitions      
  4.3 Attribute grammars      
5 09/22
09/24
09/26
5. Translational Semantics Using Attribute Grammars (Cont.)      
  5.1 Dependency graphs      
  5.2 Synthesized attributes      
  5.3 Inherited attributes      
6 09/29
10/01
10/03
6. Denotational Semantics Denotational
Semantics
   
  6.1 Introduction      
  6.2 Syntactic domains      
  6.3 Semantic domains      
7 10/06
10/08
7. Denotational Semantics (Cont.)      
  7.1 Semantic functions      
  7.2 Environments and assignments      
10/10 Exam I      
8 10/13
10/15
10/17
8. Axiomatic Semantics Axiomatic
Semantics
   
  8.1 Introduction      
  8.2 Computer arithmetic      
  8.3 Program execution      
9 10/20
10/22
10/24
9. Axiomatic Semantics (Cont.)      
  9.1 General reservations      
  9.2 Proofs of program correctness      
  9.3 Formal language definition      
10 10/27
10/29
10/31
10. Program Correctness and Termination Correctness    
  10.1 Introduction      
  10.2 Correctness of programs      
  10.3 Symbolic execution      
11 11/03
11/05
11/07
11. Program Correctness and Termination (Cont.) Termination    
  11.1 Infinite symbolic execution trees      
  11.2 Multiset orderings      
  11.3 Termination of programs      
11/07 Last day to change to or from S/U grading
Last day to change to or from audit grading
Last day to drop a full-term course or withdraw from school
     
12 11/10
11/12
11/14
12. Logic Programming Paradigm Logic    
  12.1 Logic and logic programs      
  12.2 Horn clauses      
  12.3 Resolution and unification      
13 11/17
11/19
13. Functional Programming Paradigm      
  13.1 Lambda Calculus      
  13.2 Programs as functions      
11/21 Exam II      
14 11/24
11/26
14. Object-oriented Programming Paradigm ADT    
  14.1 Abstract data types      
  14.2 Inheritance      
11/28 Thanksgiving recess — no classes      
15 12/01
12/03
12/05
15. Concurrent Programming Paradigm      
  15.1 Threads      
  15.2 Message passing      
  15.3 Deadlock      
16 12/08
12/10
16. Imperative Programming Paradigm      
  16.1 Values and types      
  16.2 Commands      
17 12/17 Final exam (05:30pm – 07:30pm, Wednesday)      
18 12/23 Grades posted before noon, Tuesday