Simulation, Algorithm Analysis, and Pointers (Coursera)

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!

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 three 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; data collection, analysis, and representation; abstraction; and problem decomposition
Prerequisite C knowledge: Data types, variables, constants; STEM computations; selection; iteration (looping); arrays; strings; and functions
Throughout this course the computational thinking topics you'll explore are: automation, simulation, parallelization, and algorithm analysis. For the programming topics, you'll continue building on your C knowledge by implementing file input and output in your programs and by exploring pointers in more depth.
Module 1: Learn how to read, write, and append to files. Explore automation
Module 2: Discover the benefits of simulation and parallelization
Module 3: Learn how to perform algorithm analysis to quantify algorithm complexity
Module 4: Explore how to use pointers in more depth
Course 4 of 4 in the Computational Thinking with Beginning C Programming Specialization.

Syllabus

WEEK 1: File IO and Automation
WEEK 2: Simulation and Parallelization
WEEK 3: Algorithm Analysis
WEEK 4: Pointers

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Identifying Patient Populations (Coursera) Coursera
University of Colorado System

Identifying Patient Populations (Coursera)

This course teaches you the fundamentals of computational phenotyping, a biomedical informatics method for identifying patient populations. In this course you will learn how different clinical data types perform when trying to identify patients with a particular disease or trait. You will also learn how to program different data manipulations and combinations to increase the complexity and improve the performance of your algorithms.

Oct 12th 2026
5-12 Weeks
Programming in C (Coursera) Coursera
University of Michigan

Programming in C (Coursera)

C remains one of the most popular languages thanks to its portability and efficiency, and laying the groundwork for many programming languages like C++, Java, JavaScript, and Python. In this course, you’ll dive deeper into the syntax of C, learning the functions of the language and how to properly apply them within an algorithm. Identify types, operators, and expressions within C to build recursive functions and examine the role of the C preprocessor in achieving software portability.

Oct 12th 2026
4 Weeks
Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera) Coursera
University of California, San Diego

Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera)

How do gamers cause things to happen when they hit buttons on their controller? How does the computer keep track of gamer's scores? This class teaches the concepts of nested loops, events, and variables. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with nested loops, events, and variables in a way that keeps frustration at a minimum.

Oct 7th 2026
5-12 Weeks
Modeling and Control of Single-Phase Rectifiers and Inverters (Coursera) Coursera
University of Colorado Boulder

Modeling and Control of Single-Phase Rectifiers and Inverters (Coursera)

This is Course #5 in the Modeling and Control of Power Electronics Specialization. The course is focused on modeling and control of grid-tied power electronics. Upon completion of the course, you will be able to understand, analyze, model, and design low-harmonic rectifiers and inverters interfacing dc loads or dc power sources, such as photovoltaic arrays, to the single-phase ac power grid.

Oct 12th 2026
3 Weeks
Introduction to Embedded Systems Software and Development Environments (Coursera) Coursera
University of Colorado Boulder

Introduction to Embedded Systems Software and Development Environments (Coursera)

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine.

Oct 12th 2026
4 Weeks
Computational Thinking with JavaScript 3:Organise & Interact (Coursera) Coursera
University of Glasgow

Computational Thinking with JavaScript 3:Organise & Interact (Coursera)

This third course in the Computational Thinking with JavaScript specialization applies your developing JavaScript skills learned in the first two courses to the world of the web. You will learn how HTML and JavaScript together support the web pages with which we are so familiar, and develop skills so that you can create your own. As well as text presentation, at the heart of HTML, you will learn how to develop interactive, animated graphics, using JavaScript to dynamically add, remove and adjust the HTML objects on the screen.

Oct 12th 2026
4 Weeks
Linux Basics: The Command Line Interface - 6 (Coursera) Coursera
Institut Mines-Telecom,Dartmouth College

Linux Basics: The Command Line Interface - 6 (Coursera)

This course will introduce you to Linux, a powerful operating system used by most professional developers! Why add Linux to your C programming skills? Most people use Linux without knowing it! Whether you use a smartphone, search the web, or use an ATM, each time Linux is involved somewhere in the background. It is the most used operating system for embedded devices and high-performance servers. It is also the most common operating system used by developers to create software applications.

Oct 12th 2026
3 Weeks
Programación en Python (Coursera) Coursera
Universidad de los Andes

Programación en Python (Coursera)

¡Te damos la bienvenida al curso de Programación en Python de la Universidad de los Andes! El propósito de este curso es ofrecerte un ambiente interactivo para que desarrolles tus habilidades de pensamiento computacional, aprendas a programar en el lenguaje Python y te entrenes en la resolución de problemas utilizando un computador. La estrategia pedagógica empleada es el aprendizaje activo basado en casos.

Oct 26th 2026
4 Weeks
C Programming: Language Foundations - 2 (Coursera) Coursera
Institut Mines-Telecom,Dartmouth College

C Programming: Language Foundations - 2 (Coursera)

In this course you will learn to use logical statements and arrays in C. Logical statements are used for decision-making with follow-up instructions, based on conditions you define. Arrays are used to store, keep track of, and organize larger amounts of data. You will furthermore implement some fundamental algorithms to search and sort data.

Oct 12th 2026
3 Weeks
Intermediate Object-Oriented Programming for Unity Games (Coursera) Coursera
University of Colorado System

Intermediate Object-Oriented Programming for Unity Games (Coursera)

This course is the third 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.

Oct 12th 2026
4 Weeks