Object-Oriented Programming In Ada
This specialized course examines the concepts of object-oriented programming, software engineering and the major programming language implementations of those concepts and examines the new Ada facilities for OOP within that context. A brief introduction to the pertinent features of Ada is provided in an overview of the entire language, followed by an in-depth coverage of the new language facilities for OOP and the idioms emerging from their use. Topics covered include the Ada approaches to polymorphism, single and multiple inheritance, mix-ins, class-wide programming, genericity, exceptions, finalization, streams, and user-defined assignment. A brief introduction to the new concurrency features of the language is provided, followed by a detailed exploration of their relationships with OOP. An examination of approaches to expressing common design patterns is also provided. A working case study, utilizing the OOP facilities as well as the concurrent programming capabilities will be examined and used as the central laboratory exercise.
No prior experience with object-oriented programming is required. The ideal student will have some familiarity with the basic features of Ada.
After this course the student will have a thorough understanding of the rationale and intended use of the pertinent features of Ada and how they are integrated with the rest of the language to directly support OOP. Laboratory exercises will enforce the knowledge gained so that the student is producing effective code immediately.