This course covers object-oriented programming using modern C++. Because most automation, embedded applications, gaming, and many large data processing applications are written in C++, it is essential that software developers understand and master it. Hardware engineers are increasingly using C++ and OOP in system verification tasks and as of the current decade, there has been a noticeable shift from C to C++ on microcontroller systems.
This course offers an excellent foundation in developing optimized modern C++ applications. The participants will learn to write faster and modular code, and the debugging techniques, for real-world applications. There will be assignments and exercises to accompany the lectures.
Learning Outcomes
At the conclusion of the course, you should be able to
- Apply object oriented concepts to software development problems using modern C++
- Understand and use the basic programming constructs of C++
- Manipulate various C++ data types, such as arrays, strings, and pointers
- Write C++ code using principles of object-oriented programming
- Understand design patterns in C++ using singleton pattern
- Manage memory appropriately, including proper allocation/deallocation procedures using unique and smart pointers
- Utilize best practices from C++ GSL or Google Abseil libraries
Topics Include
- Principles of object-oriented analysis and design
- Stream classes for input/output and to read/write files
- User defined data types using structures and classes
- Declarations of identifiers, pointers, function pointers and references
- Reuse code and extend existing data types through inheritance
- Memory management and dynamic array declarations
- Create class/function templates and understand STL
- Use static member variables and static member functions
- Declare friend functions and friend classes
- Function overloading and operator overloading
- Polymorphism concept using virtual function
- Understand exceptions handling techniques using try/catch syntax
Skills Needed
Experience with a high level programming language such as C/Java/Python.
Have a question about this course?
ENROLL EARLY!
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts. - Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section. -
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar. -
Finance Your Education
Here are ways to pay for your education.
This course is related to the following programs:
Prerequisite(s):
Estimated Cost: TBD
Course Availability Notification
Please use this form to be notified when this course is open for enrollment.
Contact Us