Prerequisite: CS 3358 with a grade of "C" or better.
At the end of the semester the student should be able to:
- Design, implement, test, and debug programs written in Java.
- Describe inheritance and polymorphism and use them in Java programs.
- Describe exception handling in Java and use it to write reliable Java code.
- Read and write Java programs that use threads to implement concurrency.
- Read, design, and draw the following models using the Unified Modeling Language (UML): Class diagrams, Sequence diagrams, State diagrams.
- Write Java code that implements the designs specified by UML diagrams.
- Describe (at least) the following Design Patterns: Adapter, Strategy, Command, Composite, Observer; create UML designs using them, and implement the designs in Java programs.
- Determine the proper design pattern for a given problem specification.
3 hours lecture; 0 hours lab