Course description
This course introduces students to the design and analysis aspects of object-oriented programming. Software construction for real world applications has inherent complexities both in terms of designing and maintaining it. In this course, the students will learn how to model a real-world problems in an object-oriented programming context using tools like Unified Modelling Language (UML). Students will also learn techniques such as structural, behavioral and creational design patterns, GRASP principles to create modular, flexible and reusable software. After completing the course, the students would have gained practical experience in problem formulation, decomposition (analysis) and solution building (design) using object-oriented modelling techniques.
Prerequisites
None
Recommended reading
- ”Clean Code: A Handbook of Agile Software Craftsmanship” by Robert Cecil Martin
- ”Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma et al.
Lecturers
- A.R.K. Sai T.A. Bitterman