Skip to Content
Course

C/C++ Programming IV: Advanced Programming with Objects

CSE-40478

Expanding on serveral topics in C++ Programming III,

this course encompasses object-oriented analysis, design, and programming. Additionally, advanced memory management, stream and file I/O, persistence, multiple inheritance, advanced polymorphic programming, templates, STL libraries, C++ style, and efficiency will also be covered.

Course Highlights:

  • Generic programming and the C++ standard library
  • Exception, safety issues and techniques
  • The transactional memory model
  • Class design and inheritance
  • Compilers, names and interfaces
  • Memory management
  • Traps, pitfalls and anti-idioms
  • Functors and iterators
  • Control flow and multiple inheritance

Course Learning Outcomes:

  • Gain a foundation for writing efficient, safe C++ code
  • Learn how to use STL libraries
  • Understand memory pitfalls in C++
  • Know how to expand the C++ memory model
  • Utilize object-oriented for analysis and design
  • Apply multiple inheritance to an application
  • Understand how streams work
  • See how to persist objects via streams
  • Gain experience following C++ guidelines
  • Identify potential bugs in code before they occur

Software: Students must have access to program development tools. Free IDE downloads students commonly use for this program include "Visual Studio Community" for Windows, "Xcode" for macOS, and "Code::Blocks" for Linux, Windows, and macOS.

Course Materials: The instructor will provide students with a pdf copy of his custom course reader to be used for the duration of this course. There is no other textbook required for this course.

Course Typically Offered: Online in Winter, Summer, and Fall quarters.

Prerequisite:  Must complete CSE-40477 C/C++ Programming III: Intermediate Programming with Objects or possess a solid understanding of the C++ programming language syntax and a high level understanding of the C++ standard library (streams, containers, iterators, and algorithms).

Next Step: After completing this course, consider taking CSE-40049 Data Structures and Algorithms in C/C++ to continue learning.

Contact: For more information about this course, please email infotech@ucsd.edu.

Course Information

Online
3.00 units
$745.00

Course sessions

Closed

Section ID:

184029

Class type:

Online Asynchronous.

This course is entirely web-based and to be completed asynchronously between the published course start and end dates. Synchronous attendance is NOT required.
You will have access to your online course on the published start date OR 1 business day after your enrollment is confirmed if you enroll on or after the published start date.

Textbooks:

No textbook required.

Policies:

Schedule:

No information available at this time.
Closed

Instructor: Raymond Mitchell III, B.S.

Raymond Mitchell III, B.S.

Software Engineer, Fairway Technologies

Raymond Mitchell, III has 10+ years of experience architecting and implementing C++, Java, and C# applications. He graduated from UC San Diego with a B.S. in computer science. Ray's industry experience ranges from telephony and retail control systems to web applications. He is currently a Software Engineering with Fairway Technologies.
 

Full Bio
Add To Cart

Section ID:

185623

Class type:

Online Asynchronous.

This course is entirely web-based and to be completed asynchronously between the published course start and end dates. Synchronous attendance is NOT required.
You will have access to your online course on the published start date OR 1 business day after your enrollment is confirmed if you enroll on or after the published start date.

Textbooks:

No textbook required.

Policies:

  • No refunds after: 1/13/2025

Schedule:

No information available at this time.
Add To Cart

Instructor: Raymond Mitchell III, B.S.

Raymond Mitchell III, B.S.

Software Engineer, Fairway Technologies

Raymond Mitchell, III has 10+ years of experience architecting and implementing C++, Java, and C# applications. He graduated from UC San Diego with a B.S. in computer science. Ray's industry experience ranges from telephony and retail control systems to web applications. He is currently a Software Engineering with Fairway Technologies.
 

Full Bio