- Level Foundation
- Duration 11 hours
- Course by University of Colorado System
-
Offered by
About
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! 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 depthModules
Getting Started
3
Videos
- Course Introduction
- Navigating a Coursera Course
- Meet the Instructor (optional)
File IO
5
Videos
- Lesson Introduction
- Why Files?
- Reading a File
- Writing a File
- Appending to a File
3
Readings
- Visual Studio and Xcode File Locations
- Exercise 1: File Caesar Cipher
- File IO Lecture Code
Automation
- I, Robot
8
Videos
- Lesson Introduction
- What is Automation?
- Turning Up the Heat
- Who You Gonna Call?
- Who's Hungry?
- CNC Machines
- Robots
- Driving
3
Readings
- Automation Exercise: Automating Basic Hygiene
- Automation Topic Understanding Check
- I, Robot Solution
Simulation
6
Videos
- Lesson Introduction
- What is Simulation?
- Simulating Computers with Computers
- Training
- Real-World Systems
- Fitness
1
Readings
- Simulation Topic Understanding Check
Parallelization
2
Assignment
- Simulation and Parallelization Practice Quiz
- Simulation and Parallelization Graded Quiz
8
Videos
- Lesson Introduction
- What is Parallelization?
- Sandwiches in Parallel
- Doing Math in Parallel
- Building a Video Game in Parallel
- Pipelines
- Parallel Processing
- Parallelization Activity
1
Readings
- Parallelization Topic Understanding Check
Algorithm Analysis
2
Assignment
- Algorithm Analysis Practice Quiz
- Algorithm Analysis Graded Quiz
11
Videos
- Lesson Introduction
- What is Algorithm Analysis?
- Introduction to Big-O
- Big-O Examples
- Dynamic Array Operations
- Bubble Sort
- Selection Sort
- Insertion Sort
- Recursion
- Recursive Binary Search
- Merge Sort
1
Readings
- Algorithm Analysis Lecture and Reading Code
Pointers
- Walking the Walk
7
Videos
- Lesson Introduction
- Pointer Basics
- Changing the Pointed to Value
- Walking an Array with Pointers
- Dynamic Memory Allocation
- Getting More Memory
- Pointers to Structs
2
Readings
- Pointers Lecture Code
- Walking the Walk Solution
Finishing Up
1
Videos
- Finishing Up
Auto Summary
"Simulation, Algorithm Analysis, and Pointers" is an engaging course designed for learners with a foundation in computational thinking and C programming. It is the final installment in a comprehensive specialization aimed at enhancing problem-solving skills through computational methods and programming. This course delves into advanced topics such as automation, simulation, parallelization, and algorithm analysis. Additionally, it extends your C programming skills by teaching file input and output operations and providing a deeper understanding of pointers. Key highlights of this course include: - **Module 1**: Master file operations including reading, writing, and appending, alongside exploring automation techniques. - **Module 2**: Understand the advantages of simulation and parallel computing. - **Module 3**: Learn to analyze algorithms to determine their complexity and efficiency. - **Module 4**: Gain an in-depth knowledge of pointers for more advanced programming tasks. The course spans approximately 660 minutes and is offered through Coursera. Subscription options include Starter and Professional plans, catering to both individual and professional learning needs. This foundational-level course is perfect for those looking to solidify their computational thinking and C programming skills, provided they have completed the prerequisite courses in the specialization or possess equivalent experience.

Dr. Tim "Dr. T" Chamillard