20442 Software Engineering: Abstraction and Object-Oriented Design 1
Credits: 3 intermediate and 3 advanced credits in Computer Science
Prerequisites: none
Required: Data Structures and Introduction to Algorithms (or Data Structures)
The course is based on a translation of Software Engineering with Ada (2nd ed.), by G. Booch (Benjamin/Cummings, 1987); additional material with an emphasis on inheritance; and a collection of articles on selected topics in software engineering.
The course deals with software engineering and the principles of abstraction and object-oriented design. It emphasizes the development from the design stage and on. Through Ada, an object-oriented programming language, the course introduces and teaches basic software engineering principles such as modularity, data abstraction, information hiding, and polymorphism. It also discusses principles of concurrency.
Topics: Software engineering principles; Overview of Ada language; Data structures; Algorithms and control; Packaging concepts and generic program units; Concurrent real-time processing; Systems development with Ada; The software life cycle with Ada.
1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.