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 4 - September 10 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Week 2 September 11 - September 17 Compilation Process.
Lexical and Syntactic Analysis. Context-free grammar.
Parse Trees. Parsing Techniques.
Week 3 September 18 - September 24 Errors and precision in programming.
Programming in C: Fundamentals. Libraries. Control flow.
Programming in C: Functions. Scope of Variables. Storage Classes.
Week 4 September 25 - October 1 Imperative Programming. Expressions and Statements.
Functions and Procedures. Recursion.
Type System. Type casting and Type conversion.
Strong vs Weak Typing. Static vs Dynamic Typing.
Week 5 October 2 - October 8 Programming in C:
Pre-processor, Compiler, Linker.
Introduction to Pointers. Pass-by-Value in C.
Assignment N1 (10%)
Week 6 October 9 - October 15 Programming in C:
One-dimensional arrays.
Arrays as Pointers. sizeof() Operator.
Memory layout of a C program.
Quiz N1 (10%)
Week 7 October 16 - October 22 Programming in C:
Dynamic Memory Management.
Pointer to a Pointer. Pointer to a Function.
Characters and Strings.
October 23 - October 29 Reading Week - No Classes
Week 8 October 30 - November 5 Midterm (25%) will during assigned class hours!
No lecture this week.
DIY Study: Strings and Pointers, Target Machine Architecture.
Midterm (25%)
Week 9 November 6 - November 12 Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Assignment N2 (10%)
Week 10 November 13 - November 19 Programming in C++:
Abstract Classes and Interfaces.
Inheritance and Polymorphism. Dynamic Dispatch.
Week 11 November 20 - November 26 Programming in C++:
Self-reference, Friend Classes and Functions.
Template Classes.
Week 12 November 27 - December 3 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Quiz N2 (10%)
Week 13 December 4 - December 10 Introduction to Functional Programming.
Programming in F#: Fundamentals.
Assignment N3 (10%)
Week 14 December 11 - December 17 Final Exam (25%) will be during assigned class hours!
No lecture this week.
Final Exam (25%)
Tuesday April 23rd, 2024.
© Alex Babanski