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 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%) |