Pilot - U1L02 - The Problem Solving Process

Please leave any feedback, thoughts, or resources for the lesson here. As a reminder, good feedback has the following elements:

  • description of your school and classroom context
  • details on what went well when teaching this lesson
  • details on what didn’t go well when teaching this lesson
  • a description of the changes you would recommend to improve the lesson (including formative assessment opportunities you added to the lesson)
  • details on the types of deviations you made from the lesson

For more details on what good feedback looks like, check out the feedback guide !

Forgot to set the context in my Lesson 1 post.

Class of 35 students with enough desktops for pair programming. Students also have 1:1 Chromebooks that they use throughout the day. This is a semester long elective class.

Lesson 2 was a good walk through of the Problem Solving Process. I second my own previous suggestion (can you do that?) that this be placed before the foil boat design challenge so that students can learn and discuss the problem solving process before putting it into action. The activity guide could then more closely match the problem solving process.

Student were antsy toward the end of this lesson. It took the whole 59 minute period to work through the discussions, activity guide, and listing the student suggested strategies. To be frank, I think the kids were getting tired of the cycle by the end of the lesson, but they were good sports about it.

My only real deviation from the plan was instead of using posters, I made separate google docs for each part of the problem solving process and listed student suggestions on them. I then shared those strategies on my Google Classroom page. I tend to lose anything in paper form.

Hi @krisaturner

Thanks so much for sharing how things went in your class! I’m interested to hear more about students getting tired of the cycle by the end of class. Any ideas on what might help with this in the future?

I used Padlet for the poster section of this lesson. Similar approach to the Google Docs. Docs might even be a better choice since it records who said what (just in case!)

:slight_smile:

Thanks for updating everyone on how it went @edavis . Its good to hear more about your experiences.

I don’t think that I would change the order of lessons one and two. Having made the boats with the guidance of the activity sheet first, I was able to refer back to the activity as we discussed the 4 steps in the problem solving process. This forced them to reflect on the previous activity and apply what they had experienced to this new set of guidelines - which is what I want them to do - apply the process to any problem they need to solve. I took a couple of minutes to show an example of solving a multi-step Algebra problem, and how these steps applied even to this. They had been using the process in their math class all along - also in their Language Arts class writing assignments. These were a couple of real life areas they could relate to. I am including a link to the Google slide presentation I used for this lesson. This lesson took over 2 hours to complete. One 90 minute class that stopped before we got to having students think of a problem they were good at solving. The second day was a 40 minute class where we worked on completing the process for problems they are good at solving and one that they would like to be better at solving. Students keep their work in their notebook and reflect on the work for the day as homework.

Hey Debbie,

Glad to hear things went well and that you’re seeing connections to what students are learning in other classes. I noticed you forgot to post that link to your slides if you still wanted to share that with the group. I’d be interested to see what you made.

Thanks as always for sharing! GT

FYI At my school we refer to students as scholars. I am going to use that term, since by now I have to consciously think about using the word student.

This week I worked on Lesson 2 and started Lesson 3.

The scholars had trouble brainstorming problems they had, even when I gave them several examples. I was able to write a short list on the board, but overall I don’t think they understood. They did understand how to evaluate their Aluminum Boat Activity through the lens of the Problem Solving Process, but their answers ranged from very specific and detailed to very vague. The next day I had all the scholars copy the best response so they could practice writing an ‘A’ answer. A lot of my scholars have a limited English vocabulary, and that is reflected in their writing. The class then continued on to the second page, which they completed. They are generally used to writing as little as possible. Some of my SpEd scholars’ handwriting is illegible. I am working with their SpEd teacher to arrive at a grade.

I will revisit the Problem Solving Process several more times.

This week I dealt with scholars who do not normally bring supplies to class, and who don’t normally do much work. I posted the supply list on the wall to remind scholars who would otherwise claim they didn’t know they had to bring anything. This afternoon, during class, several scholars asked to go to the library to buy spiral notebooks. The school has a color poster-maker and laminator which is much appreciated. I am making posters for the room.

I also made a seating chart to create heterogenous groups, which took some time as I reviewed their fall semester grades. Each group now has an ‘A’ scholar, a Special Ed scholar, and two from the middle. I was surprised that it worked out, given 36 random individuals.

I am pushing forward at what I think is a reasonable pace, but I have scholars who are used to not putting in a whole lot of effort, and try to make up the work before progress reports or report cards. I am always watching the clock, and how much work is getting done, but I am not going to slow to a snail’s pace, which would happen if I let it.

I took a look at Lesson 3. I knew the scholars would not understand the point of the word search, and will insist on finishing it, even when I tell them to put down their pencils. Instead, I discussed the fact that when they complete a task, even a basic one, they don’t think about it in terms of a series of steps. A computer does, however. I assigned the groups the task of listing at least 10 – 15 detailed steps required to eat an Oreo cookie, starting them off. I will have cookies on Monday to have them compare what they wrote to what is required. THEN, 5 minutes before the end of the period, I passed out the word searches, which only a few were able to complete. On Monday, they will come up with a system for completing a word search more efficiently, and continue with Lesson 3.

I am very happy with how this week went.

Sorry about the missing link. I added it to this section of the forum. Would love feedback.

@sfollansbee08 Thanks for sharing so much about your classes experience. I like the use of the word scholar for students. It sounds like many of the challenges you are running into I’m sure are shared by other teachers. Its great that you shared some strategies you used to help bring the material to a more accessible place for your students. I’m interested to see how the word search example went yesterday.

I know this should be under Lesson 3, but this is a follow-up to my long post. Background: The first two weeks the class tested how serious I am. I could get them silent, but scholars did not bring any supplies (or claimed not to have them). So I told them that quizzes would be open-note, but done individually. I usually don’t do that, but this is a lot of totally new information presented rather quickly. It’s amazing how many scholars have a planner and notebook now. I always post the agenda, but now I started having the class copy definitions and other things they need to know, and refer to, as their do-now. I hope to get them to where the do-now can be a short activity or response to a discussion question. They are not there yet.

I did the word search activity Friday. I gave it out at the end of the period. Almost everyone either finished it or almost did in 5 minutes. I had given them several process / strategies to try, but the response was that they just looked for the words, ignoring the directions. The words search was too easy.

Monday I made a word search for yesterday with more words. I put several strategies on the board, and told them they must try one, and write down which one their table selected. With a longer word bank, the groups saw the necessity of trying strategies. Two groups wrote “working with their table group” as their strategy. Today I am going to explain why they get credit for their response, but it does not meet the definition of a process.

My follow-up activity, Friday and Monday, to help teach process was to ask the class to write down the steps involved in eating an Oreo with a picture on the board, versus having a cookie in hand was VERY successful. Some of the steps written were very clever, like “inspect the cookie” or writing “chew” 25 times to indicate 25 steps. Much better than the first time, which was the point.

The Oreo activity sounds fun, glad to hear it went so well for you! Would you mind sharing the additional word search you created, I’m sure others would find it useful.

Thank you for the kind comment on the Oreo activity.

This is an excellent free online Word Search maker that you can use any time.

I used the following words: administrator, application, bit, byte, code, computer, define, disc, kilobyte, language, monitor, platform, process, program, reflect, sequence, try, webmaster

http://puzzlemaker.discoveryeducation.com/WordSearchSetupForm.asp

This is being taught to a semester 8th grade class with 56 minute periods. I just started teaching this on Wednesday as that was when our semester started. I’m late to the party with my posts, but I am grateful for the forum, as I’ve been able to read your posts before I teach the lesson. With Lesson 2 I ended doing alot of it with them. They just were not grasping how to define a problem. They were content with just listing a topic like, Time Management, as their definition of the problem. We ended upgoing through multiple examples not related to to the boats or anything. One example that helped my students was going through process with the problem being “I’m a bad cook.” It was easy to define, prepare, try, and reflect. They started to catch on after that. Doing the word search, and birthday party activities today .We will see how it goes.

Glad to hear the forum’s proving helpful Jay and also to hear that students are starting to grasp the problem solving process. If you have a chance let us know what finally makes the connections for your students. Especially if you’re finding you need to supplement it’s always valuable to hear how.

Good luck in Lesson 3! GT

Class of 20 students, 9 girls, 11 boys, 4 IEP, 70% FARM. 43 minute periods every other day. U1L2, took almost 2 days. The first day we talked about different problems. With them making a list at the beginning, I feel it was helpful for them to make a connection when we were going over the process. Due to time, I typed the list of problems on the screen instead of the posters and discussed a few of them using the problem solving process. The 2nd day we finished up the activity sheet and began the first activity for lesson 3. Time is the problem here. This class really needs to be held daily if I only see them for 42 minutes. And if they’re absent, they might only have my class once during the week. Tomorrow we will finish the word search and birthday party activities.

With my classes as 80 minutes, I had a chance to introduce the Problem Solving Process and brought up the diagram on the board at the end of my last class. We briefly talked through it and I asked them to keep it in mind the next time they solved a problem (big or small) and that we would reflect.

U1L2 - The Problem Solving Process This lesson went well, they were still in the “first days” mode and figuring out the structure of the class. They worked on the reflection problems on the activity guide individually, then worked in pairs to create a presentation for the “problem to solve”. I’m a nomad and I didn’t have poster paper and couldn’t leave them on the walls so I assigned the “presentations” through shared Google Slides and got some really creative designs (I also shared the Problem Solving Process graphic with them). We had a huge range of “problems to solve” from eating a healthy breakfast to solving world hunger. Students were engaged although they were seated. The only drawback was the lack of movement due to my changing of the lesson, other than that the lesson was a nice reflection opportunity from the day before. With 80 minute blocks I jumped into the next lesson by handing out the word search packets (followed up in another post). Again stayed close to the script, will try to as much as possible with only adding activities if needed.

Unit 1 - Lesson 2:

Slideshow for presentation

Reflection: I felt that there was not a lot of substantiveness to this lesson and a whole period of “what-ifs” was hard for my students. A problem that they are already good at didn’t allow a lot of reflection on their part. Since they already had the “define, try and prepare” part of their successes it was hard to pinpoint their reflections when they had actually already achieved in that endeavor.

Modification that I made: We needed to being “doing” something with this info. Most students were already able to define some type of problem solving process. Whether it was an engineering model or the hypothesis scientific model, they generally had a previous background. The students were asked to create their own representation of the problem solving process in a tool of their choice on the computer. I did initiate the stipulation that it had to indicate the cyclical nature of the process. Some of the creations I saw were: “Paint”, Google Drawings or Slides, Microsoft Publisher or Powerpoint and some chose paper and colored pencils. I left this really loose-ended as I no predescribed notions about how they had to represent their understanding of the process. I think this added internalization of what their processes meant to them.

Related Topics

Topic Replies Views Activity
Unit and Lesson Discussion 29 5052 June 8, 2017
Unit and Lesson Discussion 5 1437 June 12, 2017
Unit and Lesson Discussion 22 5436 June 8, 2017
Unit and Lesson Discussion 27 5558 June 8, 2017
Unit and Lesson Discussion 5 1801 June 12, 2017

How to think like a programmer — lessons in problem solving

How to think like a programmer — lessons in problem solving

By Richard Reis

If you’re interested in programming, you may well have seen this quote before:

“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs

You probably also wondered what does it mean, exactly, to think like a programmer? And how do you do it??

Essentially, it’s all about a more effective way for problem solving .

In this post, my goal is to teach you that way.

By the end of it, you’ll know exactly what steps to take to be a better problem-solver.

Why is this important?

Problem solving is the meta-skill.

We all have problems. Big and small. How we deal with them is sometimes, well…pretty random.

Unless you have a system, this is probably how you “solve” problems (which is what I did when I started coding):

  • Try a solution.
  • If that doesn’t work, try another one.
  • If that doesn’t work, repeat step 2 until you luck out.

Look, sometimes you luck out. But that is the worst way to solve problems! And it’s a huge, huge waste of time.

The best way involves a) having a framework and b) practicing it.

“Almost all employers prioritize problem-solving skills first. Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design. Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.” — Hacker Rank ( 2018 Developer Skills Report )

Have a framework

To find the right framework, I followed the advice in Tim Ferriss’ book on learning, “ The 4-Hour Chef ”.

It led me to interview two really impressive people: C. Jordan Ball (ranked 1st or 2nd out of 65,000+ users on Coderbyte ), and V. Anton Spraul (author of the book “ Think Like a Programmer: An Introduction to Creative Problem Solving ”).

I asked them the same questions, and guess what? Their answers were pretty similar!

Soon, you too will know them.

Sidenote: this doesn’t mean they did everything the same way. Everyone is different. You’ll be different. But if you start with principles we all agree are good, you’ll get a lot further a lot quicker.

“The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems.” — V. Anton Spraul

So, what should you do when you encounter a new problem?

Here are the steps:

1. Understand

Know exactly what is being asked. Most hard problems are hard because you don’t understand them (hence why this is the first step).

How to know when you understand a problem? When you can explain it in plain English.

Do you remember being stuck on a problem, you start explaining it, and you instantly see holes in the logic you didn’t see before?

Most programmers know this feeling.

This is why you should write down your problem, doodle a diagram, or tell someone else about it (or thing… some people use a rubber duck ).

“If you can’t explain something in simple terms, you don’t understand it.” — Richard Feynman

Don’t dive right into solving without a plan (and somehow hope you can muddle your way through). Plan your solution!

Nothing can help you if you can’t write down the exact steps.

In programming, this means don’t start hacking straight away. Give your brain time to analyze the problem and process the information.

To get a good plan, answer this question:

“Given input X, what are the steps necessary to return output Y?”

Sidenote: Programmers have a great tool to help them with this… Comments!

Pay attention. This is the most important step of all.

Do not try to solve one big problem. You will cry.

Instead, break it into sub-problems. These sub-problems are much easier to solve.

Then, solve each sub-problem one by one. Begin with the simplest. Simplest means you know the answer (or are closer to that answer).

After that, simplest means this sub-problem being solved doesn’t depend on others being solved.

Once you solved every sub-problem, connect the dots.

Connecting all your “sub-solutions” will give you the solution to the original problem. Congratulations!

This technique is a cornerstone of problem-solving. Remember it (read this step again, if you must).

“If I could teach every beginning programmer one problem-solving skill, it would be the ‘reduce the problem technique.’ For example, suppose you’re a new programmer and you’re asked to write a program that reads ten numbers and figures out which number is the third highest. For a brand-new programmer, that can be a tough assignment, even though it only requires basic programming syntax. If you’re stuck, you should reduce the problem to something simpler. Instead of the third-highest number, what about finding the highest overall? Still too tough? What about finding the largest of just three numbers? Or the larger of two? Reduce the problem to the point where you know how to solve it and write the solution. Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started.” — V. Anton Spraul

By now, you’re probably sitting there thinking “Hey Richard... That’s cool and all, but what if I’m stuck and can’t even solve a sub-problem??”

First off, take a deep breath. Second, that’s fair.

Don’t worry though, friend. This happens to everyone!

The difference is the best programmers/problem-solvers are more curious about bugs/errors than irritated.

In fact, here are three things to try when facing a whammy:

  • Debug: Go step by step through your solution trying to find where you went wrong. Programmers call this debugging (in fact, this is all a debugger does).
“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer
  • Reassess: Take a step back. Look at the problem from another perspective. Is there anything that can be abstracted to a more general approach?
“Sometimes we get so lost in the details of a problem that we overlook general principles that would solve the problem at a more general level. […] The classic example of this, of course, is the summation of a long list of consecutive integers, 1 + 2 + 3 + … + n, which a very young Gauss quickly recognized was simply n(n+1)/2, thus avoiding the effort of having to do the addition.” — C. Jordan Ball

Sidenote: Another way of reassessing is starting anew. Delete everything and begin again with fresh eyes. I’m serious. You’ll be dumbfounded at how effective this is.

  • Research: Ahh, good ol’ Google. You read that right. No matter what problem you have, someone has probably solved it. Find that person/ solution. In fact, do this even if you solved the problem! (You can learn a lot from other people’s solutions).

Caveat: Don’t look for a solution to the big problem. Only look for solutions to sub-problems. Why? Because unless you struggle (even a little bit), you won’t learn anything. If you don’t learn anything, you wasted your time.

Don’t expect to be great after just one week. If you want to be a good problem-solver, solve a lot of problems!

Practice. Practice. Practice. It’ll only be a matter of time before you recognize that “this problem could easily be solved with .”

How to practice? There are options out the wazoo!

Chess puzzles, math problems, Sudoku, Go, Monopoly, video-games, cryptokitties, bla… bla… bla….

In fact, a common pattern amongst successful people is their habit of practicing “micro problem-solving.” For example, Peter Thiel plays chess, and Elon Musk plays video-games.

“Byron Reeves said ‘If you want to see what business leadership may look like in three to five years, look at what’s happening in online games.’ Fast-forward to today. Elon [Musk], Reid [Hoffman], Mark Zuckerberg and many others say that games have been foundational to their success in building their companies.” — Mary Meeker ( 2017 internet trends report )

Does this mean you should just play video-games? Not at all.

But what are video-games all about? That’s right, problem-solving!

So, what you should do is find an outlet to practice. Something that allows you to solve many micro-problems (ideally, something you enjoy).

For example, I enjoy coding challenges. Every day, I try to solve at least one challenge (usually on Coderbyte ).

Like I said, all problems share similar patterns.

That’s all folks!

Now, you know better what it means to “think like a programmer.”

You also know that problem-solving is an incredible skill to cultivate (the meta-skill).

As if that wasn’t enough, notice how you also know what to do to practice your problem-solving skills!

Phew… Pretty cool right?

Finally, I wish you encounter many problems.

You read that right. At least now you know how to solve them! (also, you’ll learn that with every solution, you improve).

“Just when you think you’ve successfully navigated one obstacle, another emerges. But that’s what keeps life interesting.[…] Life is a process of breaking through these impediments — a series of fortified lines that we must break through. Each time, you’ll learn something. Each time, you’ll develop strength, wisdom, and perspective. Each time, a little more of the competition falls away. Until all that is left is you: the best version of you.” — Ryan Holiday ( The Obstacle is the Way )

Now, go solve some problems!

And best of luck ?

Special thanks to C. Jordan Ball and V. Anton Spraul . All the good advice here came from them.

Thanks for reading! If you enjoyed it, test how many times can you hit in 5 seconds. It’s great cardio for your fingers AND will help other people see the story.

If you read this far, thank the author to show them you care. Say Thanks

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Browse Course Material

Course info.

  • Prof. John Guttag

Departments

  • Electrical Engineering and Computer Science

As Taught In

  • Computer Science

Introduction to Computer Science and Programming

Lecture 3: problem solving.

  • Download video
  • Download transcript

facebook

You are leaving MIT OpenCourseWare

problem solving and computing lesson 2

3.2 Computer Science Fundamentals

Wrap your mind around computational thinking, from everyday tasks to algorithms.

  • Decision Trees

Computers use decision trees to turn one big decision into many simple decisions.

Fewer Questions

Minimize the amount of branches in a decision tree.

  • Binary Search

Halving the number of options also works when searching an ordered list.

End of Unit 1

Complete all lessons above to reach this milestone.

0 of 3 lessons complete

  • Parallelism

Solve problems faster by doing a few things at the same time.

Make processes more efficient with pipelining.

Resource Tradeoffs

Computer scientists deal with tradeoffs all the time.

Resource Allocation

Optimize how resources are used.

End of Unit 2

0 of 4 lessons complete

The Bridges of Königsberg

Search for a computational solution to this puzzle.

Brute Force

Apply “brute force" to solving a computational problem.

Thinking with Graphs

Visualize problems using graphs.

Eulerian Paths

Discover a clever approach to solving the Bridges of Königsberg.

End of Unit 3

Computer systems and people need to be able to reliably find and access people and resources.

Abstraction

Mayor Jing uses abstraction—a critical tool in computer science—to help her run City Hall.

Abstractions have interfaces that explain what they can and cannot do.

End of Unit 4

Algorithmic Thinking

Algorithms are step-by-step processes for achieving an outcome.

Representing Games and Puzzles

Graphs can help us plan solutions to complex problems, like this classic river-crossing puzzle.

Graph Search

Some of the most fundamental algorithms on graphs are designed to get you from point A to point B.

Divide and Conquer

Problems often get easier when you split them in half, as the 20 Questions guessing game shows.

End of Unit 5

Course description.

Learn the key ideas of computer science with this interactive course – no coding required! This course is ideal for a high school or college student who wants to learn the fundamentals, or an early professional who wants to strengthen their knowledge of core computer science concepts. Whether you're exploring computer science for the first time or looking to deepen your understanding, this course will allow you to develop the problem-solving techniques you need to think like a computer scientist. Follow librarians, cooks, and mayors to see how computer science problem solving techniques affect their daily lives. Get hands-on with a few specific algorithms, and learn the general principles demonstrated by these algorithms.

Topics covered

  • Brute-Force Search
  • Concurrency
  • Graph Abstractions
  • Greedy Algorithms
  • Programming

Prerequisites and next steps

You don’t need any previous computer science experience to take this course! This course is for anyone excited to actively learn more about how computer scientists think and understand our world.

4.1 Applied Python

Expand your Python skills by leveraging (or using) strings and dictionaries to analyze and generate text.

breadcrumb

  • Exploring Computational Thinking

As part of our ongoing partnership with the broader educational community, we are releasing the Google Exploring Computational Thinking resources (including the Computational Thinking for Educators online course) to several practitioner organizations working to support CT teaching and learning globally. The resources, including the curated collection of lesson plans, videos, and other resources were created to provide a better understanding of CT for educators and administrators, and to support those who want to integrate CT into their own classroom content, teaching practice, and learning. We encourage you to access all these resources at:

International Society for Technology in Education (ISTE)

  • ISTE U – Introduction to Computational Thinking for Every Educator
  • Exploring Computational Thinking resource repository

Australian Digital Technologies Hub

  • Lesson ideas mapped to the Australian Digital Technologies curriculum, based on the original resources developed as Exploring Computational at Google.

CT Overview

Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom.

CT involves a number of skills, including:

  • Formulating problems in a way that enables us to use a computer and other tools to help solve them
  • Logically organizing and analyzing data
  • Representing data through abstractions such as models and simulations
  • Automating solutions through algorithmic thinking (a series of ordered steps)
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
  • Generalizing and transferring this problem solving process to a wide variety of problems

These skills are supported and enhanced by a number of dispositions or attitudes that include:

  • Confidence in dealing with complexity
  • Persistence in working with difficult problems
  • Tolerance for ambiguity
  • The ability to deal with open ended problems
  • The ability to communicate and work with others to achieve a common goal or solution

CT concepts are the mental processes (e.g. abstraction, algorithm design, decomposition, pattern recognition, etc) and tangible outcomes (e.g. automation, data representation, pattern generalization, etc) associated with solving problems in computing. These include and are defined as follows:

  • Abstraction: Identifying and extracting relevant information to define main idea(s)
  • Algorithm Design: Creating an ordered series of instructions for solving similar problems or for doing a task
  • Automation: Having computers or machines do repetitive tasks
  • Data Analysis: Making sense of data by finding patterns or developing insights
  • Data Collection: Gathering information
  • Data Representation: Depicting and organizing data in appropriate graphs, charts, words, or images
  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Parallelization: Simultaneous processing of smaller tasks from a larger task to more efficiently reach a common goal
  • Pattern Generalization: Creating models, rules, principles, or theories of observed patterns to test predicted outcomes
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Simulation: Developing a model to imitate real-world processes

See our Computational Thinking Concepts Guide for a printable version of this list, along with teaching tips for each concept.

CT Materials

Incorporate computational thinking (CT) into your curriculum with these classroom-ready lesson plans, demonstrations, and programs (available in Python and Pencil Code ). All materials in this collection have been aligned to both core subject* and CS** education standards. For more information on the connections between the CS education standards, see our International CS Education Standards crosswalk .

* See Common Core State Standards and Next Generation Science Standards ** See CSTA K–12 Computer Science Standards (United States), CAS: Primary School and Secondary School (United Kingdom), Australia , New Zealand , and Israel

Core Subject: All

Subject: All

Suggested Age: 8-18

Type: Reference

Computational Thinking Concepts Guide

This guide explores eleven terms and definitions for Computational Thinking (CT) concepts, enabling you to incorporate them into existing lesson plans, projects, and demonstrations. Teaching tips are included for each concept.

Differentiation Strategies Guide

This guide contains codes for seven differentiation strategies and their meanings. Differentiation strategies are practices for modifying content or instructional practices for a specific group of students.

Student Engagement Strategies Guide

This guide describes ten strategies for capturing and maintaining student attention during classroom lessons. These student engagement strategies can be interspersed throughout existing lesson plans, projects and activities to increase student interest in any topic.

Pseudocode Guide

This guide explores the benefits of using pseudocode, an informal, high-level description of the operating procedure of a computer program or other algorithm. With pseudocode, students can learn how plan out their programs even if they do not have access to a computer.

Introduction to Python

This guide to the Python programming languages helps you explore sample topics including mathematical notation, testing for equality, writing Python programs, and conditional logic.

Python Basics Quick Reference

This handy reference to programming in Python contains the most frequently used functions and syntax from the Exploring Computational Thinking lesson plans.

Core Subject: Computer Science

Subject: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

Measuring the Complexity of a Function or Algorithm

This lesson plan explores problems that are easy for the computer to solve and problems that are difficult for the computer to solve. Students will learn how to measure the complexity of a function/algorithm and how this applies to real world situations.

Suggested Age: 8-12

Ciphering a Sentence

This lesson plan enables student to develop a cipher, encode a sentence, and then develop an algorithm for encoding and decoding.

Suggested Age: 11-18

Algorithmic Thinking

This lesson plan demonstrates that an algorithm is a precise, step-by-step set of instructions. Students will be asked to create oral algorithms to solve problems that other students can then use effectively.

Suggested Age: 11-14

Divide and Conquer

This lesson plan requires students to use a ‘divide-and-conquer’ strategy to solve the mystery of the “stolen crystals”. Students will use decomposition to break the problem into smaller problems and algorithmic design to plan a solution strategy.

Water Water Everywhere!

This lesson plan presents students with the challenging problem of measuring a volume of water using containers of the wrong measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate the solution efficiencies and optimization in a simulation.

Data Compression

This lesson introduces students to the need for data compression and methods for reducing the amount of data in both text and images by applying a filter. By looking for patterns and adjusting the algorithm based on the results, students will learn to reduce the memory size with minimal impact on the quality.

Subject: Data Analysis

Suggested Age: 8-15

Describing an Everyday Object

This lesson plan explores the difficulty of providing detailed descriptions of objects without using their names. The CT concepts covered include abstraction, data representation and pattern recognition.

Exploring Your Environment

This lesson plan enables students to gather data about a place or environment, organize that data in a table, and look for patterns. The CT concepts covered include data collection, data representation, data analysis, and decomposition.

Subject: Logic

Suggested Age: 9-12

Machine Testing

This lesson plan presents students with a mysterious new machine and requires them to develop testing strategies to determine its functionality.

Solving a Guessing Game with Data

This lesson plan requires students to develop two guessing games. The CT concepts covered include data collection, data representation, data analysis, and algorithm design.

Subject: Software Development

Suggested Age: 13-18

Functions and Algorithms

This lesson plan enables students to identify, evaluate, follow, and create functions, including functions that loop, functions that include decisions, and functions that include both. The activities increase in difficulty and students should continue as far as they are able to.

Core Subject: English-Language Arts

Subject: Language

Indefinite Articles

This lesson plan explores the usage of ‘a’ and ‘an’. Students will use pattern recognition and pattern generalization to determine when to use these indefintite articles and then develop a written algorithm that enables them to refine basic algorithms to handle exceptions to a generalized rule.

Suggested Age: 8-10

Mystery Word X

This lesson plan enables students to analyze the classification of nouns and verbs. They begin by considering nouns as “a person, place, or thing” and verbs as “action words. They then run a group of words through a series of "tests" and identify instances in which this standard notion might lead to errors.

Present Participle

This lesson plan enables students to investigate how the ending letters of a verb affect its spelling as tense changes. Students begin by simply adding ‘ing’ to the end of verbs. By identifying patterns in the spelling of verbs for which this works and those for which it does not, students build a stronger algorithm for conjugating verbs.

Finding Patterns in Spelling Errors and History

This lesson plan helps students learn how to analyze spelling errors and large data sets to find patterns, develop abstractions, and discover how large amounts of data can reveal much about our society.

Suggested Age: 10-14

Writing a Story

This lesson plan enables student to collaborate with others to build a story, identify any "bugs" in the story, and fix those bugs to give the story a more logical flow.

Type: Program

Interactive Fiction

This Pencil Code program enables students to create a simple piece of interactive fiction with three "pages", with one function representing each page, and buttons to select the next action. Students can analyze, fill in, or change parts of the program.

Interactive Mad Libs

This Pencil Code program creates an interactive Mad Libs game, prompting the user to enter several words matching requested parts of speech and then stitching them together in humorous sentences. Students can analyze, fill in, or change parts of the program.

Interactive Mad Libs (Variation)

This Pencil Code program is a variation on the interactive Mad Libs program that automatically generates sentences by randomly choosing words. Students can analyze, fill in, or change parts of the program.

Lady Macbeth Chat Bot

This Pencil Code program enables students to create an interactive chat bot that answers questions as if it were Lady Macbeth. Students can students analyze, fill in, or change parts of the program.

Stroke Order of a Chinese Character

This Pencil Code program enables students to illustrate the stroke order of a chinese character by creating their own rendering of a Chinese character and drawing the strokes in the right order. Students can analyze, fill in, or change parts of the program.

Type: Exploration

This exploration gives students algorithms they can modify to improve the virtual Countess Ada Lovelace's ability to respond to questions.

Core Subject: History Social Science

Subject: US History

Map Visualization

This Pencil Code program provides a simple way to illustrate statistics geographically by drawing bubbles on a map. Students can analyze, fill in, or change parts of the program.

Population Statistics

This Pencil Code program enables student to create a population graph from data in a spreadsheet. Students can analyze, fill in, or change parts of the program.

Core Subject: Mathematics

Subject: Algebra

Suggested Age: 12-15

Linear Association

This lesson plan uses CT concepts to explore the linear association between variables using two sets of data. Students will read data in a spreadsheet and in a graph and identify positive and negative linear association based on the shape of the graph.

Degrees and Radians

This lesson plan uses basic patterns to label key points on the unit circle in terms of degrees, and then follows a similar process to relabel these points in terms of radians. Students can then develop an algorith to convert between degrees and radians based on the patterns they used to count their way around the unit circle.

Slope and Y-Intercept

This lesson plan uses CT to explain the properties of slope and y-intercept. Students will learn how to calculate the slope and y-intercepts of a line that passes through a given set of points, and then use Python to solve various challenging slope and y-intercept exercises.

Suggested Age: 13-16

Two Workers

This Python program helps students solve word problems with two people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated work problems.

Three Workers

This Python program helps students solve word problems with three people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated problems.

Savings and Interest

This Python program helps students understand how to calculate interest based on the savings amount, interest rate, and number of years of investing. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

This Python program helps students conceptualize the following word problem: Charisse is buying two different types of cereals from the bulk bins at the store. Granola costs $2.29 per pound, and muesli costs $3.75 per pound. She has $7.00. Use x as the amount of granola and y as the amount of muesli. How many pounds of granola can she buy if she buys 1.5 pounds of muesli?

DVD Rentals

This Python program helps students conceptualize the following word problem: Shanti has just joined a DVD rental club. She pays a monthly membership fee of $4.95, and each DVD rental is $1.95. If Shanti’s budget for DVD rentals in a month is $42, how many DVDs can Shanti rent in her first month if she doesn’t want to go over her budget?

Theme Park Ride

This Python program helps students conceptualize the following word problem: There are 90 people in line at a theme park ride. Every 5 minutes, 40 people get on the ride and 63 join the line. Estimate how long it would take for 600 people to be in line.

T Tables for Simple Functions

This Python program helps students compute the T table for a given function. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Suggested Age: 12-16

This Python program helps students understand ratios by solving for x in the equation a/b = c/d, where x can be in any location in the two fractions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Quadratic Formula

This Python program helps students automatically compute the quadratic formula given the values of a, b and c. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

This Python program helps students use their knowledge of FOIL on zero-variable or one-variable expressions to automatically solve various expressions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Factoring Perfect Square Binomial Expressions

This Python program helps students factor binomial expressions into the form (x+c)^2 if the expression fits the pattern. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Distance, Rate, Time

This Python program helps students automatically compute distance, rate, or time, given two of the three variables. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Binomial Products

This Python program helps students automatically calculate the binomial product, that is, (ax + b)(cx + d) = acx^2 + adx + bcx + bd. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

This Python program helps students see the connection between a mathematical function and a programmatic function by defining a function in Python and seeing what it means to pass a value to that function.

Properties of Quadratic Equations

This Python program helps students apply their knowledge of quadratic equations to automatically complete the square of a quadratic equation and find the location of the vertex. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

Substitution with Two Equations

This Python program enables students to substitute and solve for variables using two equations. The first equation can be any equation; the second must be of the form variable = ... where variable appears in the first equation. Students can analyze the program or predict the substitution given the two equations.

Pascal’s Triangle

This Python program illustrates how Pascal’s Triangle is computed. Students can trace through the program and learn more about nested for-loops and why they are needed in certain applications. This program may require additional guidance from the educator.

Vertex of a Quadratic

This Python program anables students to calculate the vertex for any given quadratic and automatically calculate the vertex (h, k) for a given quadratic in the form of y = ax^2 + bx + c. Students can analyze or fill in parts of the program to reinforce their understanding.

Roots of an Equation

This Python program enables students to solve for the roots of an equation. Students can analyze or fill in parts of the program to reinforce their knowledge.

Conic Sections

This Python program illustrates how the coefficients of functions representing conic sections can be used to determine the type of conic section (circle, ellipse, hyperbola) and display results based on that conic section. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Combinations: n choose k

This Python program enables students to check solutions to combinations (n choose k) exercises. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Matrix Multiplication

This Python program helps students develop their understandings of matrix multiplication by performing it on two randomly generated matrices. Students can analyze or fill in parts of the program to reinforce their understanding. This program is fairly sophisticated and may only work for students with prior Python experience.

Logarithm Notation

This Python program helps students develop their understanding of logarithm notation by automatically computing the result of a given base and exponent and displaying it in log notation. Students can analyze or fill in parts of the program to reinforce their knowledge.

Determinant of a 3x3 Matrix

This Python program enables students to find the determinant of a 3x3 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

Determinant of a 2x2 Matrix

This Python program enables students to find the determinant of a 2x2 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

Subject: Arithmetic

This Pencil Code program enables student to play the "chaos game" by randomly moving the turtle to create a pattern. Students can analyze, fill in, or change parts of the program.

Graphing Sums of Dice Rolls

This Pencil Code program illustrates randomness by rolling two dice 100 times and graphing the results in two different ways.

Random Number Illustrator

This Pencil Code program can be used to generate and then illustrate a random number. Students can analyze, fill in, or change parts of the program.

Sum of Two Dice

This Pencil Code program can be used to roll two dice a number of times and then print the sum. Students can analyze, fill in, or change parts of the program.

Subject: Calculus

Suggested Age: 16-18

Instantaneous Rate of Change

This Python program enables students to determine the instantaneous rate of change for a given function and then automatically calculate it for a given function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Calculating Definite Integrals

This Python program enables students to calculate the definite integral for a given function and then automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Fundamental Theorem of Calculus

This Python program enables students to use the Fundamental Theorem of Calculus for a given function and automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Mean and Standard Deviation

This lesson plan demonstrates how to use standard deviation to better understand a set of data. Students will use standard deviation to determine the general pattern/shape of a given set of data to draw more reliable conclusions.

Application and Modeling of Standard Deviation

This lesson plan explores using the central tendency to discover patterns in data. Students will simulate a dice-throwing game and alter the algorithm design to reflect changes to the game. The CT concepts covered include data collection, decomposition, abstraction, and data analysis.

Using Data from Sensors - Introduction

In this lesson plan, students identify and describe various sensors. Students will use sensors to collect data and use Computational Thinking to decompose one large problem into multiple smaller problems.

Using Data from Sensors - Filters and Functions

In this lesson plan, student explore the use of filters to isolate and analyze data generated by various types of sensors. Students use computational thinking to identify patterns generated by a potential agent during a specific activity (such as a human falling to the ground).

Continuous vs Discrete Data - Introduction

This lesson plan illustrates how data can be continuous or discrete. Students will collect data from classmates and then use data analysis and data representation to label the data as continuous or discrete. They will also learn to recognize different graphical and tabular representations of data as discrete and continuous.

Continuous vs Discrete Data - Modeling Continuous Functions

This lesson plan requires students to apply their knowledge about continuous and discrete data to categorize data from historical calculations of the speed of light and to examine the effects of modeling a continuous curved shape with an increasing number of discrete points and segments.

Subject: Geometry

Turtle Geometry

This exploration provides students an opportunity to understand the relationship between the number of sides in a regular polygon and its angles. Students will draw shapes using simple commands like 'turn right 90 degrees' and 'move forward 100 steps' and use the patterns they find to write an algorithm for drawing any regular polygon.

Suggested Age: 13-17

Area of a Circle

This lesson plan uses CT to explain the derivation of the formula A = pi*r^2. Students will complete Python programs that calculate the area of a circle as well as individual sectors.

Finding the Shortest Path

This lesson invites students to develop a process for traveling across the country in the most efficient way possible. Students will refine their process after experimenting with smaller networks of points as well as a varient of the Traveling Salesperson problem.

Suggested Age: 11-16

Pythagorean Theorem - Pencil Code

This Pencil Code program enables students to use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Acute, Obtuse, and Right Triangles

This Python program helps students precisely define the relationships between the angles for different types of triangles (acute, obtuse, or right). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Calculating Surface Area

This Python program helps students use surface area formulas to automatically to calculate the surface areas of several geometric objects (cube, rectangular prism, cylinder, sphere). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Pythagorean Theorem - Python

This Python program helps students use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Polygonal Formulas

This Python program helps students use formulas related to polygons to display several results based on the number of sides of a polygon. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Distance Between Two Points

This Python program helps students use the distance formula to automatically calculate the distance between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to reinforce their understanding.

Area Calculations

This Python program demonstrates how area formulas can be used to automatically compute the area of various geometric objects. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Suggested Age: 12-14

This lesson plan requires students to apply logical reasoning to deduce information from rules in a game scenario. The CT concepts covered include data representation, data analysis, and decomposition.

Pattern Machine

This lesson plan requires students to play a triplet game in which a set of three numbers can be described according to a specific rule. Students use data analysis to recognize and generalize patterns from which they derive the rule and solve the puzzle.

This lesson plan requires student to use logical reasoning to deduce information about the labels on fruit boxes based upon rules. The CT concepts covered include data analysis and simmulation.

Suggested Age: 10-12

Logic Party

This lesson plan requires students to solve a numerical problem using constraints to graphically eliminate possibilities and arrive at the correct answer. The CT concepts covered include data representation, data analysis, and decomposition.

Subject: Pre-Algebra

Fraction Addition and Common Denominators

This lesson plan explores how to find a common denominator between two fractions and add or subtract the fractions. It covers a variety of CT concepts, including decomposition, abstraction, pattern recognition, pattern generalization and algorithm design.

Multiplication with Fractions

This lesson plan explores how to visualize the multiplication of fractions and identify patterns between the multiplicands and their product. Upon completion of this lesson, students will be able to multiply simple fractions using a visual model and a computational algorithm.

Suggested Age: 11-13

Ratios and Proportions

This lesslon plan uses CT concepts and the Python programming language to develop an algorithm for answering questions involving ratios and proportions. It coveres a variety of CT concepts including problem decompostion, abstraction, pattern identification, pattern generalization and algorithm design.

Multiplying by Numbers Between Zero and One

This lesson plan uses CT concepts to to demonstrate that when multiplying a positive number by a decimal between 0 and 1, the product is always less than the original number.

Dividing by Numbers Between Zero and One

This lesson plan uses CT concepts to demonstrate that when dividing a positive number by a decimal between 0 and 1, the quotient is always greater than the original number.

Common Fractions and Equivalent Percentages

This lesson plan uses CT concepts to demonstrate the conversion of common fractions into their equivalent percentages. Students identify patterns between fractions, decimals, and percents, and generalize these patterns.

Percent Change

This lesson plan uses CT concepts to demonstrate how to calculate the percent change between any two numbers. Students identify patterns in percent change and decompose an algorithm to help strengthen their understanding.

Scientific Notation

This lesson plan uses CT concepts to identify patterns between the exponent, the number of places the decimal point moves, and the direction the decimal point moves when multiplying by powers of ten.

Percentages

This lesson plan uses CT concepts to demonstrate how to develop an algorithm for calculating percentages using mental math.

Long Multiplication on Two-Digit Numbers - Pencil Code

This Pencil Code program enables student to perform long multiplication on two-digit numbers, for example, 42 x 31. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Long Multiplication on Two-Digit Numbers - Python

This Python program enables students to perform long multiplication on two-digit numbers, for example, 23 x 46. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Fractions and Proportions

This Python program enables students to check whether two fractions are proportional. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Lemonade and Glasses

This Python program helps students conceptualize word problems, specifically: Sam has a jar with 5 cups of fresh lemonade. Jack has some glasses which hold 1.5 cups each of liquid. How many glasses of lemonade can Jack serve of Sam’s lemonade?

Evaluating Expressions

This Python program llustrates how a basic calculator functions. It introduces Python’s eval function as a way of computing expressions containing variables a, b, and c when given values for each of these variables. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Midpoint Between Two Points

This Python program helps students apply their knowledge of the midpoint formula to automatically calculate the midpoint between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to help reinforce their understanding.

Complementary and Supplementary Angles

This Python program helps students apply their knowledge of complements and supplements to automatically compute the complement and supplement of a given angle. Students can analyze or fill in parts of the program to help reinforce their understanding.

Populations

This Python program helps students determine how long it will take to reach a certain target population, given a starting population, birthrate, and death rate. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Rock Climber, Cliff, and Shadows

This Python program helps students conceptualize the following word problems: A rock climber wants to know the height of a cliff. She measures the shadow of her friend, who is 5 feet tall and standing beside the cliff and measures the shadow of the cliff. If the friends shadow is 4 feet long and the cliffs shadow is 60 feet long, how tall is the cliff?

Basketball Hoops and Buildings

This Python program helps students conceptualize the following word problem: A basketball rim 10 ft high casts a shadow 15 ft long. At the same time, a nearby building casts a shadow that is 54 ft long. How tall is the building?

Fractional Exponents

This Python program demonstrates fractional exponents by automatically computing one based on a given base and fractional exponent. Students can analyze or fill in parts of the program to reinforce their knowledge.

Subject: Statistics and Probability

Combinations with Repeats

This lesson plan uses CT concepts to illustrate how to compute the number of possible arrangements for a given number of digits in a given number of spaces. Students will identify patterns in relatively easy cases that can lead them to an algorithm which applies to all cases.

Factorials with Names

This lesson plan uses CT concepts to investigate the number of possible arrangements of the letters in a given name. Students will identify patterns in the number of possible arrangements given an increasing number of letters, and then decompose the results to arrive at the factorial function.

Sorting Data

This lesson plan illustrates how to sort data using spreadsheet functions and/or Python. Students compare the algorithms used by both tools and then write their own algorithms for analyzing data with the mean, median, and mode.

Surveys and Estimating Large Quantities

This lesson plan shows students how to estimate the approximate size of data and determine the extent to which that data is realiable. Students will observe smaller data sets and identify patterns that enable them to make general predictions and to create algorithms capable of making approximations.

Randomness in Stochastic Models

This lesson plan explores random variables and probability. In this lesson, students will be introduced to methods to create random numbers as well as ways in which randomization can be used in scientific experiments.

Stochastic and Deterministic Modeling

This lesson plan explores deterministic models (the output is always the same) and stochastic models (the output is based on random sampling and can vary) and how, by modeling real phenomena using simulations, it is possible to improve a model and make better predictions.

Analyzing Discrete and Continuous Data in a Spreadsheet

In this lesson plan, students will collect data in a spreadsheet and learn to use various functions and analysis tools to better see patterns in their eating habits.

Analyzing Discrete and Continuous Data in a Map

This lesson plan illustrates how data is more than just numbers and that a map can also be a source of both discrete and continuous data. Using various tools, students will analyze and calculate the amount of urban open space available in their city.

Correlation vs Causation

In this lesson, plan, students will test the strength of a correlation and discern whether or not a law or conclusion can be made based on that correlation. Students will see the threshold commonly accepted for correlating data and test their own assumptions about causation.

Data Aggregation and Decomposition (Advanced Python)

This lesson plan explores how to use/analyze data to draw conclusions about the world around us. Students will improve their computational thinking by collecting/aggregating data onto a spreadsheet, identifying patterns in their data, decomposing the data into specified groups for analysis and further pattern recognition, and modifying an algorithm written in Python to facilitate data analysis.

Data Aggregation and Decomposition (Google Sheets)

This lesson plan uses CT to help students decompose and re-aggregate small sets of data using Google Sheets. Students use decomposition to break down long lists of information and write basic algorithms to use for the data analysis process.

The Law of Large Numbers and Probability

This lesson plan uses CT to help students use large amounts of data to explore the Law of Large Numbers and the Birthday Paradox to see how closely projected calculations match outcomes in the real world.

Generating Complex Behavior with Algorithms

This lesson plan provides examples of complex behavior that students can explore such as flipping a coin and cellular automata. Students can modify the algorithms to see the impact it has on the behavior.

Subject: Trigonometry

Suggested Age: 12-17

Application of Sin(x) and Cos(x)

This Python program enables students to graph two functions and apply their knowledge of the fact that C*sin(x + p) is the same as A*sin(x) + B*cos(x), for the right choice of A and B. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

Core Subject: Music

Subject: Music

Making Music with Algorithms

This lesson plan allows students to examine the various aspects of music such as scales, melody, and rhythm. The patterns they discover will enable them to modify an algorithm to improve the quality of the music generated by the algorithm.

Core Subject: Science

Subject: Biology

Modeling the Genome using Computational Thinking

This demonstration explores how scientific knowledge of DNA progressed over the course of sixty years to the point where scientists could encode genes using a computer. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling GDP and Waste using Computational Thinking

This demonstration explores the hazards of making decisions based on incomplete data. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Natural Selection using Computational Thinking

This demonstration illustrates how Charles Darwin and Gregor Mendel use Computational Thinking methods to make foundational discoveries in natural selection. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Suggested Age: 14-17

Cell Biology - Filters

This lesson plan uses CT to improve students' understandings of filters in cell bioloigy. Students will find patterns in filters of all types to help them understand how these filters function. Prior to this lesson, have students complete the related lesson titled Inquiry and Observation.

Cell Biology - Filter Design and Construction

This lesson plan uses Computational Thinking to help students understand the movement of molecules across a cell membrane. Students will decompose their “molecules” to develop a design for their own “cell membranes” and then write an algorithm to describe them before building them. Prior to this lesson, have students complete the related lesson titled Filters.

Classifying Objects with Computational Thinking

This exploration uses the game '20 Questions' to have students estimate the number of questions necessary to guess any species on Earth. Students will first examine a few smaller classification examples using only 'yes' and 'no' questions, and then will generalize these patterns to develop an equation for classifying any object.

Subject: Chemistry

Modeling Electron Configuration using Computational Thinking

This demonstration uses Computational Thinking to show the relationship between electron configuration and an element’s position in the periodic table. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction and algorithm design to show how the atomic number of an element affects the configuration of its electrons.

Modeling Radioactive Decay using Computational Thinking

This demonstration explores how Computational Thinking is used to model the radioactive decay of an element. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Boyle's Law using Computational Thinking

This demonstration describes how Computational Thinking can be used to understand the relationship between pressure and volume in a container of gas as described by Boyle’s Law. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Patterns in the Periodic Table

This lesson plan illustrates how spreadsheet functions can be used to identify organizational patterns in the periodic table. The spreadsheet functions presented can be used on any data set.

Sorting the World's Cities (Google Sheets)

This lesson plan demonstrates how to use spreadsheet functions to sort and graph data. Once the data is sorted, students can begin to identify patterns and trends.

Sorting the World's Cities (Advanced Python)

This lesson plan demonstrateshow to read data from a spreadsheet into a Python program and then sort that data. When taught in conjunction with Sorting the World's Cities with Excel, this lesson can help student make the connection between writing a program and using a spreadsheet application.

What is Data? - Introduction

This lesson plan describes what data is, how prevalent it is, and how it can be used to make informed decisions. The CT concepts covered include pattern recognition and data representation.

What is Data? - Code Breaking and Patterns

This lesson plan introduces the concept of data. Students will create new data, look for patterns in existing data and attempt to decode text and numeric messages. They will use data analysis, including pattern recognition, to make sense of the provided data.

This Python program enables students to process data sets using a simple sorting algorithm. It can also be used to illustrate how sorting might be done automatically by an application such as Excel.

Subject: Earth Science

Energy Analysis

This lesson plan explores how spreadsheet functions can be used to analyze data on energy production and consumption around the world. Students learn how to display the results of their data collection on a map of the world, creating a visual representation of the numbers they input into their spreadsheets. This example is most suitable for high school biology or earth science classes.

Subject: Physics

Modeling Projectile Motion using Computational Thinking

In this demonstration illustrates how a program can be used to simulate projectile motion. It enables students to see how decomposition, pattern recognition and abstraction can be used to understand natural phenomena.

Modeling Pendulums using Computational Thinking

This demonstration illustrates how Computational Thinking concepts can be used to explore the laws that govern a pendulum’s motion. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Modeling Free Fall using Computational Thinking

This demonstration explores how Galileo used Computational Thinking and inclined planes to calculate acceleration of a sphere in free fall. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

Working with Large Tables of Data

This lesson plan enables students to work with large tables of GPS data. Students will learn to sort, manipulate, and visualize data so it can be easily understood.

Simulating a Bouncing Ball

This exploration breaks down the components of motion so students can understand and improve an algorithm for making a ball bounce.

Below is a list of resources on computational thinking (CT). This list is not meant to be comprehensive, but is instead a curated collection of resources that educators and administrators might find useful. For additional computer science and CT resources, try our CS Custom Search .

For educators

General CT Resources

  • Computational Thinking for Educators - Online course for learning what CT is and how it can be integrated into a variety of subject areas by exploring examples of CT in your subject area, experimenting with examples of CT-integrated activities, and creating a plan to incorporate it into your classroom
  • Computational Thinking - by Jeannette M. Wing (Communications of the ACM)
  • Bringing Computational Thinking to K-12 - by Valerie Barr and Chris Stephenson (ACM Inroads)
  • Computational Thinking Teacher Resources - provided by ISTE and CSTA
  • Computational Thinking with Scratch - provided byHGSE, EDC, and MIT
  • Introduction to Computational Thinking - provided by Bitesize BBC
  • Computational Fairy Tales (books) by Jeremy Kubica

CT Tips and Strategies

  • Computational Thinking Concepts Guide - Comprehensive list of the CT concepts noted on ECT, including tips on implementing each concept in the classroom
  • Student Engagement Strategies Guide - Research-based strategies for engaging students
  • Differentiation Strategies Guide - Strategies for differentiating instruction in your classroom, based on the groups defined in the Next Generation Science Standards

CT in Computer Science

  • CS First - Free, easy-to-use materials based on Scratch that are themed to attract students with varied interests
  • CS Unplugged - Free resources and learning activities that teach the principles of Computer Science
  • Bebras Challenge : Anytime computing challenges and tasks to introduce students to computational and logical thinking
  • Alice - Block-based programming language for creating animations, games, or videos using object-oriented programming constructs in a 3D environment
  • App Inventor - Block-based programming language for creating mobile apps for Android
  • Pencil Code - Block- and text-based programming environment for creating art, music, games, and stories
  • Scratch - Block-based programming language for creating interactive stories, animations, games, music, and art
  • Desmos and Geogebra - Two free tools for exploring patterns in math
  • Mathalicious - Meaningful and relevant math content with examples of how math is used to solve intriguing questions from a variety of subjects
  • Project Euler - Mathematical challenges that require CT to solve them
  • Bootstrap - Curriculum that teaches math through computer programming
  • CS in Algebra - Partnership between Code.org and Bootstrap which teaches algebraic and geometric concepts through computer programming

CT in Science

  • Netlogo - Block-based, multi-agent programmable modeling environment
  • CS in Middle School Science - Collection of modules and lessons that augment traditional science instruction with CT through engaging modeling and simulation activities
  • PhET Interactive Simulations - Library of interactive, research-based science simulations of physical phenomena that encourage quantitative exploration
  • Project GUTS (Growing up Thinking Scientifically) Curriculum - Collection of middle school science units integrating CT
  • Wolfram Alpha - Computational knowledge engine for computing answers to queries using facts rather than providing the users with a list of documents or websites

CT in English/Language Arts

  • Google Ngram Viewer - Discover patterns and trends in literary works over the last two centuries

CT in Art, Design, Media

  • Processing - Programming language and environment for creating programs that are visual and interactive
  • Pixly - Block-based programming language for exploring media computation (pixel manipulation of images)

CT in Music

  • EarSketch - Computational music remixing and sharing development environment with complementary curriculum

For administrators

CT for School Leaders

  • ISTE Computational Thinking Leadership Toolkit

CT in the Science Classroom

  • Science and Engineering Practices in the NGSS - See “Practice 5 Using Mathematics and Computational Thinking”

Computer Science Education Standards

  • International CS Education Standards crosswalk
  • Computer Science Teachers Association (CSTA) - United States
  • Computing at School (CAS): Primary School and Secondary School - United Kingdom
  • New Zealand

Why is Python the programming language used in the CT materials?

Python is one of the easier languages to start with that is free and easy to download. It offers users two modes: the interpreter mode and the editor mode. See Introduction to Python for general information on how to introduce and use Python in your curriculum, or visit http://www.python.org/ for general Python information.

Some of the Python programs seem too advanced for my students. How can I adapt the materials to work for my particular students?

In developing our exemplar lessons and examples, we wanted to illustrate the various techniques used in computational thinking, from decomposition to algorithm design and implementation. However, we agree that not all the programming exercises are suitable for all students. Thus we really encourage you to adapt our materials to suit the needs of your classroom, which may be dependent on the computing resources you have available as well as the grade and skill level of your students. Below are some ways in which you may choose to adapt our materials:

  • Have students complete all of the exercises that lead up to the programs, and have them explain how they would design such an algorithm in their own words instead of writing actual Python programs
  • Expose students to the programs by projecting them, analyzing them step-by-step as a class, and then running them using values and variables provided by your students
  • Remove logical code sections from the completed programs and have students work together to fill in the missing parts
  • Have students work together to enhance a completed program to solve more sophisticated problems that involve different scenarios

How do I install Python on my computer?

Visit http://www.python.org/ for information on how to download and install Python to your computer. Alternatively, if you are unable or do not want to download Python to your computer, you can search online for ‘online Python editor’ to explore the different web-based Python editors.

  • About Google

The website is not compatible for the version of the browser you are using. Not all the functionality may be available. Please upgrade your browser to the latest version.

  • Social Media
  • Access Points
  • Print/Export Standards
  • Standards Books
  • Coding Scheme
  • Standards Viewer App
  • Course Descriptions
  • Graduation Requirements
  • Course Reports
  • Gifted Coursework
  • Career and Technical Education (CTE) Programs
  • Browse/Search
  • Original Student Tutorials
  • MEAs - STEM Lessons
  • Perspectives STEM Videos
  • STEM Reading Resources
  • Math Formative Assessments
  • CTE Related Resources
  • Our Review Process
  • Professional Development Programs
  • iCPALMS Tools
  • Resource Development Programs
  • Partnership Programs
  • User Testimonials
  • iCPALMS Account

CPALMS Logo

  • Account Information Profile and Notification Settings
  • Administration Manage Site Features
  • Recycle Bin Delete Items From Your Account
  • Not a member yet? SIGN UP
  • Account Information
  • Administration
  • Recycle Bin
  • Home of CPALMS
  • Standards Info. & Resources
  • Course Descriptions & Directory
  • Resources Vetted by Peers & Experts
  • PD Programs Self-paced Training
  • About CPALMS Initiatives & Partnerships
  • iCPALMS Florida's Platform

Standard 2: Problem solving and algorithms

Export to Word

21 Lesson Plans

1 Original Student Tutorial

Student Resources

Related Benchmarks

Related access points, related resources, lesson plans.

Students will explore Artificial Intelligence (AI) and the basics on how generative AI models use Large Language Models (LLMs) and Natural Language Processing NLP to generate outputs. This K-3 lesson is an integrated Computer Science, ELA and Math lesson designed for application of math and ELA content knowledge while exploring and using computational thinking to understand how generative AI works, making cross-curricular connections to understand emerging technologies.

Type: Lesson Plan

Students will explore Artificial Intelligence (AI) and Machine Learning (ML) and pretrain a model to recognize and identify objects, including geometric shapes and aircraft. They will used unplugged activities to mimic sorting and classification of the objects using their prior knowledge and then make connections to human learning and Machine Learning. Students will then problem solve and propose solutions using an iterative process to improve the ML model to better recognize the objects. This lesson is an integrated Computer Science, Science and Math lesson designed for students in K-2 to apply math and science content knowledge while exploring and using computational thinking like people in Computer Science careers do.

Students will review examples of good citizens in their daily lives. The teacher will introduce the computational if/then statements to students to apply to examples of good citizens. Students will collaborate to use if/then conditionals as they consider citizenship examples. This is lesson 2 of a 3-lesson integrated computer science and civics mini-unit. 

In this integrated civics and coding lesson plan, students will discuss the purpose of rules and laws. Using collaboration and physical movement, students will complete a “rule relay maze” by breaking it into small steps. 

In this integrated civics lesson plan, students will discuss the purpose of rules and laws while also identifying people who have the authority and power to make and enforce them.  Using collaboration and physical movement, students will create a simple algorithm dance.

In this integrated civics and computer science lesson plan, students will work in groups to create an algorithm to help the authority figure through the story.

Sudents learn the definition and purpose of laws.  They will play a coding board game that is not on the computer.  This is Lesson 2 in a three part series integrating civics and computer science.

Students will learn about rules and how they relate to the steps and turns used in the Motion Blocks coding in Scratch. Students will complete an illustration depicting one rule they learned. This is lesson 1 of a 3-part integrated computer science and civics mini-unit.

Students will work to differentiate between a rule and a law and why both are important in our everyday lives.  Students will also learn the definition of an algorithm and the discovery of the sequence of steps, then students will work to connect this information to rules and laws. Students will use sequencing sheets to determine the order of the rules. This is Lesson 1 of a three-part integrated computer science and civics mini-unit.

Let’s take a bike ride! In this integrated lesson plan, students will work together as a class to generate a simple algorithm about the steps to safe bicycle riding. Next, students will watch the attached PowerPoint to identify bicycle riding laws and then discuss what might happen if the bike rider is not riding responsibly. Finally, using the Scratch game “Joy Rides a Bike”, students will demonstrate their knowledge of the parts of a bicycle, and how to dress sensibly for riding. This is lesson 3 of a 3-part unit on rules and laws integrated with computational thinking.

Students will use a Scratch model to identify ways responsible citizens act in an outdoor environment. This is lesson 3 of an integrated computer science and civics mini-unit. Students will be fully engaged while working with civics, computer science, and coding. 

Help your students understand the importance of following sequences as well as following the law in this immersive lesson.  Students will play a class game of “Bus Ride” to identify a set of defined steps for riding a bus safely as well as being introduced to the term “algorithm”.  The teacher will then continue the lesson by helping students connect the idea of sequencing to rules and laws. Finally, students will play the Scratch game “Be-Beep!” using arrow keys to safely drive a virtual “bus” full of school children to their school without breaking any traffic laws.

Using a Scratch animation, students will gather information about the characteristics of a responsible citizen within the School Community. Students will use a model of a common area (such as a library) and coding to identify the effects of responsible or irresponsible citizens in a libraby. This is lesson two of a three-part integrated computer science and civics mini-unit. 

Why are rules important?  Have your students ever wondered why we have rules at school? In this interactive computer science lesson, students will play a game of charades to distinguish between responsible behavior (rule-following) and irresponsible behavior (rule-breaking) by acting out classroom rules with picture cards and then play a Scratch game to apply computational thinking as they identify and sort appropriate behavior at home and school.

Based on a Scratch animation, students will use a concept map to organize and sort the characteristics of responsible and irresponsible citizens. This lesson is part one of a three-part integrated computer science and civics mini-unit. 

In this integrated lesson plan, students will work in groups to create an algorithm to reach the responsible decision. Students will use the algorithm to identify examples of responsible and irresponsible decisions as they move across a grid. This is lesson 3 in an integrated civics and computer science unit. 

In this integrated lesson plan, students will work together to use a given algorithm to reach the responsible decision. Students will use the algorithm to identify examples of responsible decisions as they move across a grid. 

This is lesson 2 of 3 of integrated civics with computer science.

In this lesson plan, students listen to a book about Thomas Jefferson and identify relevant details related to important events in his life. This is part one of a four-part Civics and Coding integrated series.

Students will create a program in scratch that sorts animals common to the Everglades National Park according to their main habitat in this integrated lesson plan. They will use the provided Venn Diagram backgound template and choose at least 4 previously-researched Everglades National Park animals to use as sprites. Students will then code the sprites to ‘move’ to the appropriate section of the Venn Diagram (water, land, both).

In this integrated lesson plan, students will work collaboratively in guided partner groups to identify responsible and irresponsible characteristics of students in a school community. Using computational thinking language of if/then conditional statements, the students will sort the information regarding responsible and irresponsible citizens in a useful order.

Students will explore the differences between rules and laws within their community. After participating in whole group discussions and sharing examples of rules and laws, students will be tasked with planning a Scratch program that exemplifies a rule being followed at school. Students will use available technology for appropriate images to be used in their Scratch coding project. This lesson is part one of a series. The series covers the planning and creation of a block code project using Scratch programming.

Original Student Tutorial

Use computational thinking strategies to help plan a party in this interactive tutorial. The computional thinking strategies include decomposition, abstraction, pattern recognition, and algorithms.

Type: Original Student Tutorial

Student Resources

Parent resources.

problem solving and computing lesson 2

Like us on Facebook

Stay in touch with CPALMS

problem solving and computing lesson 2

Follow Us on Twitter

CPALMS Logo

Loading....

Tutorial Playlist

Programming tutorial, your guide to the best backend languages for 2024, an ultimate guide that helps you to start learn coding 2024, what is backend development: the ultimate guide for beginners, all you need to know for choosing the first programming language to learn, here’s all you need to know about coding, decoding, and reasoning with examples, understanding what is xml: the best guide to xml and its concepts., an ultimate guide to learn the importance of low-code and no-code development, top frontend languages that you should know about, top 75+ frontend developer interview questions and answers, the ultimate guide to learn typescript generics, the most comprehensive guide for beginners to know ‘what is typescript’.

The Ultimate Guide on Introduction to Competitive Programming

Top 60+ TCS NQT Interview Questions and Answers for 2024

Most commonly asked logical reasoning questions in an aptitude test, everything you need to know about advanced typescript concepts, an absolute guide to build c hello world program, a one-stop solution guide to learn how to create a game in unity, what is nat significance of nat for translating ip addresses in the network model, data science vs software engineering: key differences, a real-time chat application typescript project using node.js as a server, what is raspberry pi here’s the best guide to get started, what is arduino here’s the best beginners guide to get started, arduino vs. raspberry pi: which is the better board, the perfect guide for all you need to learn about mean stack, software developer resume: a comprehensive guide, here’s everything all you need to know about the programming roadmap, an ultimate guide that helps you to develop and improve problem solving in programming, the top 10 awesome arduino projects of all time, pyspark rdd: everything you need to know about pyspark rdd, wipro interview questions and answers that you should know before going for an interview, how to use typescript with nodejs: the ultimate guide, what is rust programming language why is it so popular, software terminologies, an ultimate guide that helps you to develop and improve problem solving in programming.

Lesson 27 of 33 By Hemant Deshpande

An Ultimate Guide That Helps You to Develop and Improve Problem Solving in Programming

Table of Contents

Coding and Programming skills hold a significant and critical role in implementing and developing various technologies and software. They add more value to the future and development. These programming and coding skills are essential for every person to improve problem solving skills. So, we brought you this article to help you learn and know the importance of these skills in the future. 

Want a Top Software Development Job? Start Here!

Want a Top Software Development Job? Start Here!

Topics covered in this problem solving in programming article are:

  • What is Problem Solving in Programming? 
  • Problem Solving skills in Programming
  • How does it impact your career ?
  • Steps involved in Problem Solving
  • Steps to improve Problem Solving in programming

What is Problem Solving in Programming?

Computers are used to solve various problems in day-to-day life. Problem Solving is an essential skill that helps to solve problems in programming. There are specific steps to be carried out to solve problems in computer programming, and the success depends on how correctly and precisely we define a problem. This involves designing, identifying and implementing problems using certain steps to develop a computer.

When we know what exactly problem solving in programming is, let us learn how it impacts your career growth.

How Does It Impact Your Career?

Many companies look for candidates with excellent problem solving skills. These skills help people manage the work and make candidates put more effort into the work, which results in finding solutions for complex problems in unexpected situations. These skills also help to identify quick solutions when they arise and are identified. 

People with great problem solving skills also possess more thinking and analytical skills, which makes them much more successful and confident in their career and able to work in any kind of environment. 

The above section gives you an idea of how problem solving in programming impacts your career and growth. Now, let's understand what problem solving skills mean.

Problem Solving Skills in Programming

Solving a question that is related to computers is more complicated than finding the solutions for other questions. It requires excellent knowledge and much thinking power. Problem solving in programming skills is much needed for a person and holds a major advantage. For every question, there are specific steps to be followed to get a perfect solution. By using those steps, it is possible to find a solution quickly.

The above section is covered with an explanation of problem solving in programming skills. Now let's learn some steps involved in problem solving.

Steps Involved in Problem Solving

Before being ready to solve a problem, there are some steps and procedures to be followed to find the solution. Let's have a look at them in this problem solving in programming article.

Basically, they are divided into four categories:

  • Analysing the problem
  • Developing the algorithm
  • Testing and debugging

Analysing the Problem

Every problem has a perfect solution; before we are ready to solve a problem, we must look over the question and understand it. When we know the question, it is easy to find the solution for it. If we are not ready with what we have to solve, then we end up with the question and cannot find the answer as expected. By analysing it, we can figure out the outputs and inputs to be carried out. Thus, when we analyse and are ready with the list, it is easy and helps us find the solution easily. 

Developing the Algorithm

It is required to decide a solution before writing a program. The procedure of representing the solution  in a natural language called an algorithm. We must design, develop and decide the final approach after a number of trials and errors, before actually writing the final code on an algorithm before we write the code. It captures and refines all the aspects of the desired solution.

Once we finalise the algorithm, we must convert the decided algorithm into a code or program using a dedicated programming language that is understandable by the computer to find a desired solution. In this stage, a wide variety of programming languages are used to convert the algorithm into code. 

Testing and Debugging

The designed and developed program undergoes several rigorous tests based on various real-time parameters and the program undergoes various levels of simulations. It must meet the user's requirements, which have to respond with the required time. It should generate all expected outputs to all the possible inputs. The program should also undergo bug fixing and all possible exception handling. If it fails to show the possible results, it should be checked for logical errors.

Industries follow some testing methods like system testing, component testing and acceptance testing while developing complex applications. The errors identified while testing are debugged or rectified and tested again until all errors are removed from the program.

The steps mentioned above are involved in problem solving in programming. Now let's see some more detailed information about the steps to improve problem solving in programming.

Steps to Improve Problem Solving in Programming

Right mindset.

The way to approach problems is the key to improving the skills. To find a solution, a positive mindset helps to solve problems quickly. If you think something is impossible, then it is hard to achieve. When you feel free and focus with a positive attitude, even complex problems will have a perfect solution.

Making Right Decisions

When we need to solve a problem, we must be clear with the solution. The perfect solution helps to get success in a shorter period. Making the right decisions in the right situation helps to find the perfect solution quickly and efficiently. These skills also help to get more command over the subject.

Keeping Ideas on Track

Ideas always help much in improving the skills; they also help to gain more knowledge and more command over things. In problem solving situations, these ideas help much and help to develop more skills. Give opportunities for the mind and keep on noting the ideas.

Learning from Feedbacks

A crucial part of learning is from the feedback. Mistakes help you to gain more knowledge and have much growth. When you have a solution for a problem, go for the feedback from the experienced or the professionals. It helps you get success within a shorter period and enables you to find other solutions easily.

Asking Questions

Questions are an incredible part of life. While searching for solutions, there are a lot of questions that arise in our minds. Once you know the question correctly, then you are able to find answers quickly. In coding or programming, we must have a clear idea about the problem. Then, you can find the perfect solution for it. Raising questions can help to understand the problem.

These are a few reasons and tips to improve problem solving in programming skills. Now let's see some major benefits in this article.

  • Problem solving in programming skills helps to gain more knowledge over coding and programming, which is a major benefit.
  • These problem solving skills also help to develop more skills in a person and build a promising career.
  • These skills also help to find the solutions for critical and complex problems in a perfect way.
  • Learning and developing problem solving in programming helps in building a good foundation.
  • Most of the companies are looking for people with good problem solving skills, and these play an important role when it comes to job opportunities 
Don't miss out on the opportunity to become a Certified Professional with Simplilearn's Post Graduate Program in Full Stack Web Development . Enroll Today!

Problem solving in programming skills is important in this modern world; these skills build a great career and hold a great advantage. This article on problem solving in programming provides you with an idea of how it plays a massive role in the present world. In this problem solving in programming article, the skills and the ways to improve more command on problem solving in programming are mentioned and explained in a proper way.

If you are looking to advance in your career. Simplilearn provides training and certification courses on various programming languages - Python , Java , Javascript , and many more. Check out our Full Stack Developer - MERN Stack course that will help you excel in your career.

If you have any questions for us on the problem solving in programming article. Do let us know in the comments section below; we have our experts answer it right away.

Find our Full Stack Developer - MERN Stack Online Bootcamp in top cities:

NameDatePlace
Cohort starts on 7th Oct 2024,
Weekend batch
Your City
Cohort starts on 21st Oct 2024,
Weekend batch
Your City

About the Author

Hemant Deshpande

Hemant Deshpande, PMP has more than 17 years of experience working for various global MNC's. He has more than 10 years of experience in managing large transformation programs for Fortune 500 clients across verticals such as Banking, Finance, Insurance, Healthcare, Telecom and others. During his career he has worked across the geographies - North America, Europe, Middle East, and Asia Pacific. Hemant is an internationally Certified Executive Coach (CCA/ICF Approved) working with corporate leaders. He also provides Management Consulting and Training services. He is passionate about writing and regularly blogs and writes content for top websites. His motto in life - Making a positive difference.

Recommended Resources

Your One-Stop Solution to Understand Coin Change Problem

Your One-Stop Solution to Understand Coin Change Problem

Combating the Global Talent Shortage Through Skill Development Programs

Combating the Global Talent Shortage Through Skill Development Programs

What Is Problem Solving? Steps, Techniques, and Best Practices Explained

What Is Problem Solving? Steps, Techniques, and Best Practices Explained

One Stop Solution to All the Dynamic Programming Problems

One Stop Solution to All the Dynamic Programming Problems

The Ultimate Guide on Introduction to Competitive Programming

The Ultimate Guide to Top Front End and Back End Programming Languages for 2021

  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.

IMAGES

  1. Problem Solving Lesson 2

    problem solving and computing lesson 2

  2. Problem Solving Lesson 2

    problem solving and computing lesson 2

  3. Problem Solving

    problem solving and computing lesson 2

  4. Problem Solving and Computers

    problem solving and computing lesson 2

  5. PPT

    problem solving and computing lesson 2

  6. Exploring Computer Science

    problem solving and computing lesson 2

VIDEO

  1. Code.org Lesson 7.2B Conditionals Practice

  2. Unit 2 Lesson 8 Practice Problems

  3. Unit 2 Lesson 8 Practice Problems

  4. Initial & Final Values Problem Solving || Example 8.2 || LCA 8.2(2)(English)(Alexander & Sadiku)

  5. Unit 2 Lesson 9 Practice Problems IM® Algebra 2TM authored by Illustrative Mathematics®

  6. IGCSE Computer Science 2023-25

COMMENTS

  1. Lesson 2: The Problem Solving Process

    This lesson introduces the formal problem solving process that students will use over the course of the year, Define - Prepare - Try - Reflect. The lesson begins by asking students to brainstorm all the different types of problems that they encounter in everyday life. Students are then shown the four steps of the problem solving process and ...

  2. PDF Unit 2: Problem Solving

    1-2 Introduce data collection and problem solving. 3 Introduce the four steps of the problem solving process. 4-6 Apply the problem solving process. Use different strategies to plan and carry out the plan to solve several problems. 7-9 Reinforce the four steps of the problems solving process. 10-12 Count in the binary number system.

  3. PDF The Problem Solving Process

    The Problem Solving Process Unit 1 Lesson 2 Login to computer and code.org. Objectives Identify the four steps of the problem solving process ... Identify useful strategies within each step of the problem solving process All Computer Discovery Curriculum created by code.org. Problems Defined Examples of types of problems we could have Homework ...

  4. Computer Science Discoveries

    Problem Solving & Computing Use a problem-solving process to tackle puzzles, challenges, and real-world scenarios. Learn about computer input, output, storage, and processing to aid in problem-solving. ... Lesson Plans. Get step-by-step guidance, learning objectives, and assessment strategies for effective teaching.

  5. PDF An Introduction to Computer Science and Problem Solving

    COMP1405/1005 - An Introduction to Computer Science and Problem Solving Fall 2011 - 6-1.2 Writing Programs in Processing It is now time to start writing simple programs to solve simple problems. As mentioned, we will be using the Processing language (available for free from www.Processing.org for your PC, MAC or Linux system).

  6. Pilot

    Unit 1 - Lesson 2: Slideshow for presentation. docs.google.com Lesson 2 - instructions. Log on your computer Sit and listen for instructions Identify the four steps of the problem solving process Given a problem, identify individual actions that would fall within each step of the problem solving process Identify useful strategies within...

  7. Computer Science Fundamentals

    Learn to create computer programs, develop problem-solving skills, and work through fun challenges! Make games and creative projects to share with friends, family, and teachers. Explore course ... every lesson in CS Fundamentals contains mappings to the relevant CSTA standards. The summary of all CSTA mappings for each course can be found at ...

  8. How to think like a programmer

    Simplest means you know the answer (or are closer to that answer). After that, simplest means this sub-problem being solved doesn't depend on others being solved. Once you solved every sub-problem, connect the dots. Connecting all your "sub-solutions" will give you the solution to the original problem. Congratulations!

  9. Computational Thinking

    ISTE Standards (formerly NETS) 1.a - Apply existing knowledge to generate new ideas, products, or processes. 1.c - Use models and simulation to explore complex systems and issues. 2.d - Contribute to project teams to solve problems. 4.b - Plan and manage activities to develop a solution or complete a project.

  10. Fundamentals of Computing B- Lesson 2: The Problem Solving ...

    Study with Quizlet and memorize flashcards containing terms like Step 1, Step 2, Step 3 and more.

  11. Activity Guide

    Problem Solving and Computing - Lesson 2 Name(s)_____ Period _____ Date _____ Activity Guide - The Problem Solving Process The Problem Solving Process Having a strategy for approaching problems can help you develop new insights and come up with new and better solutions. ...

  12. Brilliant

    Brilliant - Build quantitative skills in math, science, and computer science with hands-on, interactive lessons. ... We make it easy to stay on track, see your progress, and build your problem-solving skills one concept at a time. Stay motivated. Form a real learning habit with fun content that's always well-paced, game-like progress tracking ...

  13. Problem Solving and Computing Flashcards

    Reflect. A step in the problem solving process in which you are comparing your results to the goals you set, determining what you can learn to do better next time, and identifying new problems that were discovered. Constraint. A limitation or restriction; something that holds you back. Strategy.

  14. Lecture 3: Problem Solving

    MIT OpenCourseWare is a web based publication of virtually all MIT course content. OCW is open and available to the world and is a permanent MIT activity

  15. Practice Computer Science Fundamentals

    3.2 Computer Science Fundamentals. Wrap your mind around computational thinking, from everyday tasks to algorithms. Computers use decision trees to turn many simple decisions into one big decision. Sometimes, the right way to solve a computational problem is by "brute force.". When Pierre the baker wants to get lots of things done, it helps ...

  16. Teach Computer Science

    It teaches problem solving and critical thinking, and enables students to actively participate in an increasingly digital society. Leverage comprehensive teaching resources In-depth lesson plans and flexible professional learning options ensure teachers with diverse backgrounds can successfully teach computer science.

  17. Exploring Computational Thinking

    This lesson plan presents students with the challenging problem of measuring a volume of water using containers of the wrong measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate the solution efficiencies and optimization in a simulation.

  18. Problem Solving and Computing

    The thinking work computers do to turn input into output. The 4 types of processing are. - if/then: something is true, do something else. -comparing: if something is true, do something else. - finding a match: search a list or group of things for match. - counting: keep track of how many something are. storage. Saving information for the future.

  19. SC.K2.CS-CS.2

    Number: SC.K2.CS-CS.2. Title: Problem solving and algorithms. Type: Standard. Subject: Science. Grade: K2. Body of Knowledge: Computer Science - Communication Systems and Computing (Discontinued after 2024-2025) Students will explore Artificial Intelligence (AI) and Machine Learning (ML) and pretrain a model to recognize and identify objects ...

  20. Problem Solving and Computing ('21-'22)

    Unit 1 - Problem Solving and Computing ('21-'22) Problem Solving and Computing is a highly interactive and collaborative introduction to the field of computer science, as framed within the broader pursuit of solving problems. You'll practice using a problem solving process to address a series of puzzles, challenges, and real world scenarios.

  21. How to Develop Problem Solving Skills in Programming

    The way to approach problems is the key to improving the skills. To find a solution, a positive mindset helps to solve problems quickly. If you think something is impossible, then it is hard to achieve. When you feel free and focus with a positive attitude, even complex problems will have a perfect solution.

  22. Copy of KB Activity Guide -Apps with Processing

    Problem Solving and Computing - Lesson 6. Name(s)_____ Period _____ Date _____ Activity Guide - Apps with Processing Key Vocabulary: Processing - The thinking work computers do to turn input into output. Apps and Processing. For each app, choose one type of processing it uses and explain how it helps turn the input into output. ...