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 May 5 - May 11 Introduction to the course.
Main Programming Paradigms.
Development Environment.
Week 2 May 12 - May 18 Compilation Process.
Lexical and Syntactic Analysis. Context-free grammar.
Parse Trees. Parsing Techniques.
Week 3 May 19 - May 25 Errors and precision in programming.
Programming in C: Fundamentals. Libraries. Control flow.
Programming in C: Functions. Scope of Variables. Storage Classes.
Week 4 May 26 - June 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.
Quiz N1, Part1 (5%)
Week 5 June 2 - June 8 Programming in C:
Pre-processor, Compiler, Linker (DIY AI Lecture).
Introduction to Pointers. Pass-by-Value in C (DIY AI Lecture).
Assignment N1 (10%)
Week 6 June 9 - June 15 Programming in C:
One-dimensional arrays (DIY AI Lecture).
Arrays as Pointers (DIY AI Lecture).
Memory layout of a C program.
Quiz N1, part2 (5%)
Week 7 June 16 - June 22 Midterm (25%) will be during assigned class hours! Midterm (25%)
June 23 - June 29 Reading Week - No Classes
DIY Study: Characters and Strings in C.
DIY Study: String-copy functions in C.
DIY Study: Target Machine Architecture.
Week 8 June 30 - July 6 Programming in C: Pointer to a Pointer.
Programming in C: Pointer to a Function.
Programming in C: Structures and Unions.
Week 9 July 7 - July 13 Object-Oriented Programming Paradigm.
Programming in C++: Fundamentals.
Week 10 July 14 - July 20 Programming in C++:
Abstract Classes and Interfaces.
Inheritance.
Quiz N2, Part1 (5%)
Week 11 July 21 - July 27 Programming in C++:
Polymorphism and Dynamic Dispatch.
Design issues in Object-Oriented languages.
Assignment N2 (10%)
Week 12 July 28 - August 3 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Week 13 August 4 - August 10 Introduction to Functional Programming.
Programming in F#: Fundamentals.
Quiz N2, Part2 (5%)
Assignment N3 (10%)
Week 14 August 11 - August 17 Final Exam (25%) will be during assigned class hours!
No lecture this week.
Final Exam (25%)
Saturday May 10th, 2025.
© Alex Babanski