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

Course Details

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

Assessment Method: