The following syllabus gives you a rough idea of the time spent on each topic. The syllabus may change depending on how quickly or slowly we move. Regardless, the tests and exams will be on the dates shown. Make any travel plans accordingly.
| Week | Topics | Assignments & Exams | Supplement Materials |
| Week 1: 01/19 |
Introduction; |
||
| Week 2: 01/26 |
Formal Languages: Basics Formal Languages: Automation; |
||
| Week 3: 02/02 |
Lexical Analysis; |
Project Step 1 post; | |
| Week 4: 02/09 |
Context Free Languages; |
Assignment 1 Post | |
| Week 5: 02/16 |
Parsing: Recursive Descendent Parsing; Parsing: LL(1) |
Project Step 1 due; Project Step 2 post; |
|
| Week 6: 02/23 |
Parsing: LL(1) Parsing: LR |
Assignment 1 Due; | |
| Week 7: 03/02 |
Parsing Abstract Syntax Tree; |
Assignment 2 Post; | |
| Week 8: 03/09 |
Spring break; No class |
||
| Week 9: 03/16 |
Parsing Abstract Syntax Tree; Typ System and Type Checking |
Project Step 2 due; Project Step 3-4 post; Midterm Exam on 03/18; |
|
| Week 10: 03/23 |
Code Generation: Tree Walking; |
||
| Week 11: 03/30 |
Code Generation: Tree Walking; Code Generation: Instruction Set |
Project Step 3 due; | |
| Week 12: 04/06 |
Code Generation: Instruction Set; Code Generation: Register Allocation |
Assignment 2 Due | |
| Week 13: 04/13 |
Code Optimization: Data Flow Analysis; Code Optimization: Loops |
||
| Week 14: 04/20 |
Static Register Allocation; Code Optimization: Memory and cache |
Project Step 4 Due; Project Step 5 Post; |
|
| Week 15: 04/27 |
Code Optimization: Memory and cache Functional Langugages |
||
| Week 16: 05/04 |
Functional Langugages; Final Review |
Project, Step 5 due; | |
| Final Exam | Final Exam: Monday, May 04, 06:00pm - 07:15pm |