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