Thinking like a computer scientist means more than being able to program a computer. Computational Thinking skills enable students to think at multiple levels of abstraction so they can confidently solve complex problems and design systems. This is a collection of resources that may be used to teach students CT skills.
The resources in this collection will aid in teaching the concept of decomposition to your students.
The late Stanford University Professor George Pólya once said, \"If you can\'t solve a problem, then there is an easier problem you can solve: find it.\" This advice can be applied to any problem. For example, how does one go about eating an elephant? One mouthful at a time! This goofy analogy actually provides great insight into the first step of problem solving through Computational Thinking. Big, complex problems are comprised of smaller, and more easily solved subproblems or tasks. The process/strategy of logically identifying these smaller problems and determining how to use the combined solutions to solve the bigger problem is called decomposition.
Algorithms are step by step instructions to get something done or the set of rules describing how something works. A recipe, or a set of dance steps, or the storyboard for an animation are algorithms. This collection includes resources that will help in teaching algorithm design to your students.
This collection includes resources that will be helpful in teaching students the concept of Pattern Recognition. Being able to recognize patterns is a fundamental step in the process of problem solving with computational thinking because the patterns help you determine what operations can and need to be done. This is critical in moving forward in computational thinking, especially if the goal is utilizing computers to automate and streamline a process. If the same operation occurs again and again, it may be able to be entered once and repeated.
This collection includes resources you may use when teaching this concept to your students. The key to abstraction is to be able to identify and filter out or ignore the details not necessary to solve the problem. From there, a model (equation, image, word, simulation, etc.) can be developed to represent all the important variables. A variable is a changing value that can be represented by a number, letter, word, blank, image, etc. Often, the value of one variable will determine, or be dependent upon, another. In these examples, you can see how the value of the second variable, or input, is dependent on the value of the first variable or input. Abstraction allows you to create a generic representation of a problem.