concurrent and parallel thinking
This page is mainly about 3.18_concurrent_and_parallel_thinking
Module introduction
Have you ever wondered how a computer can play music, download a file, and let you browse the web all at the same time without getting confused? It's not magic; it's the power of thinking concurrently! In this module, you will unlock the secrets of how computers multitask. This journey will take you from the basics of single-step, sequential instructions to understanding the power of parallel processing. By the end of this module, you will have the power to design and program simple systems where multiple things happen at once, making your creations more efficient and dynamic.
Why does this module matter?
Understanding concurrency is like learning the secret to being a master chef instead of a home cook. A home cook does one thing at a time: chop all the vegetables, then cook the meat, then make the sauce. A master chef has multiple things happening at once, perfectly timed, to create a meal faster and more efficiently. In the digital world, this skill is essential for creating fast, responsive software, from the smooth graphics in your favourite video game to the complex operations of an aircraft.
1
For you
This module will help you develop several key computing personas:

The System Integrator: Concurrency is all about how different parts of a software system interact and work together at the same time. As a System Integrator, you'll learn to see a program not just as one long list of instructions, but as a collection of smaller processes that can run in parallel to make the whole system more powerful.

The Problem Solver: Knowing when to break a problem down into parts that can be solved simultaneously is a powerful problem-solving technique. This module will sharpen your ability to analyse a challenge and decide if a parallel approach will lead to a more efficient and effective solution.

The Analyst: As an Analyst, you need to understand what makes a system perform well. Learning about concurrency helps you understand why some applications feel fast and responsive while others feel slow and clunky, allowing you to define the requirements for high-quality software.
2
For your future
The skills you learn in this module are the starting point for many exciting and in-demand careers. One of the most direct pathways is to become a Game Engine Programmer.
Career focus: Game Engine Programmers are the architects behind the tools that game developers use. They write the highly optimised, core code for game engines like Unreal Engine or Unity, focusing on areas like graphics, physics, AI, and sound. A key part of their job is to make sure all these different systems can run at the same time (concurrently) to create a smooth, seamless gaming experience.
Key Skills: This role requires a deep understanding of programming languages like C++, a strong grasp of computer hardware, and advanced knowledge of algorithms. The concepts of concurrency and parallel processing you will learn in this module are absolutely fundamental to making modern, complex game worlds possible.
Interesting facts: The global video game market is worth over £200 billion, bigger than the movie and music industries combined. Top game engine programmers are among the highest earners in the software development world due to their specialised and highly sought-after skills.
Our Learning Journey
Our journey begins with simple, real-world examples to understand the difference between doing things one-by-one (sequentially) and all at once (in parallel). We'll then move to a visual programming environment where you'll create programs with multiple sprites acting independently at the same time. You will learn how to coordinate their actions using messages, enabling you to build more complex and interactive animations and simulations. Finally, we'll explore some of the challenges that arise when multiple processes try to use the same resource, giving you a complete picture of this powerful way of thinking.
Last modified: July 21st, 2025