Elective300 LevelSecond SemesterProgramming Languages
CSC308
Programming Languages & Paradigms
Course Description
Programming Languages & Paradigms steps back from any single language to compare how different paradigms — functional, logic, and concurrent — shape the way a problem gets solved. Students implement a small interpreter to see language design decisions from the inside.
Learning Outcomes
- Compare imperative, functional, and logic programming paradigms.
- Reason about type systems and what they guarantee.
- Implement a small interpreter for a simplified language.
- Choose an appropriate paradigm for a given problem and justify the choice.
Weekly Topics
Examines paradigms overview from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend functional programming fundamentals, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on higher-order functions with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around type systems, using student work from the previous assignment as material.
Introduces logic programming and immediately puts it to use in a small design or implementation task.
Situates concurrency models 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 language syntax & parsing through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through building an interpreter i in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers building an interpreter ii in depth, connecting the underlying theory to a concrete example the class builds together.
Examines language design trade-offs from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend interpreter project 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 — 20%
Practical Work — 30%
Mid-Semester — 15%
Final Examination — 35%
Prerequisite Map
Related Courses