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