К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
The C++ Programmer's Mindset · LearnSpace
Назад в каталог
courseraПрограммирование

The C++ Programmer's Mindset

Курс от Packt
Средний≈ 18.4 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

Learn how to use the computational thinking framework and modern C++ features to tackle complex programming challenges and build scalable, reusable solutions. Develop a problem-solving mindset that sets you apart. This resource equips C++ developers with the tools to think like computer scientists, using computational thinking to solve complex problems. It bridges theory and practice, helping you build efficient, scalable, and maintainable code through real-world examples and modern C++ techniques. This course is ideal for intermediate C++ developers, software engineers, and computer science students looking to enhance their problem-solving skills. A basic understanding of C++ syntax is required to get the most out of the content. This course starts by introducing the computational thinking framework, followed by a deeper dive into abstraction, algorithms, and data structures all illustrated by small examples. Then we explore a large case study, covering each challenge in detail before reflecting on the full solution. We conclude with ways to accelerate your code using parallelism and CUDA, and by profiling your code. This course is based on The C++ Programmer's Mindset, by Sam Morley. Packt is one of the world's most prolific publishers of cutting-edge technical content. For over two decades we've made it our mission to curate and publish the knowledge of only the very best technical experts. We focus on real-world courses that help our customers get the job done, with coverage that extends across a wide range of established and cutting-edge technical topics. If you're an individual or an organisation that embraces learning by doing, Packt is the perfect fit for you.

Навыки, которые вы освоите

Code ReusabilityDebuggingWeb FrameworksC (Programming Language)AlgorithmsTheoretical Computer ScienceSystem ProgrammingComputational ThinkingUnsupervised LearningC++ (Programming Language)MicroarchitectureSystems ArchitectureEngineeringData StructuresDevelopment TestingMaintainabilityData Import/ExportSoftware DesignObject Oriented Programming (OOP)C and C++

Программа курса

15 модулей · 145 учебных материалов

01Thinking Computationally13 материалов

Mastering Problem-Solving Through Computational Thinking

OverviewВидеоIntroductionЧтениеGeneral AdviceЧтениеDecomposing ProblemsЧтение

Учитесь у экспертов

Packt - Course Instructors

Преподаватель курса

The C++ Programmer's Mindset
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 18.4 ч

15 модулей

Язык: Английский

Часть программы вашего университета
Computing the Average Annual Temperature DifferencesЧтение
Identifying Commonalities in DataЧтение
Common Structural PatternsЧтение
Characteristics of an AlgorithmЧтение
Using Modern C++ and Good PracticeЧтение
Thinking ComputationallyDIALOGUE
Views, Ranges, and AlgorithmsЧтение
Handling Errors in C++Чтение
Core Principles of Problem SolvingЗадание
02Abstraction in Detail11 материалов

Mastering Code Abstraction in C++

OverviewВидеоIntroductionЧтениеConnecting Problems with C++ Abstraction MechanismsЧтениеUsing Standard AlgorithmsЧтениеWhen to Use FunctionsЧтениеAbstraction in DetailDIALOGUEFunctions as Building BlocksЧтениеWhen to Use ClassesЧтениеClasses That Represent Physical ObjectsЧтениеConcepts for Basic DataЧтениеMastering Abstraction and Problem-Solving TechniquesЗадание
03Algorithmic Thinking and Complexity12 материалов

Mastering Efficient Problem Solving Through Algorithmic Design

OverviewВидеоIntroductionЧтениеProof by InductionЧтениеComputing ComplexityЧтениеAmortized ComplexityЧтениеAlgorithmic Thinking and ComplexityDIALOGUEIterative AlgorithmsЧтениеDivide and Conquer AlgorithmsЧтениеOptimization AlgorithmsЧтениеRandomized AlgorithmsЧтениеVectorized Operations and SIMDЧтениеExploring Algorithmic Thinking and ComplexityЗадание
04Understanding the Machine12 материалов

Decoding the Machine: How Hardware Shapes Software Performance

OverviewВидеоIntroductionЧтениеInstruction ArchitecturesЧтениеProcessor ThreadsЧтениеThe Storage SpectrumЧтениеUnderstanding the MachineDIALOGUEMain MemoryЧтениеSIMDЧтениеMemory AlignmentЧтениеBranch Prediction and Speculative ExecutionЧтениеThe Operating SystemЧтениеExploring Computer System ComponentsЗадание
05Data Structure12 материалов

Mastering Data Structures and Memory Management in C++

OverviewВидеоIntroductionЧтениеInfinite Precision IntegersЧтениеAllocation and AllocatorsЧтениеLinear Memory: Vectors, Stacks, and QueuesЧтениеData StructureDIALOGUEMore on VectorsЧтениеViews and SpansЧтениеMaps and SetsЧтениеHash Sets and Hash MapsЧтениеMap BenchmarksЧтениеData Structure and Memory Management FundamentalsЗадание
06Reusing Your Code and Modularity8 материалов

Mastering Reusable Code and Modular Design in C++

OverviewВидеоIntroductionЧтениеPublic and Private ComponentsЧтениеReusing Your Code and Modularity DIALOGUEDesigning Stable InterfacesЧтениеUsing C++ ModulesЧтениеSeparating Components in the Build SystemЧтениеCode Reuse and Modular Design FundamentalsЗадание
07Outlining the Challenge7 материалов

Decomposing Complex Problems and Building Scalable Solutions

OverviewВидеоIntroductionЧтениеMajor ChallengesЧтениеOutlining the ChallengeDIALOGUEClustering the DataЧтениеPutting Everything TogetherЧтениеUnderstanding Challenges in Command-Line Application DevelopmentЗадание
08Building a Simple Command-Line Interface7 материалов

Mastering CLI Development: From Logging to Error Handling

OverviewВидеоIntroductionЧтениеSetting Up LoggingЧтениеBuilding a Simple Command-Line InterfaceDIALOGUEError Handling and SignalsЧтениеFormatting Results for the TerminalЧтениеBuilding and Managing Command-Line InterfacesЗадание
09Reading Data from Different Formats9 материалов

Mastering Data Parsing and File Type Handling

OverviewВидеоIntroductionЧтениеParsing CSV FilesЧтениеParsing JSON FilesЧтениеReading Data from Different FormatsDIALOGUEThe File Reader Base ClassЧтениеWriting the JSON Reader ClassЧтениеWriting Some Simple TestsЧтениеData Parsing and File Format ChallengesЗадание
10Finding Information in Text8 материалов

Decoding Text: From Raw Data to Structured Information

OverviewВидеоIntroductionЧтениеSearching for DatesЧтениеSearching for CoordinatesЧтениеDesigning the ParserЧтениеExtracting Individual Entries from the Whole FileЧтениеWriting TestsЧтениеNavigating Text for Coordinate DataЗадание
11Clustering Data11 материалов

Unlocking Patterns in Geographic Data with K-Means Clustering

OverviewВидеоIntroductionЧтениеChoosing the Number of ClustersЧтениеImplementing the Clustering AlgorithmЧтениеImplementing the Clustering AlgorithmЧтениеClustering DataDIALOGUEDeciding on the Number of Clusters and Computing the ClusteringЧтениеTesting Our ImplementationЧтениеTesting the k-Means Clustering LogicЧтениеTesting the Clustering AlgorithmЧтениеClustering Fundamentals and TechniquesЗадание
12Reflecting on What We Have Built7 материалов

Evaluating Progress and Refining Your Build

OverviewВидеоIntroductionЧтениеExamining the More Difficult PartsЧтениеReflecting on What We Have BuiltDIALOGUEReflecting on Our Computational ThinkingЧтениеReviewing the Techniques We've UsedЧтениеReflections on Software Development and DesignЗадание
13The Problems of Scale9 материалов

Mastering Distributed Computing and Scalability Challenges

OverviewВидеоIntroductionЧтениеOther Synchronizing MechanismsЧтениеCommunicating Between ProcessesЧтениеThe Problems of ScaleDIALOGUESerializationЧтениеUnderstanding BottlenecksЧтениеBottlenecks from Accessing Shared ResourcesЧтениеNavigating Scale in Modern Computing SystemsЗадание
14Dealing with GPUs and Specialized Hardware10 материалов

Mastering GPU Programming and Parallel Execution

OverviewВидеоIntroductionЧтениеBlocks, Grids, and WarpsЧтениеUsing Thrust Algorithms and OpenMP OffloadingЧтениеDealing with GPUs and Specialized HardwareDIALOGUEOpenMP Device OffloadingЧтениеCoordinating Between GPU ThreadsЧтениеWarp-level Synchronization and Cooperative GroupsЧтениеUsing SYCL to Write Code for Many DevicesЧтениеExploring GPU and Specialized Hardware FundamentalsЗадание
15Profiling Your Code9 материалов

Mastering Code Profiling and Performance Optimization

OverviewВидеоIntroductionЧтениеPerf the ProgramЧтениеProfiling Your CodeDIALOGUESetting Up Your Applications for ProfilingЧтениеIdentifying Memory BottlenecksЧтениеIdentifying Slow ComputationЧтениеCode Profiling and Performance AnalysisЗаданиеThe The C++ Programmer's Mindset Final AssessmentЗадание