OCR GCSE Computer Science Paper 1 (J277) – 3-Hour Intensive Crash Course
Course Philosophy:
This is a rapid revision and application tool. It assumes you have prior programming experience and knowledge of the topics. The goal is to solidify understanding of key theory and master the exam technique for programming and problem-solving questions.
Structure:
- Hour 1: Computational Thinking & Algorithms
- Hour 2: Programming Fundamentals
- Hour 3: Robust Programming, Logic & Testing

Hour 1: Computational Thinking & Algorithms
Subtopic 1.1: Computational Thinking
Detailed Content:
- Decomposition: Breaking down a complex problem into smaller, more manageable parts.
- Abstraction: Ignoring unnecessary details and focusing on the important parts of a problem.
- Algorithmic Thinking: Developing a step-by-step solution to the problem.
Subtopic 1.2: Algorithms (Pseudocode & Flowcharts)
Detailed Content:
- Pseudocode: A text-based way of designing an algorithm using a structure similar to a programming language, but without strict syntax.
- Flowcharts: A diagrammatic representation of an algorithm using standard symbols (Oval=Start/End, Parallelogram=Input/Output, Rectangle=Process, Diamond=Decision, Arrow=Flow).
- Key Concepts:
- Input/Output: INPUT variableName, PRINT variableName
- Assignment: variableName ← value
- Selection: IF…THEN…ELSE…ENDIF, CASE OF…OTHERWISE…ENDCASE
Iteration (Loops): FOR…TO…NEXT, WHILE…DO…ENDWHILE, REPEAT…UNTIL
Hour 2: Programming Fundamentals
Subtopic 2.1: Data Types, Operators & String Manipulation
Detailed Content:
- Data Types: integer, real/float, boolean, char, string. Know the differences.
- Basic Operators:
- Arithmetic: +, -, *, /, ^ (exponent), MOD, DIV.
- Comparison: ==, !=, <, >, <=, >=.
- Boolean: AND, OR, NOT.
- String Manipulation:
- Length: LENGTH(string)
- Substring: SUBSTRING(string, start, length) (Note: indexing often starts at 1 in pseudocode).
- Concatenation: string1 & string2
- Type Casting: Converting between data types, e.g., str(integer) or int(string).
Subtopic 2.2: Control Structures – Selection & Iteration
Detailed Content:
- Selection: Making decisions in code.
- Simple: IF condition THEN…ENDIF
- Complex: IF…THEN…ELSEIF…THEN…ELSE…ENDIF
- Iteration (Loops): Repeating sections of code.
- FOR Loop: Used when the number of iterations is known.
- WHILE Loop: Checks the condition at the start. May run zero times.
- REPEAT…UNTIL Loop: Checks the condition at the end. Always runs at least once.
- Totalling & Counting: Common patterns.
- Totalling: total ← total + number
- Counting: count ← count + 1
Hour 3: Robust Programming, Logic & Testing
Subtopic 3.1: Arrays, File Handling & Robust Programs
Detailed Content:
- Arrays (Lists): A data structure that holds multiple items of the same data type under one name.
- Declaration: scores[1:10] (an array of 10 elements, indices 1 to 10).
- Assignment: scores[5] ← 87
- File Handling:
- Reading: file.openRead(“data.txt”), file.readLine(), file.close()
- Writing: file.openWrite(“data.txt”), file.writeLine(), file.close()
- Defensive Design:
- Anticipating Misuse: Input validation, authentication.
- Input Validation: Check – presence, length, range, type, format.
- Maintainability: Comments, indentation, sensible variable names.
Subtopic 3.2: Logic, Testing & IDE Tools
Detailed Content:
- Logic: Combining boolean expressions to produce a single TRUE or FALSE outcome.
- Testing:
- Test Data: Normal, Boundary, Invalid/Erroneous.
- Purpose of Testing: To ensure the program works as intended and to identify errors.
- IDE Tools:
- Debugger: Steps through code line by line.
- Breakpoints: Pause execution at a specific line.
- Watchpoints/Variables Viewer: Monitor the value of variables as the program runs.