PRMP

CSE201 OVERVIEW

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.


LECTURE TOPICS



  1. Introduction to Object Oriented Programming [PDF]
  2. Classes and Objects [PDF]
  3. Class Relationships [PDF]
  4. Interfaces in Java [PDF]
  5. Interfaces and Polymorphism [PDF]
  6. Inheritance and Polymorphism [PDF]
  7. Abstract Class and Immutable Class [PDF]
  8. The Object Class [PDF]
  9. Generic Programming [PDF]
  10. Exception Handling [PDF]
  11. Collection Framework [PDF]
  12. Mid Semester Review [PDF]
  13. I/O Streams [PDF]
  14. Unit Testing and Inner Classes [PDF]
  15. Unified Modeling Language [PDF]
  16. Event Driven Programming using JavaFX [PDF]
  17. Introduction to Multithreading [PDF]
  18. Thread Creation [PDF]
  19. Thread Pool [PDF]
  20. Mutual Exclusion [PDF]
  21. Introduction to Design Patterns-1 [PDF]
  22. Adapter and Strategy Design Pattern [PDF]
  23. Template, Prototype, Factory & Facade Design Patterns[PDF]
  24. Design Pattern Part-4[PDF]
  25. Endterm Review-1 [PDF]
  26. Endterm Review-2 [PDF]

ASSESSMENT PLAN



  • Weekly assignments (20%)
  • Pair programming based project (half the semester)(20%)
  • Quizzes (10%)
  • Midterm exam (20%)
  • Endterm exam (30%)

PAST OFFERINGS


COURSE PROJECTS

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:

  • a) submitting detailed UML class diagrams and use case diagrams for the project (two weeks duration)
  • b) submitting static GUI of the project along with some animation components (two weeks duration)
  • c) submitting the complete project (one-month duration).


The Will Hero (2021) [PDF].
Credits: Rahul Maddula and Vyshnav Vijay


Color Switch (2020) [PDF].
Credits: Ananya Lohani and Mihir Chaturvedi


Plants Vs Zombies (2019) [PDF].
Credits: Bhavya Chopra and Sonali Singhal


Snake Vs Blocks (2018) [PDF].
Credits: Shubham Thakral and Tanmay Bansal


Chain Reaction (2017) [PDF].
Credits: Dhruv Bhagat and Sushant Kumar Singh


Book It (2017) [PDF].
Credits: Harsh Pathak and Nihesh Anderson

COURSE ASSIGNMENTS

Assignments in 2021 (Four)

Assignments in 2020 (Four)

Assignments in 2019 (Seven)

Assignments in 2018 (Seven)

Assignments in 2017 (Eight)

STUDENT FEEDBACK


Student feedback on a scale of 1-5

INSTRUCTOR

Vivek Kumar