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

Computational Thinking for K-12 Educators: Nested If Statements and Compound Conditionals (Coursera) Coursera
University of California, San Diego

Computational Thinking for K-12 Educators: Nested If Statements and Compound Conditionals (Coursera)

How could you program a complex "choose your own adventure" game? How can your soccer game determine goals, balls out of bounds, and corner kicks? You'll learn to do both of these in this course! This class teaches the concepts of nested if/else statements and compound Boolean conditional expressions.

Jun 17th 2026
5-12 Weeks
Computational Thinking for K-12 Educators Capstone (Coursera) Coursera
University of California, San Diego

Computational Thinking for K-12 Educators Capstone (Coursera)

In this capstone project course, you will learn to support your students in successfully completing the Advanced Placement Principles Create Task -- however this task can be useful for any course as a culminating, student-designed final programming project. You will learn to interpret and practice applying to real sample student work the Create Task rubric and have the option to modify it for your own setting. You'll prepare resources to help students through the challenges that come with doing an open-ended project that still needs to meet certain specifications.

Jun 17th 2026
4 Weeks
Current-Mode Control (Coursera) Coursera
University of Colorado Boulder

Current-Mode Control (Coursera)

This is Course #4 in the Modeling and Control of Power Electronics course sequence. The course is focused on current-mode control techniques, which are very frequently applied in practical realizations of switched-mode. Practical advantages of peak current mode control are discussed, including built-in overcurrent protection, simpler and more robust dynamic responses, as well as abilities to ensure current sharing in parallel connected converter modules.

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

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

Jun 22nd 2026
3 Weeks
人群与网络 (Coursera) Coursera
Peking University

人群与网络 (Coursera)

本课程是北京大学开设的一门在线跨学科选修课程,主要面向信息技术、社会学和经济学等专业的本科生。课程内容涉及用计算思维的方法讨论社会学和经济学的一些经典问题。学习运用计算思维分析社会学、经济学问题的方法,加深对某些生活现象的理解,体会计算与社会科学的互动。

Jun 15th 2026
5-12 Weeks
C Programming: Advanced Data Types - 5 (Coursera) Coursera
Institut Mines-Telecom,Dartmouth College

C Programming: Advanced Data Types - 5 (Coursera)

In this course you will define your own data types in C, and use the newly created types to more efficiently store and process your data. Many programming languages provide a number of built-in data types to store things such as integers, decimals, and characters in variables, but what if you wanted to store more complex data?

Jun 22nd 2026
3 Weeks
C Programming: Getting Started - 1 (Coursera) Coursera
Institut Mines-Telecom,Dartmouth College

C Programming: Getting Started - 1 (Coursera)

Start learning one of the most powerful and widely used programming languages: C. Within moments you will be coding hands-on in a browser tool that will provide instant feedback on your code. The C programming language is one of the most stable and popular programming languages in the world. It helps to power your smartphone, your car's navigation system, robots, drones, trains, and almost all electronic devices. C is used in any circumstances where speed and flexibility are important, such as in embedded systems or high-performance computing. In this course, you will get started with C and learn how to write your first programs, how to make simple computations and print the results to the screen, how to store values in variables and how to repeat instructions using loops.

Jun 22nd 2026
4 Weeks
Computational Thinking for Problem Solving (Coursera) Coursera
University of Pennsylvania

Computational Thinking for Problem Solving (Coursera)

Computational thinking is the process of approaching a problem in a systematic manner and creating and expressing a solution such that it can be carried out by a computer. But you don't need to be a computer scientist to think like a computer scientist! In fact, we encourage students from any field of study to take this course. Many quantitative and data-centric problems can be solved using computational thinking and an understanding of computational thinking will give you a foundation for solving problems that have real-world, social impact.

Jun 22nd 2026
4 Weeks
Building Objects in C (Coursera) Coursera
University of Michigan

Building Objects in C (Coursera)

In this course, learn how Python was built in C and, by extension, languages like Java and JavaScript. Review object-oriented programming syntax from several languages and use your knowledge of C to build a library that integrates high-level data structures like strings, lists, and dictionaries. Learn how to make your program run as efficiently as possible by covering memory allocation, de-allocation, and object lifecycle.

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

Jun 22nd 2026
4 Weeks