NSEN-3305  Object-Oriented Programming (SE 335)

Note: The following provides a suggested course description, objectives, and an outline. These may be modified pending discussion with the Faculty Chairs, proposing faculty, and other curriculum reviewers.

Course Description: Objects, and classes , Object oriented programming languages, analysis of object behavior, class library development and use, and system testing.

Course Objectives: To enable students to use Object Oriented Programming (OOP) concepts and constructs to represent software systems; employ object behavior specification (OBS) to represent state-based systems; to implement software designs using semi-formal behavior specification; develop hierarchical software system configurations using reusable heterogeneous container class library; develop test plans based on OBS to support effective, repeatable, and reusable testing; use OOP concepts and constructs to implement sequential and parallel object collections.

Course Outline by Topical Areas:

  • Introduction to Object Orientation - advantages: organization, extensibility, reusability, etc., difficulties: disciplines, complexity, etc.
  • Review of class concepts - objects and states, methods, commands, queries
  • Finite State Objects - encapsulation, state diagrams, introduction to formal specification, abstract data types, behavior and object testing
  • Advanced OO concepts - inheritance, polymorphism, typing, application examples
  • Design and Testing of OO classes and systems
  • Containers - review of list processing, container properties (heterogeneity, genericity, multiple instances, etc.), abstract and formal characterization of container classes
  • Iterators and ensemble methods - characterization, application examples, implementation models