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

Precalculus: Relations and Functions (Coursera) Coursera
Johns Hopkins University

Precalculus: Relations and Functions (Coursera)

This course helps to build the foundational material to use mathematics as a tool to model, understand, and interpret the world around us. This is done through studying functions, their properties, and applications to data analysis. Concepts of precalculus provide the set of tools for the beginning student to begin their scientific career, preparing them for future science and calculus courses. This course is designed for all students, not just those interested in further mathematics courses.

Jul 27th 2026
4 Weeks
Java Object Basics: Functions, Recursion, and Objects (Coursera) Coursera
Codio

Java Object Basics: Functions, Recursion, and Objects (Coursera)

Code and run your first Java program in minutes without installing anything! This course is designed for learners with limited coding experience, providing a solid foundation of not just Java, but core Computer Science topics that can be transferred to other languages. The modules in this course cover functions, recursion, objects, and mutability. Completion of the prior 2 courses in this specialization are recommended.

Jul 27th 2026
4 Weeks
Data Analysis and Representation, Selection and Iteration (Coursera) Coursera
University of Colorado System

Data Analysis and Representation, Selection and Iteration (Coursera)

This course is the second 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!

Jul 27th 2026
4 Weeks
How Computers Work (Coursera) Coursera
University of London,Goldsmiths, University of London

How Computers Work (Coursera)

Computers are everywhere, they aren't just the desktops and laptops we use for work but the phones in our pockets and even the watches on our wrists are also computers. You probably use a computer every day and in fact you are reading this on a computer! Just because we use computers all the time, doesn't mean that we understand them, or find them easy to use. Computer Science is the science of computers, it is the field of knowledge that experts use to understand computer systems. Knowing a little computer science will help you understand the computers all around you.

Jul 27th 2026
4 Weeks
C Programming: Modular Programming and Memory Management - 3 (Coursera) Coursera
Institut Mines-Telecom,Dartmouth College

C Programming: Modular Programming and Memory Management - 3 (Coursera)

Enhance your coding skills along your path to becoming a proficient C programmer with the essential concepts of functions and pointers. In this course you will be introduced to the concept of modular programming: that is, dividing up more complex tasks into manageable pieces. You will learn how to write your own functions (just like functions in mathematics for example). You will also gain insight into a computer's architecture and learn how its memory is organized.

Jul 20th 2026
3 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.

Jul 20th 2026
5-12 Weeks
Algorithms, Data Collection, and Starting to Code (Coursera) Coursera
University of Colorado System

Algorithms, Data Collection, and Starting to Code (Coursera)

This course starts you on your journey learning about computational thinking and beginning C programming. If you’d like to explore how we can interact with the world in a rigorous, computational way, and would also like to start learning to program, this is the course for you!

Jul 27th 2026
4 Weeks
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.

Jul 27th 2026
5-12 Weeks
Computational Thinking with Javascript 1: Draw & Animate (Coursera) Coursera
University of Glasgow

Computational Thinking with Javascript 1: Draw & Animate (Coursera)

This is the first course in a sequence of four courses that develops essential 21st century computational thinking (CT) skills using the popular JavaScript language as a vehicle. At the end of this first course you will: know a framework for CT to help you learn about it and work with others; be developing your CT skills so that you can more easily work with digital technology of all kinds; be able to read and write programs in JavaScript that involve drawing and animation, using a specialised library; and post your creations on the web so that others can appreciate your skills.

Jul 20th 2026
4 Weeks
Excel Modeling for Professionals: Best Practices & Pitfalls (Coursera) Coursera
Delft University of Technology,Erasmus University Rotterdam

Excel Modeling for Professionals: Best Practices & Pitfalls (Coursera)

Through this course learners will gain the tools to decide whether or not Excel is the right software to use. They will learn how to set up good input data, format correctly, and the importance of good documentation. Learners will gain the ability to discern between different functions, to understand the pitfalls and strengths of commonly used functions, and to apply correct functions to their excel models. Those that follow the course will also gain understanding of logical spreadsheet structure, graphs and reporting, and protection and hidden information in Excel, and users will learn how to apply these things to their own models.

Jul 20th 2026
4 Weeks