Prerequisites
Solid understanding of basic concepts of object oriented programming: classes, objects,
subtyping, polymorphism, and dynamic binding.
Overview
The course presents a comprehensive coverage of state-of-the-art practices in
software development using the Object Oriented programming paradigm. It starts by
setting software development as an engineering discipline and proceeds to describe,
explain, and illustrate the fundamental Object Oriented techniques and tools for the
different stages of program development, from specification and design to verification
and testing. Additionally, the course provides a perspective on the current trends in
industry and research.
Learning Outcomes
At the end of the course students will:
- Appreciate of the importance of formality and rigor in software development
- Understand, select, and apply tools and techniques at different stages of software development
- Be aware of current industry and research trends in software development.
Programming language requirement
- Familiarity with an object-oriented programming language.