{"ad_unit_id":"App_CourseOverview_RHS","width":300,"height":250,"sizes":"[[[0, 0], [[300, 250]]]]","custom":[{"key":"env","value":"production"},{"key":"uauth","value":"f"},{"key":"ulang","value":"en"}]}

Topic 1: Problem solving
1.1 Algorithms
1.1.1 understand what an algorithm is, what algorithms are used for and be able to interpret algorithms (flowcharts, pseudo- code, written descriptions, program code)
1.1.2 understand how to create an algorithm to solve a particular problem, making use of programming constructs (sequence, selection, iteration) and using appropriate conventions (flowchart, pseudo-code, written description, draft program code)
1.1.3 understand the purpose of a given algorithm and how an algorithm works
1.1.4 understand how to determine the correct output of an algorithm for a given set of data
1.1.5 understand how to identify and correct errors in algorithms
1.1.6 understand how to code an algorithm in a high-level language
1.1.7 understand how the choice of algorithm is influenced by the data structures and data values that need to be manipulated
1.1.8 understand how standard algorithms (bubble sort, merge sort, linear search, binary search) work
1.1.9 be able to evaluate the fitness for purpose of algorithms in meeting specified requirements efficiently using logical reasoning and test data
1.2 Decomposition and abstraction
1.2.1 be able to analyse a problem, investigate requirements (inputs, outputs, processing, initialisation) and design solutions
1.2.2 be able to decompose a problem into smaller sub-problems
1.2.3 understand how abstraction can be used effectively to model aspects of the real world
1.2.4 be able to program abstractions of real-world examples
Topic 2: Programming
2.1 Develop code
2.1.1 be able to write programs in a high-level programming language
2.1.2 understand the benefit of producing programs that are easy to read and be able to use techniques (comments, descriptive names (variables, constants, subprograms), indentation) to improve readability and to explain how the code works
2.1.3 be able to differentiate between types of error in programs (logic, syntax, runtime)
2.1.4 be able to design and use test plans and test data (normal, boundary, erroneous)
2.1.5 be able to interpret error messages and identify, locate and fix errors in a program
2.1.6 be able to determine what value a variable will hold at a given point in a program (trace table)
2.1.7 be able to determine the strengths and weaknesses of a program and suggest improvements
2.2 Constructs
2.2.1 understand the structural components of a program (variable and type declarations, command sequences, selection, iteration, data structures, subprograms)
2.2.2 be able to use sequencing, selection and iteration constructs in their programs
2.3 Data types and structures
2.3.1 understand the need for, and understand how to use, data types (integer, real, Boolean, char)
2.3.2 understand the need for, and understand how to use, data structures (records, one-dimensional arrays, two-dimensional arrays)
2.3.3 understand the need for, and how to manipulate, strings
2.3.4 understand the need for, and how to use, variables and constants
2.3.5 understand the need for, and how to use, global and local variables when implementing subprograms
2.4 Input/output
2.4.1 understand how to write code that accepts and responds appropriately to user input
2.4.2 understand the need for, and how to implement, validation
2.4.3 be able to write code that reads/writes from/to a text file
2.5 Operators
2.5.1 understand the purpose of, and how to use, arithmetic operators (add, subtract, divide, multiply, modulus, integer division)
2.5.2 understand the purpose of, and how to use, relational operators (equal to, less than, greater than, not equal to, less than or equal to, greater than or equal to)
2.5.3 understand the purpose of, and how to use, logic operators (AND, OR, NOT)
2.6 Subprograms
2.6.1 understand the benefits of using subprograms and be able to write code that uses user-written and pre-existing (built- in, library) subprograms
2.6.2 understand the concept of passing data into and out of subprograms (procedures, functions)
2.6.3 be able to create subprograms that use parameters
Topic 3: Data
3.1Binary
3.1.1 understand that computers use binary to represent data (numbers, text, sound, graphics) and program instructions
3.1.2 understand how computers represent and manipulate numbers (unsigned integers, signed integers (sign and magnitude, two’s complement))
3.1.3 be able to convert between binary and denary whole numbers (0–255)
3.1.4 understand how to perform binary arithmetic (add, shifts (logical and arithmetic)) and understand the concept of overflow
3.1.5 understand why hexadecimal notation is used and be able to convert between hexadecimal and binary
3.2 Data representation
3.2.1 understand how computers encode characters using ASCII
3.2.2 understand how bitmap images are represented in binary (pixels, resolution, colour depth)
3.2.3 understand how sound, an analogue signal, is represented in binary
3.2.4 understand the limitations of binary representation of data (sampling frequency, resolution) when constrained by the number of available bits
3.3 Data storage and compression
3.3.1 understand how to convert between the terms: bit, nibble, byte, kilobyte (KB), megabyte (MB), gigabyte (GB), terabyte (TB)
3.3.2 understand the need for data compression and methods of compressing data (lossless, lossy) and that JPEG and MP3 are examples of lossy algorithms
3.3.3 understand how a lossless, run-length encoding (RLE) algorithm works
3.3.4 understand that file storage is measured in bytes and be able to calculate file sizes
3.4 Encryption
3.4.1 understand the need for data encryption
3.4.2 understand how a Caesar cipher algorithm works
3.5 Databases
3.5.1 understand the characteristics of structured and unstructured data
3.5.2 understand that data can be decomposed, organised and managed in a structured database (tables, records, fields, relationships, keys)

Register for free tools and resources

- Build free Mind Maps, Flashcards, Quizzes and Notes
- Create, discover and share resources
- Print & Pin great learning resources