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