ECE 39595 - Object-Oriented Programming with C++
Note:
CMPE students may only take this course or ECE 39595 Object Oriented Programming with Java as a CMPE Selective.
Course Details
Lecture Hours: 3 Credits: 3
Counts as:
- EE Elective
- CMPE Selective
Experimental Course Offered:
Fall 2020
Requisites:
ECE 20875 and EE 26400
Requisites by Topic:
Programming ability, pointers, memory allocation, objects
Catalog Description:
This course teaches C++ and the principles object oriented programming using Java. 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.
Required Text(s):
- C++ Crash Course: A Fast-Paced Introduction , Lospinoso, Josh , No Starch Press , 2019 , ISBN No. 13: 978-1593278885
- Head First Design Patterns , 1st Edition , Eric Freeman, Elisabeth Robson, Bert Bates and Kathy Sierra , O'Reilly Media , 2004 , ISBN No. 13: 978-0596007126
- The Pragmatic Programmer: From Journeyman to Master , 1st Edition , David Thomas and Andrew Hunt , Addison-Wesley Publishing Co. , 1999 , ISBN No. 13: 978-0201616224
Recommended Text(s):
- Refactoring: Improving the Design of Existing Code , 2nd Edition , Martin Fowler , Addison-Wesley Publishing Co. , 2018 , ISBN No. 978-0134757681
- 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:
- the ability to analyze a specification and develop a significant C++ program that meets those specifications. [1]
- the ability to apply a design pattern to a particular problem. [2]
- an understanding of basic Object Oriented concept of classes, objects, inheritance and polymorphism. [1]
- the ability to implement a properly synchronized multithreaded program. [1]
Lecture Outline:
Lectures | Lecture Topics |
---|---|
1 | Overview, quick test on sobjects and virtual function calls |
1 | virtual and non-virtual functions |
1 | Constructors, destructors and call order |
1 | Protection levels and access levels |
2.5 | Abstract classes and interfaces; Parameter passing and casts, references, copy constructors |
1 | Function resolution and containers |
1 | Friend functions and operator overloading |
1 | Exceptions; Multithreading |
1 | Templates |
2 | Ivalues and rvalues, other kinds of constructors |
.5 | Linkers and loaders |
2 | Exams |
Engineering Design Content:
- Synthesis
- Analysis
- Construction
- Testing
Engineering Design Consideration(s):
- Economic
Assessment Method:
Exams, quizzes, projects, homework