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