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

  • Exercise Sheet 1 Due Friday
  • Project 1 Check-in 1 (Proposal) Due Friday

Week 3

 

AST Evaluation (+ Visitor Pattern Revision)

  • Project 1 Check-in 2 Due Friday

Week 4

 

Variables, Binding and Memory

  • Exercise Sheet 2 Due Friday
  • Project 1 Check-in 3 Due Friday

Week 5

 

Introduction to Static and Dynamic Checking
  • Project 1 Check-in 4 Due Friday

Week 6

 

Introduction to Empirical Studies

Introduction to Part 2: Program Analysis

  • Exercise Sheet 3 Due Friday
  • Project 1 Check-in 5 Due Friday
Week 7 Midterm Break

 

Week 8

Project 1 Video Fest!

  • Project 1 Due Tuesday
  • Project 2 Check-in 1 Due Friday
Week 9

Implementing Program Analyses

Value-agnostic Static Program Analysis

  • Exercise Sheet 4 Due Friday
  • Project 2 Check-in 2 (Proposal) Due Friday
Week 10

Dynamic Program Analysis 

  • Project 2 Check-in 3 Due Friday
Week 11

Value-Sensitive Static Analysis (Symbolic Execution)

  • Exercise Sheet 5 Due Friday
  • Project 2 Check-in 4 Due Friday
Week 12

Concolic Execution and Test Case Generation

  • Project 2 Check-in 5 Due Friday
Week 13

Exam Q&A session 

  • Exercise Sheet 6 Due Friday
  • Project 2 Due Friday
Week 14 Project 2 Video Fest
  • Term ends Tuesday, no class Wednesday
Final Exam Details TBA