We may earn an affiliate commission when you visit our partners.
Course image
Susan Davidson

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.

Read more

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.

In this course, you will learn about the pillars of computational thinking, how computer scientists develop and analyze algorithms, and how solutions can be realized on a computer using the Python programming language. By the end of the course, you will be able to develop an algorithm and express it to the computer by writing a simple Python program.

This course will introduce you to people from diverse professions who use computational thinking to solve problems. You will engage with a unique community of analytical thinkers and be encouraged to consider how you can make a positive social impact through computational thinking.

Enroll now

What's inside

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.
Read more
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores computational thinking as foundational knowledge for real-world problem-solving
Emphasizes how computational thinking can positively affect society if applied
Provides learners who are unfamiliar with coding the opportunity to develop foundational knowledge
Covers the fundamental operations of modern computers, which is useful knowledge for learners of all levels
Taught by Susan Davidson, who has extensive experience in computational thinking

Save this course

Save Computational Thinking for Problem Solving to your list so you can find it easily later:
Save

Reviews summary

Computational thinking for programming

learners say this course is highly rated by learners and provides a strong introduction to computational thinking for solving real-world problems. This course emphasizes the four pillars of computational thinking: Decomposition, Pattern recognition, Data representation and abstraction, and Algorithms. It was well received by learners who wanted to enter the computer science field or who were curious about computational thinking. The first three weeks of the course are highly rated and learners say they are clear and easy to follow. The final week features an introduction to Python programming which many learners felt was rushed. Overall, the course is well received and it is suitable for beginners.
Learners say the instructors, Susan Davidson and Chris Murphy, provide clear and engaging explanations throughout the course.
"learners say the instructors...provide clear and engaging explanations"
The course provides real-world examples and case studies to demonstrate how computational thinking can be applied to solve problems.
"The course provides real-world examples and case studies"
This course is appropriate for beginners with little to no background in computer science.
"This course is appropriate for beginners"
This course is divided into four weeks covering different aspects of computational thinking: Decomposition, Pattern recognition, Data representation and abstraction, and Algorithms. The fourth week covers Python programming.
"This course is divided into four weeks"
"The fourth week covers Python programming."
Some learners reported experiencing limited support from instructors and teaching assistants, particularly in the discussion forums.
"Some learners reported experiencing limited support from instructors and teaching assistants"
While the first three weeks of the course are well received, many learners found the Python module in the fourth week to be challenging and rushed.
"many learners found the Python module in the fourth week to be challenging and rushed"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Computational Thinking for Problem Solving with these activities:
Read 'A Mind for Numbers' by Barbara Oakley
Understand how your brain learns and how to use this knowledge to become a more effective learner of computational thinking.
Show steps
  • Obtain and read the book paying particular attention to the sections corresponding to the course
Review Python syntax and semantics
Review the basics of Python syntax and semantics to refresh your memory and strengthen your foundation for the course.
Browse courses on Python
Show steps
  • Read through Python tutorial or documentation
  • Complete online Python exercises or coding challenges
  • Work through simple Python projects
Read 'Algorithms to Live By' by Thomas Cormen
Discover how to approach problems with computational thinking and use algorithms to solve them.
Show steps
  • Obtain and read the book paying particular attention to the sections corresponding to the course
Five other activities
Expand to see all activities and additional details
Show all eight activities
Join a study group with other students in the course
Collaborate with peers to discuss course concepts, solve problems, and support each other's learning.
Browse courses on Computational Thinking
Show steps
  • Find other students in the course who are interested in forming a study group
  • Meet regularly to discuss the course material, work on assignments, and provide support
Solve practice problems on LeetCode or HackerRank
Reinforce your understanding of algorithms and practice writing Python code to solve computational problems.
Browse courses on Algorithms
Show steps
  • Register for a LeetCode or HackerRank account
  • Select problems tagged with topics covered in the course
  • Solve problems and review solutions
Follow tutorials on Coursera or edX
Supplement the course materials with additional tutorials to deepen your understanding of Python and computational thinking concepts.
Browse courses on Python
Show steps
  • Identify tutorials on Coursera or edX related to the topics covered in the course
  • Follow along with the tutorials, completing all exercises and assignments
Create a blog post or video explaining a computational thinking concept
Solidify your understanding of computational thinking by explaining a concept to others.
Browse courses on Computational Thinking
Show steps
  • Choose a computational thinking concept to explain
  • Create a blog post, video, or other content explaining the concept
  • Share your content with others and get their feedback
Develop a Python program to solve a real-world problem
Apply your computational thinking skills to a real-world problem and build a Python program to solve it.
Browse courses on Python
Show steps
  • Identify a real-world problem that can be solved using computational thinking
  • Design and implement a Python program to solve the problem
  • Test and iterate on your program to improve its efficiency and accuracy

Career center

Learners who complete Computational Thinking for Problem Solving will develop knowledge and skills that may be useful to these careers:
Data Analyst
Data Analysts use computational thinking to solve problems related to data. They analyze data to identify patterns and trends, and develop algorithms to solve problems related to data. This course can help you build a foundation in computational thinking and data analysis, which are essential skills for Data Analysts.
Software Engineer
Software Engineers use computational thinking to design, develop, and maintain software applications. They use algorithms to solve problems and develop efficient software solutions. This course can help you build a foundation in computational thinking and software development, which are essential skills for Software Engineers.
Quantitative Analyst
Quantitative Analysts use computational thinking to solve problems related to finance and economics. They use algorithms to develop models for financial analysis and risk management. This course can help you build a foundation in computational thinking and quantitative analysis, which are essential skills for Quantitative Analysts.
Data Scientist
Data Scientists use computational thinking to solve problems related to data. They use algorithms to analyze data and develop models for prediction and decision-making. This course can help you build a foundation in computational thinking and data science, which are essential skills for Data Scientists.
Machine Learning Engineer
Machine Learning Engineers use computational thinking to develop and deploy machine learning models. They use algorithms to train models and optimize their performance. This course can help you build a foundation in computational thinking and machine learning, which are essential skills for Machine Learning Engineers.
Computer Scientist
Computer Scientists use computational thinking to solve problems related to computer science. They use algorithms to design and develop computer systems and software. This course can help you build a foundation in computational thinking and computer science, which are essential skills for Computer Scientists.
Systems Analyst
Systems Analysts use computational thinking to design and implement computer systems. They use algorithms to develop solutions for business problems. This course can help you build a foundation in computational thinking and systems analysis, which are essential skills for Systems Analysts.
Business Analyst
Business Analysts use computational thinking to solve problems related to business. They use algorithms to develop models for business analysis and decision-making. This course can help you build a foundation in computational thinking and business analysis, which are essential skills for Business Analysts.
Project Manager
Project Managers use computational thinking to manage projects. They use algorithms to develop project plans and schedules. This course can help you build a foundation in computational thinking and project management, which are essential skills for Project Managers.
Operations Research Analyst
Operations Research Analysts use computational thinking to solve problems related to operations research. They use algorithms to develop models for optimizing operations. This course can help you build a foundation in computational thinking and operations research, which are essential skills for Operations Research Analysts.
Financial Analyst
Financial Analysts use computational thinking to solve problems related to finance. They use algorithms to develop models for financial analysis and risk management. This course can help you build a foundation in computational thinking and financial analysis, which are essential skills for Financial Analysts.
Market Researcher
Market Researchers use computational thinking to solve problems related to marketing. They use algorithms to develop models for market analysis and forecasting. This course can help you build a foundation in computational thinking and market research, which are essential skills for Market Researchers.
Actuary
Actuaries use computational thinking to solve problems related to insurance and finance. They use algorithms to develop models for insurance pricing and risk management. This course can help you build a foundation in computational thinking and actuarial science, which are essential skills for Actuaries.
Statistician
Statisticians use computational thinking to solve problems related to statistics. They use algorithms to develop models for statistical analysis and inference. This course can help you build a foundation in computational thinking and statistics, which are essential skills for Statisticians.
Economist
Economists use computational thinking to solve problems related to economics. They use algorithms to develop models for economic analysis and forecasting. This course may help you build a foundation in computational thinking and economics, which are essential skills for Economists.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Computational Thinking for Problem Solving.
Provides a comprehensive introduction to deep learning. It great resource for students who want to learn more about the theory and practice of deep learning.
This classic textbook provides a thorough introduction to algorithms, covering a wide range of topics from basic data structures to advanced graph algorithms. It valuable resource for students who want to learn more about the design and analysis of algorithms.
Provides a comprehensive introduction to reinforcement learning. It great resource for students who want to learn more about the theory and practice of reinforcement learning.
Provides a comprehensive introduction to computer vision. It great resource for students who want to learn more about the theory and practice of computer vision.
Provides a comprehensive introduction to natural language processing. It great resource for students who want to learn more about the theory and practice of natural language processing.
Provides a fun and engaging introduction to computational thinking. It great resource for students who want to learn more about the way computers think.
Provides a comprehensive introduction to the Python programming language. It great resource for students who want to learn more about Python and how to use it to solve problems.
This textbook provides a gentle introduction to computer science using the Python programming language. It great resource for students who are new to programming and want to learn the basics of computer science.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser