Skip to content

danilyef/c_plus_plus_specialization_coursera

Repository files navigation

C++ Specialization Coursera

image

A comprehensive 5-course C++ specialization covering fundamental concepts to advanced programming techniques, design patterns, and performance optimization.


Course Overview

1. White Belt: C++ Development Fundamentals

Introduction to C++ programming language fundamentals and core constructs.

Key Topics:

  • Basic data types and control flow
  • Functions and standard containers
  • Classes and algorithms
  • Input/Output operations and exception handling
  • Operator overloading

Final Project: Simple data storage system with add, delete, and search functionality


2. Yellow Belt: Intermediate C++ Development

Building upon White Belt foundations with more advanced C++ features.

Key Topics:

  • Integer types, pairs, and tuples
  • Function templates
  • Inheritance and polymorphism
  • Iterators and standard algorithms
  • Code organization across multiple files
  • Unit testing and test framework development

Final Project: Enhanced data storage system with support for complex queries


3. Red Belt: Performance and Optimization

Focus on code optimization, efficient programming practices, and multithreading.

Key Topics:

  • Macros and class templates
  • Code optimization principles
  • Algorithm complexity analysis
  • C++ memory model
  • Efficient use of linear containers (vector, deque, list, string)
  • Move semantics
  • Multithreaded programming fundamentals
  • Custom profiler development

Final Project: Search engine implementation


4. Brown Belt: C++ Idioms and Design Patterns

Master C++ idioms and learn to write elegant, maintainable code.

Key Topics:

  • C++ idioms and best practices
  • Namespaces
  • Efficient use of associative containers
  • Advanced design patterns
  • Code refactoring techniques
  • Smart pointers and RAII
  • Template metaprogramming
  • Parsing (JSON, XML, INI)

Final Project: Transport Directory system with route management


5. Black Belt: Advanced C++ and Real-World Applications

Advanced topics, professional tools, and comprehensive project work.

Key Topics:

  • Virtual method tables and virtual destructors
  • Undefined behavior and memory safety
  • Variadic templates and forwarding references
  • Sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer)
  • Protocol Buffers (protobuf)
  • Custom container implementation (vector, optional)
  • Advanced debugging techniques
  • STL internals

Final Project: Transport Catalogue System - A three-week project featuring route planning algorithms, SVG map generation, and advanced coordinate projection


Learning Outcomes

Upon completing this specialization, you will be able to:

  • Solve practical problems independently using C++
  • Apply C++ idioms naturally (STL, RAII, const-correctness, type safety)
  • Write efficient code without sacrificing readability and maintainability
  • Debug complex programs using professional tools
  • Design and implement large-scale systems
  • Optimize performance and memory usage
  • Work with modern C++ development practices

About

5 Course C++ specialization: from white belt until black belt

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages