Principles in Computational Thinking
Thinking procedurally: Identify procedures to solving a problem. Evaluate the order which will results in the required outcome.
Thinking logically: Identify when decision-making is required in a specified situation. Identify the condition associated with a given decision
Thinking ahead: Identify the inputs and outputs required in a solution.
Thinking abstractly: Identify examples of abstraction. Selecting pieces of information relevant to the solution of a problem.
Thinking concurrently: (2nd Semester)
Thinking recursively (HL only): (2nd Year 1st Semester)
Discuss an algorithm to solve a specific problem. Students should be expected to discuss the differences between algorithms, including both standard and novel algorithms. For example, discussing the advantages and disadvantages of using a binary search as opposed to a sequential search.
Suggest suitable algorithms to solve a specific problem.
Construct pseudocode to represent an algorithm. Using flow charts to solve problems in real-life contexts, patterns and sequences, logic, algorithms.
Analyse an algorithm presented as a flow chart. xamination questions may involve variables, calculations, simple and nested loops, simple conditionals and multiple or nested conditionals. This would include tracing an algorithm as well as assessing its correctness. Students will not be expected to construct a flow chart to represent an algorithm in an externally assessed component.
Analyse an algorithm presented as pseudocode. Examination questions may involve variables, calculations, simple and nested loops, simple conditionals and multiple or nested conditionals. This would include tracing an algorithm as well as assessing its correctness.
Deduce the efficiency of an algorithm in the context of its use. Students should understand and explain the difference in efficiency between a single loop, nested loops, a loop that ends when a condition is met or questions of similar complexity. Students should also be able to suggest changes in an algorithm that would improve efficiency, for example, using a flag to stop a search immediately when an item is found, rather than continuing the search through the entire list.
Determine the number of times a step in an algorithm will be performed for given input data. Examination questions will involve specific algorithms (in pseudocode/ flow charts), and students may be expected to give an actual number (or range of numbers) of iterations that a step will execute.
Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections. Students will only be required to analyse flow charts in the externally assessed components. Students will be expected to write and analyse pseudocode in the externally assessed components.
Analyze and algorithm presented as a pseudocode. Examination questions may involve variables, calculations, simple and nested loops, simple conditionals and multiple or nested conditionals. This would include tracing an algorithm as well as assessing its correctness.
Construct pseudocode to represent an algorithm.
This unit will contain activities on: constructing algorithms, tracing algorithms (trace table), contructing pseudocodes, constructing flowcharts and uml diagrams
Terms
block-arrow diagram, sub-procedure, decision-making, condition, logical rules,
cache, pre-fetch, library, procedure, pre-condition, abstraction, computational, object, collection, algorithm, decomposition