What Is Computational Thinking?
Computational thinking is a high-level thought process that considers the world in computational terms. It begins with learning to see opportunities to compute something, and it develops to include such considerations as computational complexity; utility of approximate solutions; computational resource implications of different algorithms; selection of appropriate data structures; and ease of coding, maintaining, and using the resulting program. Computational thinking is applicable across disciplinary domains because it takes place at a level of abstraction where similarities and differences can be seen in terms of the computational strategies available. A person skilled in computational thinking is able to harness the power of computing to gain insights. At its best, computational thinking is multidisciplinary and cross-disciplinary thinking with an emphasis on the benefits of computational strategies to augment human insights. Computational thinking is a way of looking at the world in terms of how information can be generated, related, analyzed, represented, and shared.
Computational Thinking in This Module
• Describe the problem you want to solve.
• Logically organize and obtain data.
• Analyze the problem, think of different ways to solve it, and think of ways to use computers to help solve it—think outside the box.
• Use abstraction, estimates, and simplifying assumptions to formulate a model to help solve the problem.
• Use spreadsheets as tools.
• Implement various solutions with the goal of achieving the most effective and (sometimes) most efficient solution.
• Construct ways to handle uncertainty in the solution to increase your confidence in the solution.
Recursion can be used in many areas, from modeling population growth or the spread
of disease to determining how much money you will have in an account at retirement.
The purpose of this module is to provide a general background on the process of
recursion, a method for solving problems where the solution to a problem depends on
solutions to smaller instances of the same problem. A recursive process is one in which
objects (a whole system) are defined in terms of other objects (stages of the system) of
the same type. The whole system can be built knowing only a few initial values or
stages of the system and applying a small set of rules. Computers routinely use
recursion in performing many standard operations or processes.