Abstraction, Problem Decomposition, and Functions (Coursera)

Abstraction, Problem Decomposition, and Functions (Coursera)

This course is the third course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means!

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

This course assumes you have the prerequisite knowledge from the previous two courses in the specialization. You should make sure you have that knowledge, either by taking those previous courses or from personal experience, before tackling this course. The required prerequisite knowledge is listed below.
Prerequisite computational thinking knowledge: Algorithms and procedures and data collection, analysis, and representation
Prerequisite C knowledge: Data types, variables, constants; STEM computations; selection; and iteration (looping)
Throughout this course the computational thinking topics you'll explore are abstraction, which is deciding which details matter for the problem you're trying to solve, and problem decomposition, which is about breaking large problems into smaller sub-problems to handle complexity. For the programming topics, you'll continue building on your C knowledge by practicing using arrays, which let you store multiple values in a single variable, and strings, which are arrays of characters. You'll also learn how to implement functions, which are the mechanism we use for problem decomposition in our C programs.
Module 1: Learn about arrays as a way to store multiple values in a single variable
Module 2: Discover how we store and process strings (arrays of characters)
Module 3: Explore abstraction and problem decomposition
Module 4: Use functions to implement problem decomposition in your code
Course 3 of 4 in the Computational Thinking with Beginning C Programming Specialization.

Syllabus

WEEK 1: Arrays
WEEK 2: Strings
WEEK 3: Abstraction and Problem Decomposition
WEEK 4: Functions

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Problem Solving, Python Programming, and Video Games (Coursera) Coursera
University of Alberta

Problem Solving, Python Programming, and Video Games (Coursera)

This course is an introduction to computer science and programming in Python. Important computer science concepts such as problem solving (computational thinking), problem decomposition, algorithms, abstraction, and software quality are emphasized throughout. The Python programming language and video games are used to demonstrate computer science concepts in a concrete and fun manner. However, a learner can take the knowledge and skills from this course and apply them to non-game problems, other programming languages, and other computer science courses.

Nov 16th 2026
5-12 Weeks
Verification and Synthesis of Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Verification and Synthesis of Autonomous Systems (Coursera)

This course will provide different techniques on the verification of autonomous systems against stability, regular, or omega-regular properties. Such techniques include Lyapunov theories, reachability analysis, barrier certificates, and model checking. Finally, it will introduce several techniques on designing controllers enforcing properties of interest over the original autonomous systems.

Nov 9th 2026
4 Weeks
Problem Solving Using Computational Thinking (Coursera) Coursera
University of Michigan

Problem Solving Using Computational Thinking (Coursera)

Have you ever heard that computers "think"? Believe it or not, computers really do not think. Instead, they do exactly what we tell them to do. Programming is, "telling the computer what to do and how to do it." Before you can think about programming a computer, you need to work out exactly what it is you want to tell the computer to do. Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand.

Nov 9th 2026
5-12 Weeks
Simulation, Algorithm Analysis, and Pointers (Coursera) Coursera
University of Colorado System

Simulation, Algorithm Analysis, and Pointers (Coursera)

This course is the fourth and final course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means!

Nov 9th 2026
4 Weeks
Interactivity with JavaScript (Coursera) Coursera
University of Michigan

Interactivity with JavaScript (Coursera)

If you want to take your website to the next level, the ability to incorporate interactivity is a must. But adding some of these types of capabilities requires a stronger programming language than HTML5 or CSS3, and JavaScript can provide just what you need. With just a basic understanding of the language, you can create a page that will react to common events such as page loads, mouse clicks & movements, and even keyboard input.

Nov 2nd 2026
4 Weeks
Artificial Intelligence (AI) Education for Teachers (Coursera) Coursera
Macquarie University

Artificial Intelligence (AI) Education for Teachers (Coursera)

Today’s learners need to know what artificial intelligence (AI) is, how it works, how to use it in their everyday lives, and how it could potentially be used in their future. Using AI requires skills and values which extend far beyond simply having knowledge about coding and technology. This course is designed by teachers, for teachers, and will bridge the gap between commonly held beliefs about AI, and what it really is. AI can be embedded into all areas of the school curriculum and this course will show you how. This course will appeal to teachers who want to increase their general understanding of AI, including why it is important for learners; and/or to those who want to embed AI into their teaching practice and their students’ learning.

Nov 16th 2026
5-12 Weeks
Introduction to Python Functions (Coursera) Coursera
University of Colorado Boulder

Introduction to Python Functions (Coursera)

How many times have you decided to learn a programming language but got stuck somewhere along the way, grew frustrated, and gave up? This specialization is designed for learners who have little or no programming experience but want to use Python as a tool to play with data. In the second course, Introduction to Python Functions, you are going to learn and use functions predefined in Python and Python packages, you also are able to define functions as well. You will create and use functions to make your programs reusable and adaptive.

Nov 9th 2026
4 Weeks
Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera) Coursera
University of California, San Diego

Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera)

How do gamers cause things to happen when they hit buttons on their controller? How does the computer keep track of gamer's scores? This class teaches the concepts of nested loops, events, and variables. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with nested loops, events, and variables in a way that keeps frustration at a minimum.

Nov 4th 2026
5-12 Weeks
Computational Thinking with JavaScript 3:Organise & Interact (Coursera) Coursera
University of Glasgow

Computational Thinking with JavaScript 3:Organise & Interact (Coursera)

This third course in the Computational Thinking with JavaScript specialization applies your developing JavaScript skills learned in the first two courses to the world of the web. You will learn how HTML and JavaScript together support the web pages with which we are so familiar, and develop skills so that you can create your own. As well as text presentation, at the heart of HTML, you will learn how to develop interactive, animated graphics, using JavaScript to dynamically add, remove and adjust the HTML objects on the screen.

Nov 9th 2026
4 Weeks