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