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

Rebo-binario (Coursera) Coursera
Universidad Autónoma Metropolitana

Rebo-binario (Coursera)

Te damos la bienvenida al curso en línea Rebo-binario, un curso diseñado para incentivar el desarrollo de habilidades mentales relacionados al pensamiento computacional y creativo para la resolución de problemas y la reflexión crítica. Para lograr este cometido echamos mano de estrategias del pensamiento computacional y la creatividad como saberes para el uso y apropiación de herramientas digitales y tecnologías informáticas.

Aug 3rd 2026
3 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.

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

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

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

Jul 20th 2026
5-12 Weeks
Programação para todos (Conceitos básicos de Python) (Coursera) Coursera
University of Michigan

Programação para todos (Conceitos básicos de Python) (Coursera)

Este curso tem como objetivo ensinar a todos os conceitos básicos de programação de computadores usando Python. Abordamos o básico de como criar um programa a partir de uma série de instruções simples em Python. O curso não tem pré-requisitos e evita tudo, exceto a matemática mais simples. Qualquer pessoa com experiência moderada em computadores deve ser capaz de dominar os materiais deste curso. Este curso abordará os capítulos 1 ao 5 do livro “Python para Todos”.

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

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

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

Jul 27th 2026
4 Weeks
Programming with Scratch (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Programming with Scratch (Coursera)

Learning coding is not only about understanding the programming language being used, but also developing important computational thinking skills, which are useful for problem solving across many disciplinary areas. In this course, students will learn basic programming skills by creating interactive storybooks, animations, and games with Scratch, which is a block-based visual programming language for anyone new to coding.

Aug 3rd 2026
5-12 Weeks