| (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. |
