Free Resources for CS Teachers

Practical, classroom-tested materials for teaching Python and Computer Science. No login required.

100 Python Programming Challenges

100 challenges · 4 difficulty tiers · Python 3

A complete bank of Python challenges from basic input/output up to A-Level difficulty. Each challenge includes a problem statement, example input/output, hints, mark scheme notes, and an extension task.

  • Tier 1 Foundation - 25 challenges (KS3 / secondary foundation)
  • Tier 2 Intermediate - 30 challenges (core secondary)
  • Tier 3 Applied - 25 challenges (upper secondary / A-Level intro)
  • Tier 4 Stretch Challenges - 20 challenges (A-Level standard)
  • Usage guide: which tiers suit which year groups
  • Every challenge includes problem statement, example I/O, hints and mark scheme notes
  • Extension task on every challenge to stretch high-attaining students
  • Covers all key Python topics: loops, functions, OOP, files, recursion, algorithms
  • Compatible with KS3 through A-Level - pick the tiers that suit your class

A separate Teacher Solutions Pack (with multiple approaches per challenge, including non-built-in versions) is sent alongside the main pack.

You'll receive one follow-up email with information about CodeBash. Nothing more unless you choose to hear more.

Not sure about the Python pack? Try a free sample first.
20 handpicked Python challenges across all 4 tiers - no email required, instant PDF download.
Download 20-Challenge Sample → Download Sample Solutions →

100 C# Programming Challenges

100 challenges · 4 difficulty tiers · C# 10+

The complete 100-challenge bank fully rewritten for C#. Same proven structure as the Python pack - problem statement, example I/O, C#-specific hints, mark scheme, and extension - but using idiomatic C# 10+ top-level statements, LINQ, and .NET standard library features.

  • Tier 1 Foundation - 25 challenges (input, loops, selection)
  • Tier 2 Intermediate - 30 challenges (OOP, sorting, data structures)
  • Tier 3 Applied - 25 challenges (file I/O, recursion, algorithms)
  • Tier 4 Stretch - 20 challenges (A-Level standard complexity)
  • Hints written for C# - Console.ReadLine, int.Parse, LINQ, etc.
  • Teacher solutions pack with syntax-highlighted C# code
  • Multiple approaches per challenge (iterative & recursive)
  • 20-challenge sample available - no email required
A-Level CS Exam Technique Guide
Free All Boards

A-Level Computer Science: Exam Technique Guide

OCR H446 · AQA 7517 · CIE 9618 · Edexcel 9CS0 · IB CS · Free

A cross-board exam technique guide drawing directly on published examiner reports from OCR, AQA and CIE. Covers the exact command word errors, pseudocode mistakes and precision failures that cost marks every year across all five major A-Level CS specifications.

  • Command Words Decoded - State, Describe, Explain, Compare, Evaluate with weak and strong answer pairs
  • Pseudocode Discipline - board-by-board syntax, zero-mark traps (CIE = vs ->, OCR for loop bounds, AQA pronouns)
  • Real Examiner Report Evidence - direct quotes from OCR 2023, AQA 2023 and CIE published reports
  • Question Type Walkthroughs - trace tables, algorithm writing, OOP, calculations, extended response
  • The Precision Problem - six worked examples of vague vs precise answers with commentary
  • Time Management and What Not To Do sections
  • Board Quick Reference - one page per board with paper structure, pseudocode essentials and top warnings
This resource is being finalised. Check back shortly.

A-Level CS NEA Toolkit

AQA (7517) & OCR (H446) · Teachers & Students

A comprehensive guide to the A-Level Computer Science Non-Exam Assessment, covering both AQA and OCR. Includes plain-English mark scheme translations, templates, and honest guidance on what moderators actually look for.

  • Project selection guide - what raises and limits your ceiling
  • Section-by-section guidance: Analysis, Design, Technical Solution, Testing, Evaluation
  • Mark scheme translated into plain English for both boards
  • 4 templates: project proposal, stakeholder interview, test log, evaluation checklist
  • Teacher section: malpractice protection and authentication guidance
  • What moderators actually see - honest observations

This resource is being finalised. Check back shortly.

IB DP CS Internal Assessment Guide

IB Diploma Programme · SL & HL · Java & Python

A complete guide to the IB Computer Science Internal Assessment for both SL and HL. Covers all five assessment criteria with mark scheme translations, templates, and honest guidance on what moderators look for - including the Criterion D video submission, which most students handle badly.

  • Criterion A: Planning - real client requirements, consultation evidence, writing measurable success criteria
  • Criterion B: Solution Overview - Record of Tasks template, UML class diagrams, flowcharts, test plan structure
  • Criterion C: Development - annotated code guide, OOP and ADT requirements, citations and sources
  • Criterion D: Functionality - video planning, script structure, what moderators look for in 2-7 minutes
  • Criterion E: Evaluation - testing against success criteria, collecting client feedback, limitations vs improvements
  • Java and Python editions - covers both languages used across IB schools worldwide

This resource is being developed. Check back shortly.

A-Level Teaching Booklets
A-Level Coming Soon

In-depth teaching and learning booklets covering key A-Level Computer Science topics. Each booklet includes theory, worked examples, exam questions with mark schemes, and capstone programs.

Object-Oriented Programming

OOP Booklet - Python

A-Level · Python 3 · 5 parts

A complete OOP teaching and learning resource for A-Level Python. Covers every key concept from classes and constructors through to abstract base classes and magic methods.

  • Part 1 - Introduction: what OOP is, why it is used, advantages and disadvantages, OOP vs procedural
  • Part 2 - The Four Pillars: encapsulation, inheritance, polymorphism, abstraction (each with code)
  • Part 3 - Concepts in depth: 10 topics including properties, super(), ABC, dunder methods
  • Part 4 - 12 A-Level exam questions with full mark schemes (2 to 8 marks)
  • Part 5 - 3 capstone programs: RPG Combat System, Social Media Simulator, Online Shop
Coming Soon

OOP Booklet - C#

A-Level · C# 10+ · 5 parts

The same comprehensive OOP booklet written specifically for C#. Covers C# access modifiers, virtual/override, interfaces vs abstract classes, and operator overloading.

  • Part 1 - Introduction: what OOP is, why C# uses it, advantages and disadvantages, OOP vs procedural
  • Part 2 - The Four Pillars: all four with C#-specific code and explanation
  • Part 3 - Concepts in depth: 10 topics including interfaces, sealed, virtual/override, ToString()
  • Part 4 - 12 A-Level exam questions with full mark schemes (2 to 8 marks)
  • Part 5 - 3 capstone programs: School Management System, Bank Account System, Blackjack Card Game
Coming Soon
Stacks & Queues

Stacks & Queues Booklet - Python

A-Level · Python 3 · OCR H446

A complete teaching and learning resource covering all four data structures for OCR H446 A-Level Computer Science, implemented in Python.

  • Four structures: Stack, Linear Queue, Circular Queue, Priority Queue
  • Step-by-step traced examples for every structure
  • Teacher guide with 6-lesson sequence and common misconceptions
  • 10 OCR H446-style exam questions with full mark schemes
  • 8 directed exercises from Foundation through Extension
  • Capstone: Text Editor with Undo (Stack) and Print Spooler (Circular Queue)

This resource is being finalised. Check back shortly.

Stacks & Queues Booklet - C#

A-Level · C# 10+ · OCR H446

The same comprehensive booklet written specifically for C#. All four data structures implemented from scratch using arrays, with C#-specific syntax throughout.

  • Four structures: Stack, Linear Queue, Circular Queue, Priority Queue
  • Array-based implementations (no Stack<T> or Queue<T> shortcuts)
  • Step-by-step traced examples for every structure
  • Teacher guide with 6-lesson sequence and common misconceptions
  • 10 OCR H446-style exam questions with full mark schemes
  • 8 directed exercises from Foundation through Extension

This resource is being finalised. Check back shortly.

Challenge Preview

Browse all 100 challenges. Download the pack to get full details, hints, mark schemes, and extensions.

Foundation Basic syntax, input/output, selection, and loops. Suitable for KS3 and secondary foundation learners.
# Challenge Title Key Skills
1 Hello, Name Use input() to collect the name
2 Age Calculator Use int() to convert input
3 Area of a Rectangle Area = length x width
4 Odd or Even Use the modulo operator %
5 Temperature Converter Use float() for input
6 Password Checker Use len() for length
7 Times Table Use a for loop with range(1, 13)
8 Number Guessing Game Use import random and random
9 FizzBuzz Check for multiples of both 3 and 5 first
10 Shopping Basket Total Use a while loop
11 Grade Classifier Use elif for each range
12 Factorial Factorial of n = n x (n-1) x
13 Countdown Timer Use a while loop or a for loop with range() in reverse
14 Sum of Digits Convert to a string and iterate through characters
15 Number to Words (1-9) Use a list indexed from 0
16 Average Calculator Accumulate the total and count separately
17 Palindrome Checker Reverse a string using [::-1]
18 Coin Toss Simulator Use random
19 BMI Calculator Use float() for inputs
20 Number Pyramid Outer loop for rows, inner loop for numbers in each row
21 Leap Year Checker Check divisibility by 400 first, then 100, then 4
22 Word Reverser Use
23 Multiplication Quiz Use random
24 Currency Converter Define conversion rates as variables at the top
25 Prime Number Checker A prime has no factors other than 1 and itself
Intermediate Functions, lists, strings, OOP basics, and classic algorithms. Core secondary and lower A-Level.
# Challenge Title Key Skills
26 Vowel Counter Check each character against 'aeiouAEIOU'
27 List Maximum and Minimum Store in a list
28 Student Grade Book Use two parallel lists or a list of tuples
29 Caesar Cipher Use ord() and chr()
30 Word Frequency Counter Use a dictionary
31 Rock Paper Scissors Use random
32 Function: Is Prime Check divisibility from 2 up to int(n**0
33 Fibonacci Sequence Start with [0, 1]
34 ATM Simulator Use a while loop with a menu
35 String Statistics Use len() for length
36 Number to Roman Numerals Use two lists: one for values, one for symbols
37 Stack Implementation A stack is Last In, First Out
38 Queue Implementation A queue is First In, First Out
39 Anagram Checker Sort the letters of both words and compare
40 Number Base Converter Use repeated division by the target base
41 Highest Common Factor Euclidean algorithm: hcf(a, b) = hcf(b, a % b) until the remainder is 0
42 Sentence Scrambler For each word, keep index 0 and -1 in place
43 Matrix Addition Use nested loops to iterate over rows and columns
44 Bank Account Class Define the class with __init__
45 Linear Search Loop through each element with its index
46 Binary Search Use low, high, and mid pointers
47 Bubble Sort Use nested loops
48 Insertion Sort For each element, find its correct position in the already-sorted left portion and insert it
49 Merge Sort Split the list in half recursively until single elements remain
50 Username Generator Use string indexing and slicing
51 Roman Numeral Validator Valid Roman numerals follow specific ordering and repetition rules
52 Temperature Statistics Store temperatures in a list
53 Postcode Validator A valid UK postcode has a specific letter/digit pattern
54 Hangman Store guessed letters in a list
55 Contact Book Use a dictionary where the key is the name
Applied File I/O, error handling, data structures, recursion, and applied algorithms. Upper secondary and A-Level.
# Challenge Title Key Skills
56 File Word Count Use open() and readlines()
57 CSV Reader Use open() and split(',') or the csv module
58 High Score File Use append mode ('a') to add scores
59 Error-Handled Calculator Use try/except around float conversion and the calculation
60 Log File Analyser Read lines and check the start of each
61 Student Records (OOP) Define __init__ with name, age, and an empty grades list
62 Animal Hierarchy (Inheritance) Use class Dog(Animal): to inherit
63 Linked List Node has value and next attributes
64 Binary Search Tree Each node has value, left, and right
65 Hash Table Use a list of lists
66 Graph (Adjacency List) Use a dictionary where keys are node names and values are lists of connected nodes
67 Dijkstra's Shortest Path Use a visited set and a distances dictionary
68 Tower of Hanoi Base case: move 1 disc directly
69 Maze Solver Try moving in each direction recursively
70 Vigenere Cipher Each letter is shifted by the corresponding letter in the repeating keyword
71 API Simulation Store records in a dictionary keyed by ID
72 Inventory System Use a dictionary keyed by item name
73 String Compression Loop through characters
74 Full Number Base Converter For decimal to other: use repeated division
75 FCFS Scheduler Process tasks in arrival order
76 Phone Number Formatter Strip all non-digit characters first
77 Text Adventure Engine Store room data in a dictionary
78 Sentiment Analyser Convert to lowercase and split
79 Timetable Clash Detector Use a dictionary keyed by (room, day, period) tuple
80 Pattern Matcher Use recursion
Stretch Challenges Multi-part problems combining multiple skills. A-Level standard. Maps to NEA complexity requirements.
# Challenge Title Key Skills
81 Library Management System Use a list of dictionaries
82 Gradebook with File Persistence Use a list of dictionaries
83 Train Timetable Store times as strings in HH:MM format or as integers (minutes since midnight) for easy comparison
84 Password Manager Encrypt the password field only
85 Noughts and Crosses Use a list of 9 elements for the board
86 Hospital Priority Queue Sort by priority first, then by position in queue for equal priorities
87 Spell Checker Edit distance: count insertions, deletions, and substitutions needed to transform one word to another
88 Bank Transaction Processor Use a dictionary of categories with keyword lists
89 Cryptarithmetic Solver Use itertools
90 Recursive Directory Tree A directory is a dict; a file is a string
91 Compression Analysis Compression ratio = compressed_length / original_length
92 Supermarket Queue Simulation Use a queue structure
93 Polynomial Calculator Derivative: multiply each coefficient by its power and reduce all powers by 1
94 Social Network Use a dictionary of sets
95 Text RPG with Save/Load Use Player and Enemy classes
96 Web Server Log Analyser Split each log line by spaces to extract IP, request, and status code
97 Constraint-Based Timetabler Use a dictionary keyed by (period, room)
98 Multi-File OOP School System Import between files using standard imports
99 k-Nearest Neighbours Euclidean distance: square root of the sum of squared differences between features
100 Project Scoping Exercise Every success criterion must be testable with a clear pass/fail outcome
Which Tier for Which Class?
Year Group Recommended Tiers
KS3 (Year 7-9) Tier 1 (Foundation), selected Tier 2 (Intermediate)
Year 10-11 (Secondary) Tiers 1-3 (Foundation, Intermediate, Applied)
A-Level / Further Tiers 3-4 (Applied, Stretch Challenges)

Want these challenges auto-marked for your students?

Run them interactively on CodeBash - with automatic marking, student progress tracking, and line-by-line execution feedback.

Start a free trial