0% found this document useful (0 votes)
6 views

C ProgrammingMasterclass-Syllabus

A

Uploaded by

depocew554
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

C ProgrammingMasterclass-Syllabus

A

Uploaded by

depocew554
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

C++ Programming Masterclass

Summary
• Duration: 5 days, taught as 10 half-days
• Instructor: Pavel Yosifovich
• Dates: December 2024: 3, 4, 5, 9, 10, 11, 12, 16, 17, 18.
• Times: 11am to 3pm EST (8am to 12pm PST) (4pm to 8pm GMT)

Target Audience
• Developers familiar with another C-style language like C, Java, C#
• C++ developers that want to ramp up their skills
• Developers coming from another language family that want to get into C++ development
• Anyone with a programming background that wants to learn modern C++

Abstract
The C++ language has been around for almost 40 years, starting as “C with Classes” in 1985.
C++ is a system level language that includes high-level facilities. The language was stagnant
from 1998 to 2011 (although not the ecosystem), but things changed significantly in 2011.

C++ 11 emerged as the new C++ standard, followed by C++ 14, C++ 17, C++ 20, and recently
C++ 23, (with C++ 26 already in the works), that enhance C++ developer power and productivity,
while preserving the important properties of the language such as zero-cost abstractions,
performance & efficiency. In this course, participants will learn the foundation of classic C++
and modern C++ , with the latest C++ standards and library enhancements, modernizing C++
coding practices. Some of the common design patterns are demonstrated with modern C++
techniques.

If you’ve ever wanted to learn C++ and be productive – this is the course for you.

The course includes lab exercises to help the material sink in.

Syllabus
• Module 1: Introduction to Modern C++
o The C++ standards
o C++ evolution
o Introduction to the standard library
o Containers
o Iterators
o Algorithms

• Module 2: C++ Fundamentals


o Variables
o Data Types
o Expressions
o Functions
o Recursion
o The Preprocessor
o Macros
o Compilation and Linking
o Simple I/O
o Conditions
o Arrays
o Loops
o Pointers
o References
o The Stack and the Heap (Free Store)
o The new and delete Operators

• Module 3: Object Oriented Design and Programming


o Classes and Objects
o Encapsulation
o Constructors and destructors
o Inheritance
o Polymorphism
o Abstract Types
o Copy constructor
o Move semantics
o The SOLID design principles
▪ Single Responsibility Principle (SRP)
▪ Open Closed Principle (OCP)
▪ Liskov Substitution Principle (LSP)
▪ Interface Segregation Principle (ISP)
▪ Dependency Injection Principle (DIP)
o Unions
o Operator Overloading

• Module 4: Standard Library Basics


o Containers
▪ Sequence containers
▪ Associative containers
▪ Container adaptors
o Iterators
o Strings
o Algorithms
• Module 5: Modern Language Features and Libraries (Part 1)
o Type inference
o Scoped enums
o Lambda functions
o Range-based for
o Uniform Initialization
o Compile-time assertions
o Structural Decomposition

• Module 6: Templates
o Quick templates review
o Macros vs. templates
o Local and unnamed types as template arguments
o Template aliases
o Type deduction
o Template metaprogramming
o Variadic templates
o Type Traits
o Template Arguments Class Template Deduction
o Concepts (C++ 20)
o Ranges and Views (C++ 20)

• Module 7: Language Features and Libraries (Part 2)


o Resource Management
o RAII
o Smart pointers
o The Pimpl Idiom
o String views (C++ 17)
o Spans (C++ 20)
o Explicit conversion operators
o Thread Local Storage
o Const expressions
o Attributes
o Streams

• Module 8: The C++ Standard Library


o Time
o Random numbers
o Math
o General Utilities
o Strings and Characters
o Algorithms
o File I/O

• Module 9: Concurrency in Modern C++


o The C++ Memory Model
o Threads
o Async operations
o Thread Synchronization
o Atomics
o Mutexes and other synchronization primitives
o Implementing Thread-Safe Containers
o Introduction to coroutines (C++ 20)

You might also like