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


WeekDatesTopics CoveredWork Due
Week 1 September 6 - September 12 No class. Labour Day Holiday.
Week 2 September 13 - September 19 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Programming in C: Fundamentals.
Week 3 September 20 - September 26 Compilation Process.
Lexical and Syntactic Analysis. Context-free grammar.
Parse Trees. Parsing Techniques.
Programming in C: Control flow. Functions. Storage Classes.
Week 4 September 27 - October 3 Imperative Programming.
Expressions and Statements. Control Flow.
Functions and Procedures.
Programming in C: Pre-processor directives, 1D Arrays.
Week 5 October 4 - October 10 Type System. Type casting and Type conversion.
Strong vs Weak Typing. Static vs Dynamic Typing.
Programming in C: Pointers, sizeof() operator.
Quiz N1 (5%)
Week 6 October 11 - October 17 No class. Thanksgiving Holiday.
DIY: Target Machine Architecture.
Programming in C:
Characters and Strings.
Assignment N1 (10%)
Week 7 October 18 - October 24 Programming in C:
Strings and Pointers.
Memory layout of a C program.
October 25 - October 31 Reading Week - No Classes
Week 8 November 1 - November 7 Programming in C:
Array of Pointers. Pointer to a Pointer.
Introduction to 2D arrays.
Potential Problems with Stack and Heap.
Pointer to a function.
Midterm (25%)
Week 9 November 8 - November 14 Structures and Unions in C.
Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Assignment N2 (10%)
Week 10 November 15 - November 21 Programming in C++:
Abstract Classes and Interfaces.
Inheritance and Polymorphism. Dynamic Dispatch.
Week 11 November 22 - November 28 Programming in C++:
Self-reference, Friend Classes and Functions.
Template Classes.
Assignment N3 (10%)
Week 12 November 29 - December 5 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Quiz N2 (5%)
Week 13 December 6 - December 12 Introduction to Functional Programming.
Programming in F#: Fundamentals.
Assignment N4 (10%)
Week 14 December 14 - December 19 Catch up lecture. Final Exam (25%)

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


WeekDatesTopics CoveredWork Due
Week 1 September 6 - September 12 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Programming in C: Fundamentals.
Week 2 September 13 - September 19 Compilation Process.
Lexical and Syntactic Analysis. Context-free grammar.
Parse Trees. Parsing Techniques.
Programming in C: Control flow, Functions, Storage Classes.
Week 3 September 20 - September 26 Imperative Programming.
Expressions and Statements. Control Flow.
Functions and Procedures.
Programming in C: Pre-processor directives, 1D Arrays.
Week 4 September 27 - October 3 Type System. Type casting and Type conversion.
Strong vs Weak Typing. Static vs Dynamic Typing.
Programming in C: Pointers, sizeof() operator.
Week 5 October 4 - October 10 Programming in C:
Characters and Strings.
Quiz N1 (5%)
Week 6 October 11 - October 17 DIY: Target Machine Architecture. Assignment N1 (10%)
Week 7 October 18 - October 24 Programming in C:
Strings and Pointers.
Memory layout of a C program.
October 25 - October 31 Reading Week - No Classes
Week 8 November 1 - November 7 Programming in C:
Array of Pointers. Pointer to a Pointer.
Introduction to 2D arrays.
Potential Problems with Stack and Heap.
Pointer to a function.
Midterm (25%)
Week 9 November 8 - November 14 Structures and Unions in C.
Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Assignment N2 (10%)
Week 10 November 15 - November 21 Programming in C++:
Abstract Classes and Interfaces.
Inheritance and Polymorphism. Dynamic Dispatch.
Week 11 November 22 - November 28 Programming in C++:
Self-reference, Friend Classes and Functions.
Template Classes.
Assignment N3 (10%)
Week 12 November 29 - December 5 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Quiz N2 (5%)
Week 13 December 6 - December 12 Introduction to Functional Programming.
Programming in F#: Fundamentals.
Assignment N4 (10%)
Week 14 December 14 - December 19 Catch up lecture. Final Exam (25%)
Thursday December 2nd, 2021.
© Alex Babanski