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 CoveredEvaluationsAssignments Due
Week 1 September 2 - September 6 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Week 2 September 9 - September 13 Compilation Process.
Syntax. Context-free grammar. Lexical and Syntactic Analysis.
Programming in C: Fundamentals.
Week 3 September 16 - September 20 Imperative Programming.
Expressions and Statements. Control Flow.
Functions and Procedures.
C Programming: Control flow, Modular Design, Functions.
Storage Classes, Type casting, Scope of variables.
Week 4 September 23 - September 27 Type Systems. Static vs Dynamic Typing.
C Programming: Pre-processor directives.
One-dimensional arrays. Pointers. Pass-by-Value in C.
Week 5 September 30 - October 4 C Programming: Characters and Strings.
Week 6 October 7 - October 11 String and Pointers. Void and NULL Pointers.
const qualifier. Array of Pointers. Memory layout of a program.
Dynamic Memory Management in C.
Week 7 October 14 - October 18 Pointer to a Pointer. Dynamic Arrays in C.
File I/O in C.
Assignment N1 (10%)
October 21 - October 25 Reading Week - No Classes
Week 8 October 28 - November 1 Midterm. Midterm (30%)
Week 9 November 4 - November 8
Structures and Unions.
Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Week 10 November 11 - November 15 Programming in C++:
Abstract Classes and Interfaces.
Inheritance and Polymorphism. Dynamic Dispatch.
Assignment N2 (10%)
Week 11 November 18 - November 22 Programming in C++:
Self-reference, Friend Classes and Functions. Template Classes.
Target Machine Architecture.
Week 12 November 25 - November 29 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Assignment N3 (10%)
Week 13 December 2 - December 6 Introduction to Functional Programming.
Functions and Lambda Expressions.
Programming in F#: Fundamentals..
Week 14 December 9 - December 13 Final Exam. Final Exam (30%) Assignment N4 (10%)
Wednesday December 11th, 2019.
© Alex Babanski