ECE 30862 - Object-Oriented Programming in C++ and Java

Lecture Hours: 3 Credits: 3

Professional Attributes
EE Elective

This course may be used as a Computer Engineering Elective for the BSCmpE.

Normally Offered: Each Fall

Requisites:
ECE 26400

Requisites by Topic:
Advanced C Programming

Catalog Description:
The C++ and Java programming languages are presented. The language constructs discussed include classes, inheritance, encapsulation, polymorphism, class derivation, abstract classes, interfaces, static class members, object construction and destruction, namespaces, exception handling, function overloading and overriding, function name overload resolution, container classes, template classes, etc.

Supplementary Information:
Was previously offered as ECE 46200.

Required Text(s):
  1. Programming with Objects, A Comparative Presentation of Object-Oriented Programming with C++ and Java, Avi Kak, John-Wiley, 2003, ISBN No. 047-126-8526.

Recommended Text(s): None.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an understanding of the concepts of inheritance and polymorphism. [None]
  2. an ability to overload operators in C++. [1,2]
  3. an understanding of the difference between function overloading and function overriding. [None]
  4. an ability to incorporate exception handling in object-oriented programs. [None]
  5. an ability to use template classes and the STL library in C++. [None]
  6. an ability to write object-oriented programs of moderate complexity in C++. [1]
  7. an ability to write object-oriented programs of moderate complexity in Java. [1]
  8. an ability to write programs with multiple threads and use synchronization among threads. [None]

Lecture Outline:

Lectures Major Topics
1 Course Introduction and Simple C++
2 Program Development Environment and Tools
3-4 First Introduction to Classes, Encapsulation, Inheritance, and Polymorphism
5 Strings in C++ and Java
6-7 Unified Modeling Language
8-9 Graphical User Interface
10-11 Container Classes in C++ and Java
12-13 Primitive Types, Declaration, Definitions, and Initializations in C++ and Java
14-16 Object Reference, Memory Allocation, and C++ Structures
17-20 Functions and Methods
21-23 Exception Handling in C++ and Java
24-26 Classes in C++ and Java
27-28 Abstract Classes and Interfaces
29-30 Operator Overloading in C++
31-32 Templates and Generics
33-37 Extending Classes and Multiple Inheritance
38-42 Multiple Threads and Synchronization