Packt

The C++ Programmer's Mindset

Ends soon! Get $70+ in savings and build skills with Coursera Plus. Save 40% for 3 months.

Packt

The C++ Programmer's Mindset

Included with Coursera PlusLearn more

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Apply computational thinking to solve complex C++ problems

  • Break problems into components using abstraction and decomposition

  • Design modular and reusable C++ code effectively

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

September 2026

Assessments

16 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

There are 15 modules in this course

This module introduces the core principles of computational thinking, including problem decomposition, pattern recognition, and algorithm design. Learners will develop skills to break down complex problems into manageable parts and apply structured approaches to solve them effectively. The content also covers practical aspects of algorithm characteristics and error handling in programming.

What's included

1 video10 readings1 assignment

This module explores the concept of abstraction in C++ through functions, classes, and templates, showing how to design efficient and reusable code. Learners will gain an understanding of when and how to apply abstraction mechanisms to solve complex programming problems. The focus is on implementing abstractions that enhance code organization and maintainability.

What's included

1 video8 readings1 assignment

This module covers key concepts in algorithmic thinking, including how to analyze and design efficient algorithms, understand computational complexity, and apply techniques like divide and conquer and optimization. Learners will develop skills in evaluating algorithm performance and selecting appropriate methods for various problem types.

What's included

1 video9 readings1 assignment

This module provides an in-depth exploration of computer hardware and its impact on software performance. Learners will gain a clear understanding of processor architectures, memory hierarchies, and key optimization techniques such as SIMD and branch prediction. The module equips students with the knowledge to write more efficient and performant code.

What's included

1 video9 readings1 assignment

This module explores various data structures and their implementation in C++, focusing on memory management, container types, and performance characteristics. Learners will gain an understanding of how to effectively use and manage data in different scenarios.

What's included

1 video9 readings1 assignment

This module covers strategies for creating reusable C++ code through modularity, focusing on designing stable interfaces, managing dependencies, and using C++ modules to organize large projects effectively.

What's included

1 video5 readings1 assignment

This module explores how to break down a large, complex problem into manageable components, focusing on data handling, clustering, and integration. Learners will develop skills in identifying challenges, designing modular solutions, and constructing cohesive datasets. The module emphasizes the importance of maintaining a holistic perspective while working on technical tasks.

What's included

1 video4 readings1 assignment

This module explores how to build and configure a robust command-line interface, including logging, error handling, and output formatting. Learners will gain practical skills in managing user interactions and ensuring reliable application behavior through real-world implementation examples.

What's included

1 video4 readings1 assignment

This module covers the process of reading and parsing data from different file formats, with a focus on CSV and JSON. Learners will learn to design consistent interfaces, implement file type dispatching, and write tests for their code. The module emphasizes practical skills in data handling and software development.

What's included

1 video6 readings1 assignment

This module teaches how to extract meaningful information from unstructured text files using regular expressions and custom parsing strategies. Learners will gain hands-on experience with implementing a FileReader, designing regex patterns for dates and coordinates, and writing tests to validate their solutions. The focus is on developing robust text-processing techniques for real-world data.

What's included

1 video6 readings1 assignment

This module introduces the k-means clustering algorithm and its application to geographic data analysis. Learners will explore techniques for determining the optimal number of clusters and validate their implementations through testing. The focus is on building and evaluating clustering solutions for real-world data.

What's included

1 video8 readings1 assignment

This module guides learners through testing their application with sample data, analyzing challenges in implementation, and reflecting on lessons learned to improve future projects. It emphasizes the importance of evaluation and iterative development in software building.

What's included

1 video4 readings1 assignment

This module examines the challenges of scaling computational systems, including data access control, inter-process communication, and bottleneck identification. Learners will gain insights into managing distributed systems and optimizing performance through synchronization and resource allocation strategies.

What's included

1 video6 readings1 assignment

This module introduces learners to GPU architecture and parallel programming techniques, covering essential tools like CUDA C++, SYCL, and Thrust. It emphasizes thread coordination, memory management, and cross-device development strategies, providing hands-on knowledge for optimizing performance on specialized hardware.

What's included

1 video7 readings1 assignment

This module covers techniques for profiling code to improve performance, focusing on identifying memory bottlenecks, analyzing slow computations, and using tools like perf to optimize application speed and efficiency.

What's included

1 video5 readings2 assignments

Instructor

Packt - Course Instructors
Packt
2,257 Courses675,057 learners

Offered by

Packt

Why people choose Coursera for their career

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions