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