Development

C++ Unboxed (programming language)

Course Overview

  • Course Title: C++ Unboxed (Programming Language)
  • Instructor: ProgLang MainSt.
  • Target Audience:
    • Advanced undergraduates in computer science
    • Graduate students
    • Professional developers
    • Software architects
    • Performance engineers
    • Systems programmers
  • Prerequisites:
    • Solid understanding of general programming concepts (variables, control flow, functions, data structures)
    • Familiarity with basic C++ syntax and semantics
    • Exposure to systems programming (memory management, compilation, concurrency) is helpful but not mandatory

Curriculum Highlights

  • Key Topics Covered:
    • Historical evolution of C++ from "C with Classes" to modern C++
    • Impact of early tools like Cfront on compiler and language design
    • Core design pillars: zero-overhead abstractions, RAII (Resource Acquisition Is Initialization), and C compatibility
    • Role of templates and generic programming in enabling code reuse and abstraction
    • Development and impact of the Standard Template Library (STL)
    • Modern C++ features: move semantics, lambda expressions, type deduction, smart pointers, and the formal memory model
    • Advanced language concepts: concepts, ranges, coroutines, modules, and compile-time computation
    • C++ applications in performance-critical domains (game engines, embedded systems, browsers, databases, high-frequency trading, scientific computing)
    • Memory management: storage duration, object lifetimes, dynamic allocation, placement new, alignment, and padding
    • Polymorphism mechanisms: virtual dispatch, vtables, type erasure, and modern alternatives (std::function, std::variant, std::any)
    • Concurrency and parallelism: C++ memory model, atomics, memory orders, lock-free programming, and parallel algorithms
    • Tooling and best practices: profiling, benchmarking, sanitizers, exception safety, ABI stability, and whole-program optimizations
    • Modern idioms and safer subsets for robust, maintainable, and efficient C++ code
    • Trade-offs between C++ and other languages (Rust, Go, Python) in performance, safety, and ecosystem
  • Key Skills Learned:
    • Analyzing C++ language design and architectural principles
    • Understanding the rationale behind modern C++ features
    • Evaluating performance characteristics of C++ in system-level applications
    • Applying theoretical knowledge to real-world software systems
    • Critically assessing language trade-offs in high-performance domains

Course Format

  • Duration:
    • 7.5 hours of on-demand video
    • 9 articles
  • Format: Self-paced online course
  • Resources:
    • On-demand video lectures
    • Articles for supplementary reading
    • Access on mobile and TV
    • Certificate of completion

Special Offer

  • Limited Time Coupon Code: N/A
Get Coupon on Udemy