Packt

The C++ Programmer's Mindset

Ce cours n'est pas disponible en Français (France)

Nous sommes actuellement en train de le traduire dans plus de langues.
Packt

The C++ Programmer's Mindset

Inclus avec Coursera PlusEn savoir plus

Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Intermédiaire

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme
Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Intermédiaire

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme

Ce que vous apprendrez

  • Apply computational thinking to solve complex C++ problems

  • Break problems into components using abstraction and decomposition

  • Design modular and reusable C++ code effectively

Compétences que vous acquerrez

  • Catégorie : Maintainability
  • Catégorie : Data Import/Export
  • Catégorie : Computational Thinking
  • Catégorie : Code Reusability
  • Catégorie : Microarchitecture
  • Catégorie : System Programming
  • Catégorie : Development Testing
  • Catégorie : Software Design
  • Catégorie : Debugging
  • Catégorie : Data Structures
  • Catégorie : Object Oriented Programming (OOP)
  • Catégorie : Engineering
  • Catégorie : Algorithms
  • Catégorie : Theoretical Computer Science
  • Catégorie : Unsupervised Learning
  • Catégorie : C and C++
  • Catégorie : Systems Architecture

Outils que vous découvrirez

  • Catégorie : C++ (Programming Language)
  • Catégorie : C (Programming Language)
  • Catégorie : Web Frameworks

Détails à connaître

Certificat partageable

Ajouter à votre profil LinkedIn

Récemment mis à jour !

septembre 2026

Évaluations

16 devoirs

Enseigné en Anglais

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

 logos de Petrobras, TATA, Danone, Capgemini, P&G et L'Oreal

Il y a 15 modules dans ce cours

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.

Inclus

1 vidéo10 lectures1 devoir

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.

Inclus

1 vidéo8 lectures1 devoir

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.

Inclus

1 vidéo9 lectures1 devoir

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.

Inclus

1 vidéo9 lectures1 devoir

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.

Inclus

1 vidéo9 lectures1 devoir

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.

Inclus

1 vidéo5 lectures1 devoir

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.

Inclus

1 vidéo4 lectures1 devoir

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.

Inclus

1 vidéo4 lectures1 devoir

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.

Inclus

1 vidéo6 lectures1 devoir

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.

Inclus

1 vidéo6 lectures1 devoir

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.

Inclus

1 vidéo8 lectures1 devoir

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.

Inclus

1 vidéo4 lectures1 devoir

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.

Inclus

1 vidéo6 lectures1 devoir

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.

Inclus

1 vidéo7 lectures1 devoir

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.

Inclus

1 vidéo5 lectures2 devoirs

Instructeur

Packt - Course Instructors
Packt
2 396 Cours698 592 apprenants

Offert par

Packt

En savoir plus sur Software Development

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.

Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’

Jennifer J.

Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’

Larry W.

Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’

Chaitanya A.

’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’

Foire Aux Questions