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

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!

Aug 31st 2026
4 Weeks
Introduction to Python Programming (Coursera) Coursera
University of Pennsylvania

Introduction to Python Programming (Coursera)

This course provides an introduction to programming and the Python language. Students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. This course includes an overview of the various tools available for writing and running Python, and gets students coding quickly. It also provides hands-on coding exercises using commonly used data structures, writing custom functions, and reading and writing to files.

Aug 31st 2026
4 Weeks
Discrete Mathematics (Coursera) Coursera
Shanghai Jiao Tong University

Discrete Mathematics (Coursera)

Discrete mathematics forms the mathematical foundation of computer and information science. It is also a fascinating subject in itself. Learners will become familiar with a broad range of mathematical objects like sets, functions, relations, graphs, that are omnipresent in computer science. Perhaps more importantly, they will reach a certain level of mathematical maturity - being able to understand formal statements and their proofs; coming up with rigorous proofs themselves; and coming up with interesting results.

Aug 31st 2026
5-12 Weeks
Python Essentials for MLOps (Coursera) Coursera
Duke University

Python Essentials for MLOps (Coursera)

Python Essentials for MLOps is a course designed to provide learners with the fundamental Python skills needed to succeed in an MLOps role. This course covers the basics of the Python programming language, including data types, functions, modules and testing techniques. It also covers how to work effectively with data sets and other data science tasks with Pandas and NumPy.

Sep 7th 2026
5-12 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.

Sep 21st 2026
4 Weeks
Algebra: Elementary to Advanced - Functions & Applications (Coursera) Coursera
Johns Hopkins University

Algebra: Elementary to Advanced - Functions & Applications (Coursera)

After completing this course, students will learn how to successfully apply functions to model different data and real world occurrences. This course reviews the concept of a function and then provide multiple examples of common and uncommon types of functions used in a variety of disciplines. Formulas, domains, ranges, graphs, intercepts, and fundamental behavior are all analyzed using both algebraic and analytic techniques. From this core set of functions, new functions are created by arithmetic operations and function composition.

Aug 31st 2026
3 Weeks
Programming for Everybody (Getting Started with Python) (Coursera) Coursera
University of Michigan

Programming for Everybody (Getting Started with Python) (Coursera)

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.

Sep 7th 2026
5-12 Weeks
Google Sheets (Coursera) Coursera
Google Cloud

Google Sheets (Coursera)

In this course we will introduce you to Google Sheets, Google’s cloud-based spreadsheet software, included with Google Workspace. With Google Sheets, you can create and edit spreadsheets directly in your web browser—no special software is required. Multiple people can work simultaneously, you can see people’s changes as they make them, and every change is saved automatically. You will learn how to open Google Sheets, create a blank spreadsheet, and create a spreadsheet from a template. You will add, import, sort, filter and format your data using Google Sheets and learn how to work across different file types.

Aug 31st 2026
1 Week
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.

Aug 31st 2026
3 Weeks
Introducción a la programación con Python (Coursera) Coursera
Universidad Austral

Introducción a la programación con Python (Coursera)

Este curso te dará ágil acceso a los conceptos básicos de programación utilizando el lenguaje de programación Python en su versión 3.0. Python tiene una sintaxis sencilla y compacta. Esto te permitirá aplicar rápidamente los conceptos aprendidos en los distintos aspectos de tu vida. Una vez que completes este curso, podrás construir pequeños programas que te ayuden en tu trabajo y estarás preparado para tomar cursos de programación más avanzados.

Sep 7th 2026
4 Weeks
Python Programming Essentials (Coursera) Coursera
Rice University

Python Programming Essentials (Coursera)

This course will introduce you to the wonderful world of Python programming! We'll learn about the essential elements of programming and how to construct basic Python programs. We will cover expressions, variables, functions, logic, and conditionals, which are foundational concepts in computer programming. We will also teach you how to use Python modules, which enable you to benefit from the vast array of functionality that is already a part of the Python language. These concepts and skills will help you to begin to think like a computer programmer and to understand how to go about writing Python programs.

Aug 31st 2026
4 Weeks