Elective400 LevelSecond SemesterProgramming Languages
CSC408
Special Topics in Computing
Course Description
Special Topics in Computing changes focus each year to cover an emerging area not yet established enough for its own permanent course. The current offering focuses on program synthesis: techniques for generating correct programs from specifications and examples. Enrollment requires departmental approval based on background in CSC301 and CSC308.
Learning Outcomes
- Explain the core ideas behind program synthesis from specifications and examples.
- Apply a synthesis technique to a small, well-scoped problem.
- Critically read current research in the topic area.
- Present an independent investigation of a synthesis-related problem.
Weekly Topics
Examines topic introduction & motivation from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend specification formalisms, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on synthesis from examples with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around search-based synthesis, using student work from the previous assignment as material.
Introduces constraint-based synthesis and immediately puts it to use in a small design or implementation task.
Situates synthesis for data transformation within the broader arc of the course, showing how it connects to what comes next.
Uses a guest dataset or scenario to explore mid-semester review in a setting closer to professional practice.
Introduces verification-guided synthesis through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through case studies in applied synthesis in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers independent investigation proposal in depth, connecting the underlying theory to a concrete example the class builds together.
Examines independent investigation work from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend final presentations, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on revision with an in-class exercise students carry into the week's assignment.
Assessment
Assignments — 25%
Practical Work — 25%
Mid-Semester — 10%
Final Examination — 40%
Prerequisite Map
Related Courses