Skip to main content
Building Closure

The Silicon Valley Campus will be closed Sunday, Jan. 19 for maintenance and Monday, Jan. 20 in honor of Martin Luther King, Jr. See you Tuesday!

Colorful blurry code

C++ Programming | CMPR.X404


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?
Speak to a student services representative.
Call (408) 861-3860
FAQ
ENROLL EARLY!
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

Speak to a student services representative.

Call (408) 861-3860

Envelope extension@ucsc.edu

What students are saying

"The instructor presented a wide degree of material with great teaching methods. He was available to students beyond the class hours. In-class practice, homework, & the final enabled us to apply accumulated knowledge in C++ throughout the course"
— Tom T. Hua Embedded Systems Engineer

Course: C++ Programming