ECE 495K - Object-Oriented Design Using C++ and Java

Lecture Hours: 3 Credits: 3

This is an experiential learning course.

Counts as:

Experimental Course Offered: Spring 2001, Spring 2002, Spring 2003

Catalog Description:
Review OO design with C++ and Java. Difficulties caused by multiple inheritance in C++. Taking advantage of Run-Time Type Identification in C++. Multi-threading, AWT, and Network Programming in Java. Discussion of Java applets, beans, and servlets. Unified model language. Use-case analysis. Constructing conceptual models. System sequence diagrams. "Gang of Four" design patterns. Case studies.

Required Text(s):
  1. Java Design Patterns, James Cooper, Addison-Wesley, 2000, ISBN No. 0-201-48539-7.
  2. UML Distilled, Applying the Standard Object Modeling Language, Martin Fowler with Kendall Scott, Addison-Wesley, 1997, ISBN No. 0-201-32563-2.
Recommended Text(s):
  1. C++ Programming Language, 3rd Edition, B. Stroustrup, Addison-Wesley, 1997, ISBN No. 0-201-88954-4.
  2. Core Java: Volumes I and II, Cay Horstman and Gary Cornell, Sun Microsystems Press, 1997, ISBN No. 0-13-766965-8.
  3. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, et. al., Addison-Wesley, 1994, ISBN No. 0-201-63361-2.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. a knowledge of the Unified Modeling Language for the conceptual design of object-oriented programs.. [e,k]
  2. an ability to design object-oriented solutions to programming problems using previously developed "best practice" design components.. [c,e,k]
  3. an understanding of the pros and cons associated with multiple inheritance in C++.. [e,k]
  4. a knowledge of graphics and user interface programming with Java.. [c,e,k]
  5. an ability to carry out database programming in Java.. [e,k]
  6. an understanding of multithreading issues in Java.. [e,k]

Lecture Outline:

Lecture Topic
1 Course Introduction
2 Software Development Process for Large OO Programs
3 Use Cases, Class Diagrams
4 Class Diagrams (Advanced Concepts)
5-7 Interaction, Package, State, and Activity Diagrams
7-12 Extending Classes in C++ and Java
Test 1
13-16 OO Design using Multiple Inheritance in C++
17-22 Design Patterns
23-29 OO for GUI Design with Java, C++, and C
Test 2
30-32 Multi-threading for OO Design
33-35 Network Programming in Java
36-38 Java Database Programming
39-40 Remote Method Invocation
41-42 Servlets
Test 3