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