Skip to main content
CSE 335 Object-Oriented Software Design

CSE 335 Object-Oriented Software Design (3 cr)

Catalog Course Description

Objected-oriented design methodologies and design patterns. Objected-oriented programming using inheritance and polymorphism.  Software design using Unified Modeling Language. Ethics and professionalism.

Course Outcomes
(Letters refer to program outcomes; caps indicate greater emphasis.)

  1. Students will learn methods to structure computer programs using object-oriented methodologies. (a, C, I)
  2. Students will gain experience using object-oriented methods include inheritance and polymorphism. (a, C, I)
  3. Students will learn how to apply design patterns to the solution of programming problems. (a, B, C, I, j, K)
  4. Students learn about ethics and effective communication.(e)
  5. Students learn about professional programming tools and methodologies (i)
  6. Students will gain experience developing software in a team. (d)

Program Outcomes covered in CSE 335

An ability to apply knowledge of computing and mathematics appropriate to the discipline
An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
An ability to function effectively on teams to accomplish a common goal
An understanding of professional, ethical, legal, security and social issues and responsibilities
An ability to use current techniques, skills, and tools necessary for computing practice
An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
An ability to apply design and development principles in the construction of software systems of varying complexity


Assessment of how well outcomes are being achieved will be done by applying a rubric to a random sample of at least 25% of the students who have completed the work being used for assessment. Assessment tools are examinations and programming projects. For each outcome being assessed, each student in the sample will be judged to (a) exceed, (b) meet, or (c) fail to meet an objective standard designed to assess this outcome. Unless otherwise specified the thresholds used are: meet (70%), exceed (85%). We will say that this offering of the course achieved the particular outcome if and only if 70% or more of the students sampled were assessed to be in categories (b) or (c).

  • Course outcome I, II, III, IV, and V assessed by
    1. specific programming work and specific exam questions.
  • Course outcome VI is not assessed


  • Object-oriented design.
  • Class inheritance and polymorphism.
  • Design patterns.
  • Unified Modeling Language.
  • Collaborative software development.
  • Professionalism and ethics in software development and programming.


  • Object-Oriented Modeling and Design with UML (Second Edition) by Blaha and Rumbaugh, Pearson/Prentice-Hall, 2005.
  •  Design Patterns: Elements of Reusable Object-oriented Software by Gamma, Helm, Johnson, and Vlissides, Addison Wesley, 1995.


  • Examinations
  • Programming Projects