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