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 3A 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.
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 Computer Science: Exam Technique Guide
OCR H446 · AQA 7517 · CIE 9618 · Edexcel 9CS0 · IB CS · FreeA 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 & StudentsA 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
This resource is currently being updated. Check back soon.
IB DP CS Internal Assessment Guide
IB Diploma Programme · SL & HL · Java & PythonA 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.
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.
Free Interactive Revision Tools
Boolean algebra practice, SQL sandbox with auto-marking, and more on the way. All free, no login required.
OOP Booklet - Python
A-Level · Python 3 · 6 parts · FreeA 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 · FreeThe 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 Booklet - Python
A-Level · Python 3A 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
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
Trees and Graphs Booklet - Python
A-Level · Python 3 · OCR H446In 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 H446The 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 Booklet - Python
A-Level · Python 3 · OCR H446In 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 H446The 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.
Browse all 100 challenges. Download the pack to get full details, hints, mark schemes, and extensions.
| # | 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 |
| # | 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 |
| # | 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 |
| # | 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 |
| 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