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 10 - September 14 Introduction to the course.
Issues in language design.
Development Environment.
Week 2 September 17 - September 21 Compilation Process.
Syntax. Context-free grammar. Lexical and Syntactic Analysis.
Data and Data Types. Data Structures. Algorithms.
Programming in C: Fundamentals.
Week 3 September 24 - September 28 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 October 1 - October 5 Type Systems. Scopes and Bindings.
C Programming: Pre-processor directives.
One-dimensional arrays. Pointers.
Week 5 October 8 - October 12 No class: Thanksgiving day Assignment N1 (10%)
Week 6 October 15 - October 19 Target Machine Architecture.
C Programming: Characters and Strings.
Input-Output in C. Dynamic Memory management.
Pointer to a Pointer. Pass-by-Value in C.
Dynamic Arrays in C.
October 22 - October 26 Reading Week - No Classes
Week 7 October 29 - November 2 Midterm. Midterm (30%)
Week 8 November 5 - November 9 C Programming: Structures and Unions. Assignment N2 (10%)
Week 9 November 12 - November 16 Object-Oriented Programming Paradigm.
Design Issues in Object-Oriented Languages.
Programming in C++: Fundamentals.
Week 10 November 19 - November 23 Advanced Programming in C++.
Abstract Classes, Interfaces. Pointer to a Class.
Dynamic Dispatch, Template Classes.
Week 11 November 16 - November 30 Introduction to Logic/Declarative programming.
Programming in Prolog: Fundamentals.
Assignment N3 (10%)
Week 12 December 3 - December 7 Introduction to Functional Programming.
Functions and Lambda Expressions.
Programming in F#: Fundamentals.
Multi-Paradigm and Scripting Languages.
Week 13 December 10 - December 14 Final Exam. Final Exam (30%) Assignment N4 (10%)
Sunday December 16th, 2018.
© Alex Babanski