These are some of the programming tasks that I give to my GCSE students to practise their skills once they have mastered the basics. As it tends to suggest a solution, I rarely use PRIMM at this stage - I discuss possible solutions and techniques at the start of the lesson and recap techniques as necessary. I would encourage the more confident students to come up with their own solutions, possibly using techniques such as recursion and object-oriented programming.

Discussion before the task would include questions such as:

- What data do I need to store?
- Where will that data come from?
- Do I need to repeat any steps? How many times?
- Do I need to make any decisions? How will I make them? Can I avoid using if?
- Will the program always do exactly the same thing? Might randomness be necessary/desirable?
- Are any special mathmatical techniques required?

I have not included tasks from the OCR Coding Challenges, but I have included two from Advent of Code so that students don't need to log in to get the data files. I came up with a lot of these ideas myself, but I can't remember where some of them came from, so please let me know if any of them is yours and I'll credit you. Some solutions can be found on the programming examples page.

A lot of the tasks are described using a series of numbered points. The idea is that students start with number one and go as far as they are comfortable with. They will be familiar with this idea from Maths homeworks with Bronze, Silver and Gold questions.

There is also a Python guide for GCSE (aimed at OCR as it contains some ERL, but you can edit that out).

- 100 Doors†
- 1976
- 21 Game
- 21st Century Modulos
- Arboreal Symmetry
- Calculating Pi
- Card Trick
- Change Calculator
- Chocolate Puzzle†
- Choose Three Numbers
- Christmas List
- Circle
- Congruent or Similar†
- Convert Kilometres to Miles†
- Crossed Lines (from Advent of Code)
- Count the Vowels
- Date Checker
- Days Until Christmas
- Deficient, Perfect or Abundant?†
- Diamonds
- Dictionary Compression
- Divisible by Seven
- Dotty
- Escape
- Factors and Digit Sum†
- Fizz Buzz†
- Guessing Game
- HCF and LCM†
- Highest Common Factor†
- Josephus Problem
- Kaleidoscope
- Kaprekar's Constant
- League Fixtures
- Look-and-Say Sequences
- Magic 8 Ball
- Memory Game (from an OCR past paper)
- Modulo Operator
- Musical Chairs (from an OCR past paper)
- Naughty or Nice (Christmas task)
- Nested Loop Investigation
- OCR Town Election (from an OCR past paper)
- OCRBlocks† (from an OCR past paper)
- Osiris Numbers
- Pangrams
- Password Checker
- Penalty Game
- Poker Dice
- Prime Numbers†
- Pythagorean Triples†
- Quiz (Entry Level Task)
- Quiz (True or False)
- Rectangles of a given area†
- Remove Duplicates (from a list)
- Recognising Sequences†
- Sanitising Filenames
- Scrabble Score
- Seven
- Shuffle and Deal
- Side and Diagonal Progression (to calculate √2)
- Sieve of Eratosthenes†
- Simple Hangman
- Snakes and Ladders
- Solving quadratic equations†
- Sonar Sweep (part I) (from Advent of Code)
- Sonar Sweep (part II) (from Advent of Code)
- Squid Bingo (from Advent of Code)
- Standard Form calculator†
- String Comparator (taken from a YouTube comment)
- T-Totals†
- Tea and Coffee
- Teams
- Thousands Separator
- Towers of Hanoi
- Triangle Numbers†
- Truthiness
- Vector Calculator†
- Vedic Square†
- Vowel Worth
- Which is Greater - Odd or Even?
- Word Jumble
- Word Mastermind

NB. Tasks marked with a † use concepts that students should recognise from GCSE Maths (although the quadratic formula might be higher-tier only).

These are some of my favourite tasks from other sites:

- 2D Dice Grid Scoring Algorithm
- Bouncy Numbers
- Countries of Africa
- Curzon Numbers
- Diagonal of a Cube†
- Duplicate Letters (no. 1 in the strings section)
- Even Fibonacci Numbers†
- Flood It (task 10)
- Harshad Number
- Just the Integers (task 9)
- Light Bulb Energy Rating
- Multiples of 3 or 5†
- Palindromic Products
- Penalty Shootout
- Pep-Talk Generator
- School Lockers Puzzle
- Smallest Multiple†*
- String Parser (no. 4 in the strings section)
- Time Saved by Speeding
- Zip It!

* if you're doing this in Python then you might want to change the task so that students are only required to check numbers up to 15. See this page on the performance of Python for further explanation.