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 14 - September 20 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Week 2 September 21 - September 27 Compilation Process.
Syntax. Context-free grammar. Lexical and Syntactic Analysis.
Programming in C: Fundamentals.
Week 3 September 28 - October 4 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 October 5 - October 11 Type Systems. Static vs Dynamic Typing.
C Programming: Pre-processor, Compiler, Linker.
One-dimensional arrays. Introduction to Pointers.
Week 5 October 12 - October 18 C Programming: Arrays as Pointers.
Characters and Strings.
String and Pointers.
Assignment N1 (10%)
Week 6 October 19 - October 25 Memory layout of a program.
Dynamic Memory Management in C.
Streams. File I/O in C.
October 26 - November 1 Reading Week - No Classes Midterm (30%)
Week 7 November 2 - November 8 Pointer to a Pointer. Multidimensional Arrays.
Structures and Unions.
Pointers to Structures. Pointers within a structure.
Week 8 November 9 - November 15 Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Assignment N2 (10%)
Week 9 November 16 - November 22 Programming in C++:
Abstract Classes and Interfaces.
Inheritance and Polymorphism. Dynamic Dispatch.
Week 10 November 23 - November 29 Programming in C++:
Self-reference, Friend Classes and Functions.
Template Classes.
Assignment N3 (10%)
Week 11 November 30 - December 6 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Week 12 December 7 - December 13 Introduction to Functional Programming.
Functions and Lambda Expressions.
Programming in F#: Fundamentals.
Assignment N4 (10%)
Week 13 December 14 - December 20 Target Machine Architecture.
Catch-up Lecture.
Final Exam (30%)
Wednesday October 21st, 2020.
© Alex Babanski