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

C++ Object Basics: Functions, Recursion, and Objects (Coursera) Coursera
Codio

C++ Object Basics: Functions, Recursion, and Objects (Coursera)

Code and run your first C++ program in minutes without installing anything! This course is designed for learners with limited coding experience, providing a solid foundation of not just C++, 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.

Jun 15th 2026
4 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.

Jun 22nd 2026
4 Weeks
Computational Thinking with JavaScript 4: Create & Deploy (Coursera) Coursera
University of Glasgow

Computational Thinking with JavaScript 4: Create & Deploy (Coursera)

This is the fourth and final course in the Computational Thinking with JavaScript specialisation. It is an added-value unit and entirely builds on what you will have learned in the first three units and enables you to synthesise and develop that knowledge. The course supports you to develop your own larger application, using a combination of the technologies you have seen already, including HTML, JavaScript and various libraries, while also encouraging you to reach out to incorporate new libraries.

Jun 22nd 2026
3 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.

Jun 15th 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.

Jun 22nd 2026
3 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.

Jun 22nd 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.

Jun 15th 2026
4 Weeks
Python Object Basics: Functions, Recursion, and Objects (Coursera) Coursera
Codio

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

Code and run your first python program in minutes without installing anything! This course is designed for learners with limited coding experience, providing a solid foundation of not just python, 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.

Jun 22nd 2026
4 Weeks
Computational Thinking with JavaScript 2: Model & Analyse (Coursera) Coursera
University of Glasgow

Computational Thinking with JavaScript 2: Model & Analyse (Coursera)

This is the second course in a sequence of four courses that develops essential 21st century computational thinking (CT) skills using the popular JavaScript programming language. At the end of this second course you will: know a framework for CT to help you model the real world using abstract data structures; have developing CT skills so that you can perform common data analytics tasks; be able to read and write programs in JavaScript that involve processing, analysing and visualizing data, using a specialised library; and post your creations on the web to share your code with others.

Jun 22nd 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.

Jun 22nd 2026
4 Weeks
More C# Programming and Unity (Coursera) Coursera
University of Colorado System

More C# Programming and Unity (Coursera)

This course is the second course in the specialization about learning how to develop video games using the C# programming language and the Unity game engine on Windows or Mac. Why use C# and Unity instead of some other language and game engine? Well, C# is a really good language for learning how to program and then programming professionally. Also, the Unity game engine is very popular with indie game developers; Unity games were downloaded 16,000,000,000 times in 2016! Finally, C# is one of the programming languages you can use in the Unity environment.

Jun 22nd 2026
4 Weeks