ECE 39595 - Object-Oriented Programming with C++

Lecture Hours: 3 Credits: 3

Counts as:
CMPE Selective
EE Elective

Experimental Course Offered: Fall 2020

Requisites:
ECE 26400 and ECE 20875

Requisites by Topic:
Programming ability, pointers, memory allocation, objects

Catalog Description:
This course teaches C++ and the principles of object oriented programming using C++. It covers the basics of the C++ 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 Java is also taken, only one will count toward BSCmpE degree credits as a CmpE Selective.

Supplementary Information:
CMPE students may only take this course or ECE 39595 Object Oriented Programming with Java as a CMPE Selective.

Required Text(s):
  1. C++ Crash Course: A Fast-Paced Introduction, Josh Lospinoso , No Starch Press, 2019, ISBN No. 10-1593278888.
  2. Head First Design Patterns, 1st Edition, Eric Freeman, Elisabeth Robson, Bert Bates and Kathy Sierra, O'Reilly Media, 2004, ISBN No. 13: 978-0596007126.
  3. The Pragmatic Programmer: From Journeyman to Master, 1st Edition, David Thomas and Andrew Hunt, Addison-Wesley Publishing Co., 1999.
Recommended Text(s):
  1. Refactoring: Improving the Design of Existing Code, 2nd Edition, Martin Fowler, Addison-Wesley Publishing Co., 2018, ISBN No. 978-0134757681.
  2. The Clean Coder, 1st Edition, Robert C. Martin, Prentice Hall, 2011, ISBN No. 978-0132542913.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. the ability to apply a design pattern to a particular problem. [2]
  2. an understanding of basic Object Oriented concept of classes, objects, inheritance and polymorphism. [1]

Lecture Outline:

Lecture Topics
.5 virtual and non-virtual functions
1 Constructors and constructor call order

Engineering Design Content:

Synthesis
Analysis
Construction
Testing

Engineering Design Consideration(s):

Economic