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

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.

Oct 19th 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.

Oct 12th 2026
4 Weeks
Software Design as an Abstraction (Coursera) Coursera
University of Colorado System

Software Design as an Abstraction (Coursera)

The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.

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

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

Oct 12th 2026
3 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.

Oct 12th 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.

Oct 19th 2026
4 Weeks
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.

Oct 19th 2026
4 Weeks
Python Functions, Files, and Dictionaries (Coursera) Coursera
University of Michigan

Python Functions, Files, and Dictionaries (Coursera)

This course introduces the dictionary data structure and user-defined functions. You’ll learn about local and global variables, optional and keyword parameter-passing, named functions and lambda expressions. You’ll also learn about Python’s sorted function and how to control the order in which it sorts by passing in another function as an input.

Oct 19th 2026
5-12 Weeks
Functions, Methods, and Interfaces in Go (Coursera) Coursera
University of California, Irvine

Functions, Methods, and Interfaces in Go (Coursera)

Continue your exploration of the Go programming language as you learn about functions, methods, and interfaces. Topics include the implementation of functions, function types, object-orientation in Go, methods, and class instantiation. As with the first course in this series, you’ll have an opportunity to create your own Go applications so you can practice what you’re learning.

Oct 12th 2026
4 Weeks