Thinking Computationally

From Computer Science Wiki

Students must be able to demonstrate the connections between the components of a system they are modelling, and algorithms and processes that outline the requirements for the corresponding code that will be developed.[edit]

To demonstrate the connections between the components of a system and the algorithms and processes that outline the requirements for corresponding code, it is important to first identify the components of the system and their relationships with one another. This can involve creating a diagram or model of the system that shows the components and their connections.

Once the components and their relationships have been identified, the next step is to outline the algorithms and processes that will be used to implement the system. This can involve identifying the specific actions that need to be taken by each component, as well as the input and output data for each component.

To ensure that the code that is developed meets the requirements of the system, it is important to carefully document the algorithms and processes, including any assumptions or constraints that are involved. This documentation can then be used as a reference when developing the code, to ensure that it correctly implements the desired functionality.

In addition to documenting the algorithms and processes, it is also important to conduct testing to verify that the code meets the requirements of the system. This can involve creating test cases that exercise the various components and algorithms of the system to ensure that they are working correctly.

By carefully documenting the components, algorithms, and processes of a system, and verifying that the code meets the requirements through testing, it is possible to ensure that the system functions as intended.


Students must be able to select the appropriate kind of system diagram that facilitates the development of the corresponding code that will be developed.[edit]

There are several different types of system diagrams that can be used to facilitate the development of corresponding code. The appropriate type of diagram will depend on the specific needs and goals of the system being developed. Some common types of system diagrams include:

Data flow diagrams (DFDs): DFDs show the flow of data through a system and the transformation of data from one form to another. They can be used to understand the inputs, outputs, and processing steps involved in a system and to identify the data dependencies between different components.

Entity-relationship diagrams (ERDs): ERDs show the relationships between different entities in a system. They can be used to model the data structures of a system and to understand the relationships between different entities.

State diagrams: State diagrams show the states that a system or component can be in and the transitions between those states. They can be used to model the behavior of a system or component and to understand how it responds to different inputs and events.

Sequence diagrams: Sequence diagrams show the interactions between different components in a system and the order in which those interactions occur. They can be used to understand the flow of control and data between components and to identify the dependencies between different components.

By selecting the appropriate type of system diagram, it is possible to facilitate the development of corresponding code that correctly implements the desired functionality of the system.


Students must be able to discuss the advantages of using pseudocode in program development, and interpret and evaluate pseudocode in relation to a given algorithm or process.[edit]

Pseudocode is a type of informal, high-level programming language that is used to describe the steps of an algorithm or process. It is often used as a way to plan and document the logic of a program before the actual code is written, as it is easier to read and understand than actual code.

There are several advantages to using pseudocode in program development:

Improved readability: Pseudocode is often written in plain language and does not use the syntax and conventions of a specific programming language. This makes it easier for people who are not familiar with a particular programming language to understand the logic of the program.

Faster development: By using pseudocode to plan and document the logic of a program, it is possible to quickly iterate and refine the design of the program without the need to write and test actual code.

Improved communication: Using pseudocode can help to improve communication between team members, as it provides a common language that can be used to describe the logic of the program.

To interpret and evaluate pseudocode, it is important to understand the specific conventions and symbols that are used. For example, some common symbols used in pseudocode include:

  • "->" to indicate the flow of control
  • ":=" to indicate assignment
  • "if" and "else" to indicate conditional statements

By understanding these and other symbols and conventions, it is possible to interpret and evaluate pseudocode in relation to a given algorithm or process.