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.


Prerequisite: CS 3358 with a grade of "C" or better.

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.


Section Info:

3 hours lecture; 0 hours lab