Computational Thinking for Problem Solving

University of Pennsylvania via Coursera

Go to Course: https://www.coursera.org/learn/computational-thinking-problem-solving

Introduction

### Course Review: Computational Thinking for Problem Solving on Coursera In today's increasingly digital world, the ability to approach problems systematically and creatively is more important than ever. One exciting opportunity to develop this essential skill set is the course **Computational Thinking for Problem Solving** offered on Coursera. Designed for learners from all backgrounds, this course encompasses the foundational principles of computational thinking and offers practical applications using the Python programming language. Whether you're a student, a professional, or simply curious about integrating computational techniques into your problem-solving toolkit, this course is worth considering. #### Course Overview **Computational Thinking for Problem Solving** aims to teach students the systematic approach to problem-solving derived from computer science principles. The course emphasizes that you don’t need to be a computer scientist to adopt a computational mindset. Instead, it encourages participants from diverse fields to engage with concepts that are increasingly applicable across various domains—from business to the humanities. #### Syllabus Breakdown The course is structured into four main modules, each focusing on different aspects of computational thinking. 1. **Pillars of Computational Thinking:** - This module introduces the four key pillars: decomposition, pattern recognition, data representation, and algorithms. Understanding these core concepts is crucial, as they serve as the foundation for solving complex, real-world problems. Participants will gain insights into how these principles can be applied across different fields and situations, making them highly relevant in today's data-driven environment. 2. **Expressing and Analyzing Algorithms:** - Once you understand the pillars, the next step is to develop algorithms—specific, step-by-step instructions to solve a problem. This module covers common algorithms and equips students with strategies for creating their own. By the end, participants will be adept at evaluating the performance of algorithms and selecting the most efficient one for a given scenario, an essential skill in making informed decisions. 3. **Fundamental Operations of a Modern Computer:** - For those new to programming, understanding how computers execute instructions and manipulate data is vital. This module demystifies the mechanics of modern computers and introduces pseudocode, a simplified way to express algorithms that prepares students to transition into coding. 4. **Applied Computational Thinking Using Python:** - The final module provides a hands-on introduction to Python, one of the most accessible and popular programming languages. No prior programming experience is necessary. Participants will learn to translate their algorithms into executable Python code, enabling them to solve problems programmatically. The course culminates in students being able to write simple Python programs, empowering them to apply their computational thinking skills in a practical context. #### Personal Experience and Recommendation Having completed this course, I can wholeheartedly recommend it to anyone interested in enhancing their problem-solving skills through computational thinking. The instructors present the material in an engaging manner, making complex concepts more digestible. The mix of theory and practical application is particularly beneficial—students are not left in abstraction but are guided through real-world examples that demonstrate the power of computational thinking. Additionally, the course's delivery format is convenient for busy learners, with video lectures that can be accessed anytime and interactive quizzes that reinforce understanding. The inclusion of Python programming further enhances the course's appeal, offering concrete tools to transform theoretical knowledge into actionable skills. In conclusion, if you're looking to cultivate a systematic approach to problem-solving and eager to add a significant skill to your resume, **Computational Thinking for Problem Solving** is an excellent choice. Whether you aspire to improve your analytical capabilities or simply wish to understand the foundational concepts that drive tech innovation today, this course equips you with the knowledge and confidence you need to thrive in the modern world.

Syllabus

Pillars of Computational Thinking

Computational thinking is an approach to solving problems using concepts and ideas from computer science, and expressing solutions to those problems so that they can be run on a computer. As computing becomes more and more prevalent in all aspects of modern society -- not just in software development and engineering, but in business, the humanities, and even everyday life -- understanding how to use computational thinking to solve real-world problems is a key skill in the 21st century. Computational thinking is built on four pillars: decomposition, pattern recognition, data representation and abstraction, and algorithms. This module introduces you to the four pillars of computational thinking and shows how they can be applied as part of the problem solving process.

Expressing and Analyzing Algorithms

When we use computational thinking to solve a problem, what we’re really doing is developing an algorithm: a step-by-step series of instructions. Whether it’s a small task like scheduling meetings, or a large task like mapping the planet, the ability to develop and describe algorithms is crucial to the problem-solving process based on computational thinking. This module will introduce you to some common algorithms, as well as some general approaches to developing algorithms yourself. These approaches will be useful when you're looking not just for any answer to a problem, but the best answer. After completing this module, you will be able to evaluate an algorithm and analyze how its performance is affected by the size of the input so that you can choose the best algorithm for the problem you’re trying to solve.

Fundamental Operations of a Modern Computer

Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data. This module describes the inner workings of a modern computer and its fundamental operations. Then it introduces you to a way of expressing algorithms known as pseudocode, which will help you implement your solution using a programming language.

Applied Computational Thinking Using Python

Writing a program is the last step of the computational thinking process. It’s the act of expressing an algorithm using a syntax that the computer can understand. This module introduces you to the Python programming language and its core features. Even if you have never written a program before -- or never even considered it -- after completing this module, you will be able to write simple Python programs that allow you to express your algorithms to a computer as part of a problem-solving process based on computational thinking.

Overview

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 so

Skills

Simple Algorithm Python Programming Problem Solving Computation

Reviews

Well taught with good examples and exercises that require thinking but still approachable. Very well laid out and taught. Definitely sparked an interest to go learn more.

The course is very well-designed and it helped me develop understand how to apply computational thinking in solving various types of problems as well as acquire basic skills of programming in Python.

Useful course taught at an adequate rate. I recommend it for people who are interested in learning the basics of computational thinking, i.e. a systematic approach to problem-solving.

Great course - the non-programming parts (making flow charts etc) were actually more difficult than the programming (simple Python programming - my first time programming in python)

Very comprehensive course. As a chemist who is interested in doing a course in programming I was quite uncertain if I'd be able to pick it up however this course has helped me understand the basics.