(a) |
Explore the computational thinking concepts of decomposition, pattern recognition, abstraction and algorithm design. |
(b) |
Provide examples of the importance of computational thinking in many fields (e.g., physics, biology, mathematics, geology, linguistics, psychology and economics). |
(c) |
Generalize a specific solution to a problem to solve multiple problems of similar type (e.g., moving a character in a grid world to the origin regardless of its initial position). |
(d) |
Design algorithms that allow computers and humans to solve problems effectively. |
(e) |
Use flowcharts, pseudocode and/or visual programming environments to model the logic of algorithms. |
(f) |
Analyze and implement programs with the goal of improving code to achieve the most elegant solution. |
(g) |
Discuss the advantages of subdividing a problem into smaller components. |
(h) |
Analyze existing code to predict output, and verify the prediction if possible. |
(i) |
Discuss the strenghts and limitations of visual programming environments versus text-based languages. |