CS 3354 - Object-Oriented Design and Programming

Course Description:

The course covers object-oriented design principles and programming for students with prior programming experience. The topics include inheritance and polymorphism, object-oriented design process, UML diagrams, design patterns, exception handling and multithreading. Students will design and implement programs in Java. Cannot receive credit if the student has taken CS 4354.


CS 2308 with a grade of C or higher or consent of instructor.

Course Objectives:

 At the end of the semester the student should be able to:

  1. Design, implement, test, and debug programs written in Java.
  2. Describe inheritance and polymorphism and use them in Java programs.
  3. Describe exception handling in Java and use it to write reliable Java code.
  4. Read and write Java programs that use threads to implement concurrency.
  5. Read, design, and draw the following models using the Unified Modeling Language (UML): Class diagrams, Sequence diagrams, State diagrams.
  6. Write Java code that implements the designs specified by UML diagrams.
  7. Describe (at least) the following Design Patterns: Adapter, Strategy, Command, Composite, Observer; create UML designs using them, and implement the designs in Java programs.
  8. Determine the proper design pattern for a given problem specification.


Course Notes:

New course Fall 2016 (replaced CS 4354).

Section Info:

3 hours lecture; 0 hours lab