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
Course sessions
Section ID:
Class type:
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:
Instructor: 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.
Section ID:
Class type:
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:
Instructor: 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.