Course Schedule

For details of the actual lectures, please see the Modules. Note that the plan here is subject to change!

Week Planned Topics Extra Notes: Things to Do

Week 1

Introduction to 410

Modular Design, Development & Testing

Introduction to Part 1: DSLs

  • Get familiar with the course site
  • Join the Piazza group
  • Read the Syllabus
  • Register your project group (or ask to be put in one) by the deadline!
  • Check out the Assignments page / to-do list for a summary of the upcoming deadlines

Week 2

 

Lexical Analysis (Tokenisation)
Parsing and ASTs

Week 3

 

AST Evaluation (+ Visitor Pattern Revision)

Variables, Binding and Memory

Week 4

 

Introduction to Static and Dynamic Checking

Week 5

 

Introduction to Empirical Studies

Week 6

 

Introduction to Part 2: Program Analysis

Week 7 Midterm Break

Week 8

Project 1 Video Fest!

Week 9

Implementing Program Analyses

Value-agnostic Static Program Analysis

Week 10

Dynamic Program Analysis 

Week 11

Value-Sensitive Static Analysis (Symbolic Execution)

Week 12

Concolic Execution and Test Case Generation

Week 13

Exam Q&A session

Week 14 Project 2 Video Fest!
Final Exam Details TBA