- Edexcel GCSE Computer Science 1CP2 (from 2020)
- >
- Teacher Pack: Edexcel - Topic 1 & 6 Computational Thinking and Programming 1CP2 (from 2020)
Teacher Pack: Edexcel - Topic 1 & 6 Computational Thinking and Programming 1CP2 (from 2020)
The resources within this Teacher Pack cover all aspects of the specification in relation to Edexcel GCSE Computer Science 1CP2 (from 2020) topic 1 and topic 6.
These two topics have been combined so that students can learn about algorithms and at the same time have the opportunity to understand how algorithms can then be developed into programs. The programming language used is Python.
It includes:
· Teaching PowerPoints (including checkpoint questions and answers)
· Student PowerPoints (Including checkpoint questions, but omits the answers)
· Homework/Classwork Activities (+ mark schemes)
o Decomposition and Abstraction
o Flowcharts and Programs
o Sorting Data
o Sorting and Searching Programs
o Selection
o Arrays (Lists)
o Functions
o Improving Programs
o Testing
· End of unit tests (+ mark schemes)
Content Covered:
Topic 1
· understand the benefit of using decomposition and abstraction to model aspects of the real world and analyse, understand and solve problems
· understand the benefits of using subprograms
· be able to follow and write algorithms (flowcharts, written descriptions, draft program code or assessment reference language) that use sequence, selection, repetition (count-controlled, pre-conditioned, post-conditioned) and iteration (over every item in a data structure), and input, processing and output to solve problems
· understand the need for and be able to follow and write algorithms that use variables and constants and one- and two-dimensional data structures (strings, records, arrays)
· understand the need for and be able to follow and write algorithms that use arithmetic operators (add, subtract, divide, multiply, modulus, integer division), relational operators (equal to, less than, greater than, not equal to, less than or equal to, greater than or equal to) and logical operators (AND, OR, NOT)
· be able to determine the correct output of an algorithm for a given set of data and use a trace table to determine what value a variable will hold at a given point in an algorithm
· be able to identify and correct errors (logic, runtime) in algorithms
· understand how standard algorithms (bubble sort, merge sort, linear search, binary search) work
· be able to use logical reasoning and test data to evaluate an algorithm’s fitness for purpose and efficiency (number of compares, number of passes through a loop, use of memory)
· be able to apply logical operators (AND, OR, NOT) in appropriate truth tables to solve problems
Topic 6
· be able to use decomposition and abstraction to analyse, understand and solve problems
· be able to read, write, analyse and refine programs written in a high-level programming language
· be able to convert algorithms (flowcharts, written descriptions) into programs and convert programs into algorithms
· be able to use techniques (layout, comments, meaningful identifiers, white space) to make programs easier to read, understand and maintain
· be able to identify, locate and correct program errors (logic, syntax, runtime)
· be able to use logical reasoning and test data to evaluate a program’s fitness for purpose and efficiency (number of compares, number of passes through a loop, use of memory)
· understand the function of and be able to identify the structural components of programs (constants, variables, type declarations and initialisations, assignment statements, command sequences, selection, repetition, iteration, data structures, subprograms, parameters, input/output)
· be able to write programs that make appropriate use of sequencing, selection, repetition (count-controlled, pre-conditioned, post-conditioned), iteration (over every item in a data structure) and single entry/exit points from code blocks and subprograms
· be able to write programs that make appropriate use of primitive data types (integer, real, Boolean, char) and one-and two-dimensional structured data types (string, array, record)
· be able to write programs that make appropriate use of variables and constants
· be able to write programs that manipulate strings (length, position, substrings, case conversion)
· be able to write programs that accept and respond appropriately to user input
· be able to write programs that read from and write to comma separated value text files
· understand the need for and be able to write programs that implement validation (length check, presence check, range check, pattern check) understand the need for and be able to write programs that implement authentication (ID and password, lookup)
· be able to write programs that use arithmetic operators (add, subtract, divide, multiply, modulus, integer division)
· be able to write programs that use relational operators (equal to, less than, greater than, not equal to, less than or equal to, greater than or equal to)
· be able to write programs that use logical operators (AND, OR, NOT)
· be able to write programs that use pre-existing and user-devised subprograms (procedures, functions)
· be able to write subprograms (procedures, functions) using parameters to pass data from a calling program into a subprogram
· understand the difference between and be able to write programs that make appropriate use of global and local variables