ECE 39595 - Object-Oriented Programming with Java

Note:

CMPE students may only take this course or ECE 39595 Object Oriented Programming with C++ as a CMPE Selective.

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective
  • CMPE Selective

Experimental Course Offered:

Fall 2020

Campus/Online:

On-campus only

Requisites:

ECE 20875 and ECE 26400

Requisites by Topic:

Programming ability, pointers, memory allocation

Catalog Description:

This course teaches Java and the principles object oriented programming using Java. It covers the basics of the Java language, including inheritance, virtual function calls and the mechanisms that support virtual function calls. Design patterns and general principles of programming will be covered. If Object-Oriented Programming with C++ is also taken, only one will count toward BSCmpE degree credits as a CmpE Selective.

Required Text(s):

  1. Head First Design Patters , 1st Edition , Eric Freeman, Elisabeth, Bert Bates, and Kathy Sierra , O'Reilly Media , 2004 , ISBN No. 13: 978-0596007126
  2. Java: A Beginners Guide , 8th Edition , Herbert Schildt , McGraw Hill , 2018 , ISBN No. 13: 978-1260440218
  3. The Pragmatic Programmer: From Journeyman to Master , 1st Edition , David Thomas and Andrew Hunt , Addison-Wesley Professional , 1999 , ISBN No. 13: 978-0201616224

Recommended Text(s):

  1. Refactoring: Improving the Design of Existing Code , 2nd Edition , Martin Fowler , Addison-Wesley Professional , 2018 , ISBN No. 9780134757681
  2. The Clean Coder , 1st Edition , Robert C. Martin , Prentice Hall , 2011 , ISBN No. 9780132542913

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. the ability to analyze a specification and develop a significant Java program that meets those specifications. [1]
  2. the ability to apply a design pattern to a particular problem. [2]
  3. an understanding of basic Object Oriented concept of classes, objects, inheritance and polymorphism. [1]
  4. the ability to implement a properly synchronized multithreaded program. [1]

Lecture Outline:

Lectures Lecture Topics
.5 Overview, quick test on objects and virtual function calls
.5 Virtual and non-virtual functions
1 Constructors and constructor call order
1 Access modifiers, packages, parameter passing, casts
1 Abstract classes and interfaces
.5 Function resolution
.5 Exceptions
1 Containers
1 Cloning and copy constructors
1 Multithreading, locks
1 Garbage collection and the JVM
1 Reflection
1 Inner classes, anonymous classes, lambda functions
2 Generics
2 Exams

Engineering Design Content:

  • Synthesis
  • Analysis
  • Construction
  • Testing

Engineering Design Consideration(s):

  • Economic

Assessment Method:

Exam, homework, projects