Advanced Programming is a core course for second-year undergraduate students at IIIT Delhi. This course was revamped in 2017 by Dr. Vivek Kumar with several new additions, such as redesigning the lecture slides by using real-world examples, replacing Java Swing with JavaFX for event-driven programming, introducing task-based parallel programming model, assignment chaining where one assignment builds on top on the previous assignment, pair-programming based course project to teach the students how to work in a team and implement a big project from scratch.
The main goal of this course is to prepare the students for the challenge of building large-scale programs with multiple functional components, some of which could be designed/implemented independently. This course uses Java to introduce the concepts of object orientation, reusable code design, test-driven development, programming to an application-programming-interface, pattern-oriented program design and implementation etc. At the end of the course, the students are expected to be able to work in teams to develop large application programs starting from a reasonably well-defined application design with multiple independent components with well-defined interfaces.
Students work in a pair to implement the AP course project from scratch. The course project is released during the middle of the semester with three intermediate deadlines. The students usually implement a simplified version of a well-known video game from scratch using JavaFX and OOP concepts. The deliverables are as follows:
Assignments in 2021 (Four)
Assignments in 2018 (Seven)
Assignments in 2017 (Eight)
Student feedback on a scale of 1-5