Learn how to write efficient, maintainable C++ code for data-intensive applications in this hands-on course. Key application areas include scientific simulation software, statistical data processing, and computer graphics.



Recommended experience
What you'll learn
Software architecture using an object-oriented and a data-oriented approach
Efficient programming using language-specific features in C++
GPU and multi-core CPU software development in C++
Skills you'll gain
Details to know

Add to your LinkedIn profile
June 2025
54 assignments
See how employees at top companies are mastering in-demand skills

There are 5 modules in this course
To follow this MOOC, you should be familiar with the fundamentals of the C++ language. In this first module however, you will find a refresher on the most important concepts needed to complete the course. You will (re)discover variable types (stack variables, references, smart pointers), containers and algorithms, classes and polymorphism. If you already master these notions but your knowledge predates the C++11 standard, we still encourage you to follow this module for up-to-date recommendations on the efficient use of C++. In particular, have a look at Lesson 4 if you are not yet familiar with the notion of ranges in C++20 and later versions.
What's included
17 videos1 reading11 assignments
Part of the work of processing data efficiently consists in reducing the amount of computations and the complexity of the execution path. A complex execution path is often implemented to express design choices in the organization of software components. In the form of a compile-time execution framework, C++ offers a way to offload this complexity to the compilation stage and keep the execution environment simple and efficient.
What's included
12 videos1 reading10 assignments
Memory is one of the most critical resources of a computing platform. In this module, you will learn how memory is used in the C++ language and how memory access works on different types of machines. You will translate this knowledge into code that is at the same time clearly structured and efficient.
What's included
15 videos1 reading13 assignments
Learn to think about your program in a way that puts the critical hardware resource, memory, in the center of your thoughts. Apply these principles to discrete-event systems, a problem solving strategy with applications in all applied areas of science. Understand that data-oriented programming is not opposed to object-oriented programming but rather offers a way to model your objects in a way that accounts for your data structure, your algorithms, and your hardware.
What's included
8 videos9 assignments
This module introduces you to an amazing feature available in the C++17 and onward: the ability to parallelize an algorithm with almost no effort, using C++ parallel algorithms. You will learn that you can gain a manifold speedup with simple changes by running your code on multi-core CPUs and on GPUs. You will dive once more into the working principles of computer memories to understand how to reach substantial performance improvements, and you will link the concepts of data-oriented programming to efficient paralellism.
What's included
15 videos11 assignments
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors


Offered by
Explore more from Algorithms
- Status: Free Trial
University of Illinois Urbana-Champaign
Simplilearn
- Status: Free Trial
Johns Hopkins University
- Status: Free Trial
Why people choose Coursera for their career





Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy.
More questions
Financial aid available,