Computational thinking, problem-solving and programming: Difference between revisions
Line 16: | Line 16: | ||
=== Thinking procedurally === | === Thinking procedurally === | ||
* [[Procedural thinking]] | |||
* [[Evaluating process]] | |||
* [[Sub-process]] | |||
=== Thinking logically === | === Thinking logically === |
Revision as of 15:12, 12 April 2016
This is one of the most important ideas you can take with you:
Decompose a problem into smaller parts, model a problem with flowcharts. Learn to think sequentially
![](/images/c/c6/Computation.png)
Computational Thinking (CT) is a process that generalizes a solution to open-ended problems. Open-ended problems encourage full, meaningful answers based on multiple variables, which require using decomposition, data representation, generalization, modeling, and algorithms found in Computational Thinking. Computational Thinking requires the decomposition of the entire decision making process, the variables involved, and all possible solutions, ensuring that the right decision is made based on the corresponding parameters and limitations of the problem. The term computational thinking was first used by Seymour Papert in 1980[1] and again in 1996.[2] Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency[2]
The big ideas in computational thinking[edit]
Thinking procedurally[edit]
Thinking logically[edit]
4.1.4 Identify when decision-making is required in a specified situation. Level: 2 4.1.5 Identify the decisions required for the solution to a specified problem. Level: 2 4.1.6 Identify the condition associated with a given decision in a specified problem. Level: 2 4.1.7 Explain the relationship between the decisions and conditions of a system. Level: 3 4.1.8 Deduce logical rules for real-world situations. Level: 3
Thinking ahead[edit]
4.1.9 Identify the inputs and outputs required in a solution. Level: 2 4.1.10 Identify pre-planning in a suggested problem and solution. Level: 2 4.1.11 Explain the need for pre-conditions when executing an algorithm. Level: 3 4.1.12 Outline the pre- and post-conditions to a specified problem. Level: 2 4.1.13 Identify exceptions that need to be considered in a specified problem solution. Level: 2
Thinking concurrently[edit]
4.1.14 Identify the parts of a solution that could be implemented concurrently. Level: 2 4.1.15 Describe how concurrent processing can be used to solve a problem. Level: 2 4.1.16 Evaluate the decision to use concurrent processing in solving a problem. Level: 3
Thinking abstractly[edit]
4.1.17 Identify examples of abstraction. Level: 2 4.1.18 Explain why abstraction is required in the derivation of computational solutions for a specified situation. Level: 3 4.1.19 Construct an abstraction from a specified situation. Level: 3 4.1.20 Distinguish between a real-world entity and its abstraction. Level: 2
Programming Design[edit]
4.2.1 Describe the characteristics of standard algorithms on linear arrays. Level: 2 4.2.2 Outline the standard operations of collections. Level: 2 4.2.3 Discuss an algorithm to solve a specific problem. Level: 3 4.2.4 Analyse an algorithm presented as a flow chart. Level: 3 4.2.5 Analyse an algorithm presented as pseudocode. Level: 3 4.2.6 Construct pseudocode to represent an algorithm. Level: 3 4.2.7 Suggest suitable algorithms to solve a specific problem. Level: 3 4.2.8 Deduce the efficiency of an algorithm in the context of its use. Level: 3 4.2.9 Determine the number of times a step in an algorithm will be performed for given input data. Level: 3
Introduction to Programming[edit]
- Fundamental operations
- Compound operations
- What is a programming language?
- High level languages
- Low level languages
- Translating high-level code to low-level code
Use of programming languages[edit]
- Variables (See also: data types and primitive data types)
- Constants (See also: data types and primitive data types)
- Objects (See also: data types and primitive data types)
- Operators
- Algorithms
- Collections
- Functions