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 |