This is a tentative schedule of what we'll be covering in-class each week, along with dates for assignments, quizzes, and exams.
Note that this is subject to change, so check this page frequently! Go Back.


WeekDatesTopics CoveredWork Due
Week 1 September 1 - September 7 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Week 2 September 8 - September 14 Compilation Process.
Lexical and Syntactic Analysis. Context-free grammar.
Parse Trees. Parsing Techniques.
Week 3 September 15 - September 21 Errors and precision in programming.
Programming in C: Fundamentals. Libraries. Control flow.
Programming in C: Functions. Scope of Variables. Storage Classes.
Week 4 September 22 - September 28 Imperative Programming. Expressions and Statements.
Functions and Procedures. Recursion.
Type System. Type casting and Type conversion.
Strong vs Weak Typing. Static vs Dynamic Typing.
Quiz N1, Part1 (5%)
Week 5 September 29 - October 5 Programming in C:
Pre-processor, Compiler, Linker (DIY AI Lecture).
Introduction to Pointers. Pass-by-Value in C (DIY AI Lecture).
One-dimensional arrays (DIY AI Lecture).
Arrays as Pointers (DIY AI Lecture).
Week 6 October 6 - October 12 Programming in C:
Memory layout of a C program.
Pointer to a Pointer.
Pointer to a Function.
Assignment N1 (10%)
Week 7 October 13 - October 19 Programming in C:
Characters and Strings.
Structures and Unions.
Quiz N1, part2 (5%)
October 20 - October 26 Reading Week - No Classes
DIY: Target Machine Architecture.
Week 8 October 27 - November 2 Midterm (25%) will be during assigned class hours!
Catch-up lecture
Midterm (25%)
Assignment N2 (10%)
Week 9 November 3 - November 9 Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Week 10 November 10 - November 16 Programming in C++:
Abstract Classes and Interfaces.
Inheritance.
Week 11 November 17 - November 23 Programming in C++:
Polymorphism and Dynamic Dispatch.
Design issues in Object-Oriented languages.
Quiz N2, Part1 (5%)
Week 12 November 24 - November 30 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Assignment N3 (10%)
Week 13 December 1 - December 7 Introduction to Functional Programming.
Programming in F#: Fundamentals.
Quiz N2, Part2 (5%)
Week 14 December 8 - December 14 Catch-up lecture.
Final Exam (25%) will be during assigned class hours!
Final Exam (25%)
Tuesday September 16th, 2025.
© Alex Babanski