This is a tentative schedule of what we'll be covering in class each week, along with dates for assignments, exercises, and exams.
Note that this is subject to change, so check this page frequently! Go Back.


WeekDatesTopics CoveredEvaluationsAssignments Due
Week 1 September 3 - September 7 Introduction to the course.
Issues in language design.
Development Environment.
Week 2 September 10 - September 14 Compilation Process.
Syntax. Context-free grammar. Lexical and Syntactic Analysis.
Data and Data Types. Data Structures. Algorithms.
Programming in C: Fundamentals.
Week 3 September 17 - September 21 Imperative Programming.
Expressions and Statements. Control Flow.
Functions and Procedures.
C Programming: Control flow, Modular Design, Functions.
Storage Classes, Type casting, Scope of variables.
Week 4 September 24 - September 28 Type Systems. Scopes and Bindings.
C Programming: Pre-processor directives.
One-dimensional arrays. Pointers.
Week 5 October 1 - October 5 Target Machine Architecture.
C Programming: Characters and Strings.
Streams in C. File I/O.
Week 6 October 8 - October 12 C Programming: Dynamic Memory management.
Pointer to a Pointer. Pass-by-Value in C.
Dynamic Arrays in C.
Assignment N1 (10%)
Week 7 October 15 - October 19 Midterm. Midterm (30%)
October 22 - October 26 Reading Week - No Classes
Week 8 October 29 - November 2 C Programming: Structures and Unions.
Week 9 November 5 - November 9 Object-Oriented Programming Paradigm.
Design Issues in Object-Oriented Languages.
Programming in C++: Fundamentals.
Assignment N2 (10%)
Week 10 November 12 - November 16 Advanced Programming in C++.
Abstract Classes, Interfaces. Pointer to a Class.
Dynamic Dispatch, Template Classes.
Week 11 November 19 - November 23 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Week 12 November 26 - November 30 Introduction to Functional Programming.
Functions and Lambda Expressions.
Programming in F#: Fundamentals.
Assignment N3 (10%)
Week 13 December 3 - December 7 Event-Driven and Concurrent Programming.
Multi-Paradigm and Scripting Languages.
Course Review.
Week 14 December 10 - December 14 Final Exam. Final Exam (30%) Assignment N4 (10%)
Sunday December 16th, 2018.
© Alex Babanski