Computing – What’s it about?

Year 7 and 8 Computer Science

In Years 7 and 8 students receive 1 hour of Computer Science per week. During this hour students are set a number of challenges that will help them to develop their abilities to use key computer Science techniques; abstraction, decomposition and algorithmic thinking. These activities are designed to be fun, engaging and challenging and can be worked on in school and at home as they are based around the Scratch website.

Scratch is a visual programming language and online community. Using Scratch, users can create online projects and make them into anything by coding with simple blocks. When they are done or when the desire to, they then share and can discuss their creations with each other. Developed by the Lifelong Kindergarten group at the Massachusetts Institute of Technology in the US.

Whilst Scratch is used in many Primary schools, at Newman we use this language as a way of embedding the core basics of computer programming. In particular students are explicitly taught the concepts of sequence, iteration, selection and assignment using an interface that is easy to understand and use.

https://scratch.mit.edu/

Year 7 – Challenges

E-Safety

In this Challenge students are asked to research, plan and design an animation informing Year 5 and Year 6 pupils of the dangers of using the internet and going online. Students also discuss Ethics and how to responsibly use the internet.

Simple Arcade Game Challenge

A simple arcade game is the next challenge. In this challenge, students have to create a game that allows the user to control a sprite using the cursor keys. The sprite is being chased by enemy sprites. If the enemy sprites touch the main sprite, an energy score should decrease by 1. The user sprite should also allow the user to shoot balls at the enemy sprites.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking

The Shark Game Challenge

In this scenario, students must design a working computer game that allows the user to control the movement of the shark on the y axis. A fish should appear on the right hand onf the screen and at random somewhere on the y axis. The fish should move across the screen. The purpose of the game is to “catch” the fish. A suitable variable should be used to keep score. Students need to think about what happens if the fish isn’t caught and what should happen if the score reaches 10.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking

Virtual Pet Challenge

In this challenge, the students are asked to make a Virtual Pet. The user should be able to keep the pet alive by interacting with it in some way. For example, if the user clicks on food, the pet should eat the food and thus satisfy its hunger. The challenge is designed to be very open ended and allow students to be as creative as their imagination will allow.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking

Bat Shooter Challenge

This challenge is a simple one. Can you design a game that allows the user to control the crosshairs and shoot the bats. The bats need to appear at random and move at random. You need to ensure that when the bat is hit, a suitable animation plays. The game should keep score and you should design a screen for winning the game.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking

Frogger – Crossy Road Challenge

Can you get the frog safely across the road? This is a take on an old classic arcade game. The frog can move left and right and forward. On the roads are multiple lanes of traffic moving in both directions. You need to think about how the Game Over Screen, Star Screen and Winning Game Screens too.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking

Walk the Plank Challenge

In this game, the user needs to guess a random number. If they are too high or too low, the character should let the user know. For every wrong answer, the sprite should “walk the plank” The aim of the game is for the user to guess the number before they reach the end of the plank and fall in the water

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Flappy Bird Challenge

Flappy Bird took the mobile phone app world by storm. At one point, its creator Dong Nguyen was making £30 000 per day on the back of its success.

The challenge is to create a Flappy Bird clone.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Abstraction, Decomposition, Algorithmic thinking.
  • Animations

Number Systems

Finally, students will look at number systems and how computers use binary and hexadecimal number systems in the real world

Year 8

Pop Quiz Challenge

In this challenge, the quizmaster asks the user a number of questions. The user has to answer the questions and the game keeps score. Students need to develop sub-routines for animations that should appear when the answers are correct and when the answers are wrong. Lastly, the game should give the user feedback on their performance at the end.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Maths Quiz Challenge

In this challenge, the quizmaster gives the user the choice of completing addition, subtraction or multiplication questions. The game should then generate 10 questions at random and the user should answer them. The game should keep score and give the user suitable feedback. Once more, the user should get feedback at the end of the quiz as to how they have done.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Numerical Operators
  • Abstraction, Decomposition, Algorithmic thinking

Horizontal Scroller Challenge

In this challenge, the user controls a sprite that is flying across a cityscape. The sprite should be able to move up and down. The aim of the game is for the sprite to collect “Power-Ups” and avoid certain obstacles. The game should keep track of lives and player score and the user should lose a life as they hit certain obstacles.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Pong Challenge

In this challenge, the user controls a bat sprite on the bottom of the stage. The sprite should be able to move left and right. The aim of the game is to keep the ball “alive” and hit certain targets to accumulate points.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Dog Hurdles Challenge

In this challenge, the user controls a sprite that is flying across a cityscape. The sprite should be able to move up and down. The aim of the game is for the sprite to collect “Power-Ups” and avoid certain obstacles. The game should keep track of lives and player score and the user should lose a life as they hit certain obstacles.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Space Cadet

A rocket is marooned on a distant planet with limited fuel. Can you get the astronauts safely home? In this challenge, you must code the game to allow the user to move the rocket using the space key. The arrow/cursor keys are use to control the direction of the rocket. You must ensure that gravity means the rocket is always being pulled back towards the planet. If the rocket hits an obstacle, the game is over. Once the rocket arrives at the home icon, the astronauts have been saved.

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Pacman Challenge

Created by Japanese video game designer Toru Iwatani, Pacman was licensed for distribution in the United States by Midway Games and released in October 1980. … Pac-Man is often credited with being a landmark in video game history and is among the most famous arcade games of all time.The challenge is to code the game for yourself!

This challenge covers the following Computer Science skills:-

  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Programming in Python

After having completed many challenges in Scratch that have developed their ability to code using key coding concepts, students are introduced to Python. Students will go over the main programming concepts outlined below and be taught how to complete these in Python

  • Casting
  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Year 9

At the end of Year 8, students can opt to choose Computer Science in Year 9. In Year 9, students will receive 2 hours of CS per week. During this time, they will start the first unit of work for GCSE based on Computer Systems.

The topic breakdowns are shown below:

1.1 – Systems Architecture
The purpose of the CPU
Von Neumann architecture:
MAR (Memory Address Register)
MDR (Memory Data Register)
Program Counter
Accumulator
Common CPU components and their function:
ALU (Arithmetic Logic Unit)
CU (Control Unit)
Cache
The function of the CPU as fetch and execute instructions stored in memory
How common characteristics of CPUs affect their performance:
clock speed
cache size
number of cores
Embedded systems:
purpose of embedded systems
examples of embedded sytems.
1.2 Memory
The difference between RAM and ROM
The purpose of ROM in a computer system
The purpose of RAM in a computer system
The need for virtual memory
Flash memory.
1.3 Storage
The need for secondary storage
Data capacity and calculation of data capacity requirements
Common types of storage:
optical
magnetic
solid state
capacity
speed
Suitable storage devices and storage media for a given application, and the advantages and disadvantages of these, using characteristics:
reliability
portability
durability
cost.
1.8 Ethical, legal, cultural and environmental concerns
How to investigate and discuss Computer Science technologies while considering:
Ethical issues
Legal issues
Cultural issues
Environmental issues.
Privacy issues.
How key stakeholders are affected by technologies
Environmental impact of Computer Science
Cultural implications of Computer Science
Open source vs proprietary software
Legislation relevant to Computer Science:
The Data Protection Act 1998
Creative Commons Licensing
Computer Misuse Act 1990
Copyright Designs and Patents Act 1988
Freedom of Information Act 2000.

Programming in Python

Students will also continue to program in Python, completing challenges to help solidify the concepts explored in lower school.

  • Casting
  • Assigning and manipulating of variables.
  • Iteration
  • Selection
  • Sub-Routines (Procedures)
  • Sequencing
  • Comparison Operators
  • Abstraction, Decomposition, Algorithmic thinking

Year 10 and Year 11

In Computer Science students follow the GCSE OCR Computer Science Course. The course is made up of two components both of which are worth 50% of the final mark.

Component 1: Computer systems

This component introduces students to the central processing unit (CPU), computer memory and storage, wired and wireless networks, network topologies, system security and system software. It also looks at ethical, legal, cultural and environmental concerns associated with computer science.

Component 2: Computational thinking, algorithms and programming

In this component, students apply knowledge and understanding gained in component 01. They develop skills and understanding in computational thinking: algorithms, programming techniques, producing robust programs, computational logic, translators and data representation. The skills and knowledge developed within this component will support the learner when completing the Programming Project.

Programming Project

As part of the course, all students are expected to use OCR Programming Project tasks to develop their practical ability in the skills developed in components 01 and 02. They will have the opportunity to define success criteria from a given problem, and then create suitable algorithms to achieve the success criteria. Students then code their solutions in a suitable programming language, and check its functionality using a suitable and documented test plan. Finally they will evaluate the success of their solution and reflect on potential developments for the future.

A Breakdown of the syllabus is given below for each component

Component 1: Computer Systems

1.1 – Systems Architecture
The purpose of the CPU
Von Neumann architecture:
MAR (Memory Address Register)
MDR (Memory Data Register)
Program Counter
Accumulator
Common CPU components and their function:
ALU (Arithmetic Logic Unit)
CU (Control Unit)
Cache
The function of the CPU as fetch and execute instructions stored in memory
How common characteristics of CPUs affect their performance:
clock speed
cache size
number of cores
Embedded systems:
purpose of embedded systems
examples of embedded sytems.
1.2 Memory
The difference between RAM and ROM
The purpose of ROM in a computer system
The purpose of RAM in a computer system
The need for virtual memory
Flash memory.
1.3 Storage
The need for secondary storage
Data capacity and calculation of data capacity requirements
Common types of storage:
optical
magnetic
solid state
capacity
speed
Suitable storage devices and storage media for a given application, and the advantages and disadvantages of these, using characteristics:
reliability
portability
durability
cost.
1.4 Wired & Wireless Networks
Types of networks:
LAN (Local Area Network)
WAN (Wide Area Network)
Factors that affect the performance of networks
The different roles of computers in a client-server and a peer-to-peer network
The hardware needed to connect stand-alone computers into a Local Area Network:
Wireless access points
Routers/switches
NIC (Network Interface Controller/Card)
Transmission media
The internet as a worldwide collection of computer networks:
DNS (Domain Name Server)
hosting
the cloud
The concept of virtual networks.
1.5 Network Topologies, Protocol and Layers
Star and Mesh network topologies
Wifi
Frequency and channels
Encryption
ethernet
The uses of IP addressing, MAC addressing, and protocols including:
TCP/IP (Transmission Control Protocol/Internet Protocol)
HTTP (Hyper Text Transfer Protocol)
HTTPS (Hyper Text Transfer Protocol Secure)
FTP (File Transfer Protocol)
POP (Post Office Protocol)
IMAP (Internet Message Access Protocol)
SMTP (Simple Mail Transfer Protocol)
The concept of layers
Packet switching.
1.6 – System Security
Forms of attack
Threats posed to networks:
malware
phishing
people as the ‘weak point’ in secure systems (social engineering)
brute force attacks
denial of service attacks
data interception and theft
the concept of SQL injection
poor network policy
Identifying and preventing vulnerabilities:
penetration testing
network forensics
network policies
anti-malware software
firewalls
user access levels
passwords
encryption.
1.7 – Systems Software
The purpose and functionality of systems software
operating systems:
user interface
memory management/multitasking
peripheral management and drivers
user management
file management
Utility system software:
encryption software
defragmentation
data compression
the role and methods of backup:
full and incremental
1.8 Ethical, legal, cultural and environmental concerns
How to investigate and discuss Computer Science technologies while considering:
Ethical issues
Legal issues
Cultural issues
Environmental issues.
Privacy issues.
How key stakeholders are affected by technologies
Environmental impact of Computer Science
Cultural implications of Computer Science
Open source vs proprietary software
Legislation relevant to Computer Science:
The Data Protection Act 1998
Creative Commons Licensing
Computer Misuse Act 1990
Copyright Designs and Patents Act 1988
Freedom of Information Act 2000.

Component 2: COMPUTATIONAL THINKING, ALGORITHMS AND PROGRAMMING

2.1 – Algorithms
Computational thinking:
Abstraction
Decomposition
Algorithmic thinking
Standard searching algorithms:
Binary search
Linear search
Standard sorting algorithms:
Bubble sort
Merge sort
Insertion sort
How to produce algorithms using:
Pseudocode
Using flow diagrams
Interpret, correct or complete algorithms.
2.2 – Programming techniques
The use of variables, constants, operators, inputs, outputs and assignments
The use of the three basic programming constructs used to control the flow of a program:
sequence
selection
iteration (count and condition controlled loops)
The use of basic string manipulation
The use of basic file handling operations:
open
read
write
close
The use of records to store data
The use of SQL to search for data
The use of arrays (or equivalent) when solving problems, including both one and two dimensional arrays
How to use sub programs (functions and procedures) to produce structured code
The use of data types:
integer
real
Boolean
character and string
casting
The common arithmetic operators
The common Boolean operators.

2.3. Programming Project – All students need to complete this.

2.4 – Computational Logic
Why data is represented in computer systems in binary form
Simple logic diagrams using the operations AND, OR and NOT
Truth tables
Combining Boolean operators using AND, OR and NOT to two levels
Applying logical operators in appropriate truth tables to solve problems
Applying computing-related mathematics:
+
/
*
Exponentiation (^)
MOD
DIV
2.5 – Translators and Facilitators of Language
Characteristics and purpose of different levels of programming language, including low level languages
The purpose of translators
The characteristics of an assembler, a compiler and an interpreter
Common tools and facilities available in an integrated development environment (IDE):
editors
error diagnostics
run-time environment
translators.
2.6 – Data Representation
Units
Bit, nibble, byte, kilobyte, megabyte, gigabyte, terabyte, petabyte
How data needs to be converted into a binary format to be processed by a computer.
Numbers
How to convert positive denary whole numbers (0–255) into 8 bit binary numbers and vice versa
How to add two 8 bit binary integers and explain overflow errors which may occur
Binary shifts
How to convert positive denary whole numbers (0–255) into 2 digit hexadecimal numbers and vice versa
Check digits.
How to convert from binary to hexadecimal equivalents and vice versa
Characters
The use of binary codes to represent characters
The term ‘character-set’
The relationship between the number of bits per character in a character set and the number of characters which can be represented (for example ASCII, extended ASCII and Unicode).
Images
How an image is represented as a series of pixels represented in binary
Metadata included in the file
The effect of colour depth and resolution on the size of an image file.
Sound
How sound can be sampled and stored in digital form
How sampling intervals and other factors affect the size of a sound file and the quality of its playback:
Sample size
Bit rate
Sampling frequency.
Compression
Need for compression
Types of compression:
Lossy
Lossless.