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.

  • How Marks Are Actually Awarded - point marking, level marking, method marks and how each changes your answer
  • Command Words Decoded - State, Describe, Explain, Compare, Evaluate with weak and strong answer pairs plus a quick-reference table
  • Technical Vocabulary - 8 before-and-after pairs showing how informal language costs marks
  • Pseudocode Discipline - board-by-board syntax, zero-mark traps (CIE = vs ->, OCR for loop bounds, AQA pronouns)
  • Edge Cases and Hidden Marks - array bounds, off-by-one errors, uninitialised variables, empty input
  • Question Type Walkthroughs - trace tables, algorithm writing, OOP, calculations, extended response
  • Time Management including the 30-second scan strategy, plus What Not To Do
  • Board Quick Reference - one page per board with paper structure, pseudocode essentials and top warnings
  • Final 10-Minute Checklist - ten checks before submitting, one per preventable mark loss

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

A-Level CS NEA Toolkit

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

A 40-page guide to the A-Level Computer Science Non-Exam Assessment, covering both AQA and OCR. Plain-English mark scheme translations, section-by-section guidance, five templates, and honest observations on what moderators actually look for.

  • Project selection guide - what raises and limits your mark ceiling
  • Section-by-section guidance: Analysis, Design, Technical Solution, Testing, Evaluation
  • OCR complexity framework and iterative development worked example
  • Mark scheme translated into plain English for both boards
  • 5 templates including OCR Iterative Development Log
  • Teacher Marking Guide (OCR): banding, complexity judgement, moderation patterns
  • Malpractice protection and authentication guidance
  • What moderators actually see - honest observations
Coming This Week

This resource is currently being updated. Check back soon.

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

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.

New

Free Interactive Revision Tools

Boolean algebra practice, SQL sandbox with auto-marking, and more on the way. All free, no login required.

Explore Tools →
Object-Oriented Programming

OOP Booklet - Python

A-Level · Python 3 · 6 parts · Free

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, UML, debug tasks)
  • 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
  • Part 6 - All answers at the back: retrieval quizzes, debug solutions, mark schemes

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

OOP Booklet - C#

A-Level · C# 10+ · 6 parts · Free

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, UML diagrams, and debug tasks
  • 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
  • Part 6 - All answers at the back: retrieval quizzes, debug solutions, mark schemes

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

Linear Data Structures — Book 1 of 3

Linear Data Structures Booklet - Python

A-Level · Python 3

A complete teaching and learning resource covering all linear data structures on the OCR H446 specification, implemented in Python.

  • Five parts: Arrays, Linked Lists, Stacks, Queues, Abstract Data Types
  • Step-by-step code walkthroughs with annotated build-up
  • Teacher notes, common misconceptions, and real-life context
  • Trace tables and visual operation diagrams throughout
  • 10 exam questions with full mark schemes
  • Capstone project: Task Scheduler using Queue, Stack, and Linked List

Free Sample — Parts 1 & 2

Full booklet — coming this week.

Linear Data Structures Booklet - C#

A-Level · C# 10+

The same comprehensive booklet written specifically for C#. All structures implemented from scratch with C# syntax, structs, and abstract classes throughout.

  • Five parts: Arrays, Linked Lists, Stacks, Queues, Abstract Data Types
  • Step-by-step code walkthroughs with annotated build-up
  • C# specifics: value types vs reference types, struct records, abstract classes
  • Trace tables and visual operation diagrams throughout
  • 10 exam questions with full mark schemes
  • Capstone project: Task Scheduler using Queue, Stack, and Linked List

Free Sample — Parts 1 & 2

Full booklet — coming this week.

Trees and Graphs — Book 2 of 3

Trees and Graphs Booklet - Python

A-Level · Python 3 · OCR H446

In development. Will cover all non-linear data structures on the OCR H446 specification, implemented in Python.

  • Binary trees, binary search trees, and tree traversal (in-order, pre-order, post-order)
  • Graph theory: directed/undirected, weighted graphs
  • Adjacency matrix and adjacency list representations
  • Depth-first search (DFS) and breadth-first search (BFS)
  • OCR H446-style exam questions with full mark schemes

This booklet is being written. Sign up below to be notified when it launches.

Trees and Graphs Booklet - C#

A-Level · C# 10+ · OCR H446

The C# edition of the Trees and Graphs booklet. All structures implemented from scratch with full C# syntax.

  • Binary trees, binary search trees, and tree traversal (in-order, pre-order, post-order)
  • Graph theory: directed/undirected, weighted graphs
  • Adjacency matrix and adjacency list representations
  • Depth-first search (DFS) and breadth-first search (BFS)
  • OCR H446-style exam questions with full mark schemes

This booklet is being written. Sign up below to be notified when it launches.

Hash Tables and Dictionaries — Book 3 of 3

Hash Tables and Dictionaries Booklet - Python

A-Level · Python 3 · OCR H446

In development. Covers hashing, collision resolution, and the dictionary ADT for OCR H446, implemented in Python.

  • Hash functions and the hashing process
  • Collision resolution: open addressing and chaining
  • The dictionary ADT: key-value storage and retrieval
  • Time complexity analysis: O(1) average vs O(n) worst case
  • OCR H446-style exam questions with full mark schemes

This booklet is being written. Sign up below to be notified when it launches.

Hash Tables and Dictionaries Booklet - C#

A-Level · C# 10+ · OCR H446

The C# edition of the Hash Tables and Dictionaries booklet. All structures built from scratch with full C# syntax.

  • Hash functions and the hashing process
  • Collision resolution: open addressing and chaining
  • The dictionary ADT: key-value storage and retrieval
  • Time complexity analysis: O(1) average vs O(n) worst case
  • OCR H446-style exam questions with full mark schemes

This booklet is being written. Sign up below to be notified when it launches.

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