Topic 4: Computational thinking, problem-solving and programming

Objectives:

4.1 General Principles

Thinking Procedureally
4.1.1Identify the procedure appropriate to solving a problem.
4.1.2Evaluate whether the order in which activities are undertaken will result in the required outcome.
4.1.3Explain the role of sub-procedures in solving a problem.
Thinking Logically
4.1.4Identify when decision-making is required in a specified situation.
4.1.5Identify the decisions required for the solution to a specified problem.
4.1.6Identify the condition associated with a given decision in a specified problem.
4.1.7Explain the relationship between the decisions and conditions of a system.
4.1.8Deduce logical rules for real-world situations.
Thinking Ahead
4.1.9Identify the inputs and outputs required in a solution.
4.1.10Identify pre-planning in a suggested problem and solution.
4.1.11Explain the need for pre-conditions when executing an algorithm.
4.1.12Outline the pre- and post-conditions to a specified problem.
4.1.13Identify exceptions that need to be considered in a specified problem solution.
Thinking Concurrently
4.1.14Identify the parts of a solution that could be implemented concurrently.
4.1.15Describe how concurrent processing can be used to solve a problem.
4.1.16Evaluate the decision to use concurrent processing in solving a problem.
Thinking Abstractly
4.1.17Identify examples of abstraction.
4.1.18Explain why abstraction is required in the derivation of computational solutions for a specified situation.
4.1.19Construct an abstraction from a specified situation.
4.1.20Distinguish between a real-world entity and its abstraction.

4.2 Connecting Computational Thinking and Program Design

4.2.1Describe the characteristics of standard algorithms on linear arrays.
4.2.2Outline the standard operations of collections.
4.2.3Discuss an algorithm to solve a specific problem.
4.2.4Analyse an algorithm presented as a flow chart.
4.2.5Analyse an algorithm presented as pseudocode.
4.2.6Construct pseudocode to represent an algorithm.
4.2.7Suggest suitable algorithms to solve a specific problem.
4.2.8Deduce the efficiency of an algorithm in the context of its use.
4.2.9Determine the number of times a step in an algorithm will be performed for given input data.

4.3 Introduction to Programming

Nature of Programming Languages
4.3.1State the fundamental operations of a computer.
4.3.2Distinguish between fundamental and compound operations of a computer.
4.3.3Explain the essential features of a computer language.
4.3.4Explain the need for higher level languages.
4.3.5Outline the need for a translation process from a higher level language to machine executable code.
Use of Programming Languages
4.3.6Define the terms: variable, constant, operator, object.
4.3.7Define the operators =, ., <, <=, >, >=, mod, div.
4.3.8Analyse the use of variables, constants and operators in algorithms.
4.3.9Construct algorithms using loops, branching.
4.3.10Describe the characteristics and applications of a collection.
4.3.11Construct algorithms using the access methods of a collection.
4.3.12Discuss the need for sub-programmes and collections within programmed solutions.
4.3.13Construct algorithms using predefined sub-programmes, one-dimensional arrays and/or collections.