Skip to content
Field Guide
Search
Cancel
GitHub
Select theme
Dark
Light
Auto
Part 0: First Steps
0. Introduction
Reading the Guide
1. Digital Realities
Overview
Guided Tour
Trailside Stop
Programs?
Digital Reality
Abstraction
Machine Code
Assembly
Source Code
Abstracting further?
Go Exploring
2. Computer Use
Overview
Panorama
Terminal and Shell
Shell Commands
Files and Folders
Commands to use
Guided Tour
Using the Terminal
Trailside Stop
Overview
The Terminal
The Shell
Files and File Systems
Navigating File Systems
Manipulating Files
Editing code
Advanced Commands
- Environment Variables
- Streams
- Signals
- Scripts and Permissions
- Using X Windows
Go Exploring
Activities
3. Building Programs
Overview
Guided Tour
Your First Program
Build Graphical Hello World
Hello from C/C++
Trailside Stop
Create a Project
Write Code
Build and Run
Debugging
Debugging Your First Program
Using SplashKit
Other Languages
Go Exploring
Part 1: Instructions
0. Introducing Instructions
1. Sequence and Data
Overview
Panorama
Programs
Methods and Libraries
Method Calls and Arguments
Variables, Constants
Assignment statements
Expressions
Terminal methods to use
Graphical method to use
Guided Tour
Overview
Simple calculator
- Read the user's name
- Read distance and time
- Calculating speed
- Finish off
House Drawing
- Open Window
- Drawing Shapes
- Finish the house
- Calculated Size
Trailside Stop
Program
Sequence
Method
Method Call
Expression
Literal
Type
Variable and Constant
Assignment Statement
Comments
Library
Methods to Use
- Terminal Methods
- Graphics Methods
- Audio Methods
Other Languages
Summary
Go Exploring
Airspeed Velocity
Water Bottle Visualizer
Test your knowledge
- Calculator
- Music Player
- Creative Drawing
Campsite Reflection
Summary
Solutions
2. Communicating Syntax
Overview
Guided Tour
Trailside Stop
Grammar
Statement
Expression
Identifier
Other Languages
Go Exploring
3. Control Flow
Overview
Panorama
Flow and conditions
Selection with if
Selection with switch
Repeat with while
Repeat with do while
Indentation and nested control flow
Hand Execution
Terminal methods to use
Multimedia methods to use
Guided Tour
Overview
Player Move
- Looping
- Handling events with if
Menu and input validation
Change Calculator
- Giving change
- Loop Giving Change
Fly Catch
- A Plan
- Event Loop
- Move the Spider
- Show the Fly
- Let the Fly Escape
- Eat the Fly
Trailside Stop
Boolean Data
- Comparisons
- Logical Operators
- Conditions
- Short Circuit Evaluation
Compound Statement
- Scope and the Stack
Branching
- If Statement
- Case Statement
Looping
- While Loop
- Do While Loop
- For Loop
Jumping
- Break
- Continue
- Goto
Statement
Indentation
Hand Execution
Flowcharts & Control Flow
Other Languages
Summary
Go Exploring
Test your knowledge
- Simple Stats
- Simple Music Player
- Explore event loops
Campsite Reflection
Summary
Fly Catch Events
- Move Spider
- Show Fly
- Fly Escape
- Fly Eaten
4. Project
Overview
Guided Tour
Building Solutions
Solving Problems
- Using the Debugger
- Fixing the issue
Celebrate the Wins
Trailside Stop
Iterative Development
Code Quality
Master Your Editor
Go Exploring
Activities
Part 2: Organised Code
0. Introducing Code Organisation
1. Starting C/C++
Overview
Panorama
Compiling C++ Programs
Main Function
Converting Code
Terminal Functions to Use
Multimedia Functions to Use
Guided Tour
Overview
Converting Code
Change Calculator
Fly Catch
Trailside Stop
Building a C/C++ Program
- Configuring VS Code
- Compiler Steps
- Link errors
Main function
C/C++ Naming Conventions
C/C++ Syntax
- Variables and Constants
- Function Calls
- Compound Statements
- If Statements
- Case Statements
- While Loops
- For Loops
Other Languages
Go Exploring
Campsite Reflection
Summary
Fly Catch
2. Structuring Code
Overview
Panorama
Program
Procedures
Local Variable
Functions
Parameter
Global Variables
Guided Tour
Overview
- Explore Procedures
- Explore functions
Guess that Number
- Analysis
- Building Blocks
- Perform Guess
- Play Game
- Main
- Testing the program
Change Calculator Revisited
- Read Functions
- Give change
Fly Catch Revisited
Shared Utilities
Trailside Stop
Program
Functions and Procedures
The Stack
Procedures
Local Variable
Functions
Parameter
Return
Global Variables
Forward Declarations
Documentation Comments
Overloading
- Design in General
Wrap Up
Go Exploring
Test your knowledge
- AFL score
- Click Game
Campsite Reflection
Summary
Change Calculator
Guessing Game
Fly Catch
3. Structuring Data
Overview
Panorama
Type (recap)
Struct
Enum
Guided Tour
Overview
- Explore Enums
- Explore Structs
Fly Catch
Change Calculator
Trailside Stop
Program
Type declaration
- Structured Data
- Enumerations
- Bit Flag
- Union
Variables with Custom Types
Assignment Statement
Expressions
Go Exploring
Test Your Knowledge
- Entity Manager
- Explore Game States
Campsite Reflection
Summary
Fly Catch
Change Calculator
4. Indirect Access
Overview
Panorama
Pointers and References
Reference Parameters
Guided Tour
Explore References
Fly Catch
Maze Game
Trailside Stop
Pass by Value or Reference
Pointers
- Usage
- References
- Pointing to Nothing
- Segmentation Fault
- Pointers and Scope
Hand Execution
Printing and scanning in C
Go Exploring
Test Your Knowledge
- Bank System
- Reaction game
Campsite Reflection
Summary
Fly Catch
Maze Game
5. Working with Multiples
Overview
Panorama
Array
Array iteration
Array Parameters
Struct with Array
- Processing Elements
- Adding Elements
- Removing Elements
Array of Structs
Guided Tour
Overview
- Declaring an array
- Store and access values
- Calculating indexes
- Working with arrays
- Searching arrays
Statistics Calculator
- Design Overview
- Populate and Print
- Coding Sum
- Plan for Mean
- Plan for Maximum
- Adding Data
- Removing Data
Array Hand Execution
Arrays in Fly Catch
Arrays in Change Calculator
Map Explorer
- Drawing the Map
- Adding an Editor
- Moving the Camera
- Adding Levels
Working with C-Strings
Trailside Stop
Array
- Declaration
- Accessing Values
- Assigning Values
- Reading Values
- Copying an Array
- Array Parameters
- Returning Arrays
For Loop
String
- Up Close
- Characters
- Character Arrays
- Null Terminators
Arrays of Arrays
Go Exploring
Test Your Knowledge
- Product Database
- Music player
- Rock Dodge
Project
Campsite Reflection
Summary
- Map drawn
- Map editor
- Map camera
6. Memory Deep Dive
Overview
Guided Tour
Overview
Dynamic array
- Data
- Add and Resize
- Get and Set Elements
- Using the Dynamic Array
Linked Lists
- Starting
- Deleting Nodes
- Iterating Nodes
- Adding Nodes
- Removing Nodes
- Testing
Trailside Stop
Heap
Heap Pointers
Allocating Memory
- Allocate an Array
- Multidimensional Arrays
- Ragged Arrays
- Reallocate memory
Freeing Memory Allocation
Issues with pointers
- Access Violations
- Memory Leak
- Dangling Pointers
Hand execution
Generics
Using an AI Copilot
C++ memory allocation
Other Languages
Go Exploring
Activities
Campsite Reflection
Summary
Dynamic Array
Stats Calculator
7. Member Functions
Overview
Guided Tour
Overview
Message Objects
Dynamic Array (v2)
Using Dynamic Array
Maze Game
Trailside Stop
Struct Members
- Constructors
- Methods
Operator Overloading
Other Languages
Go Exploring
Activities
Campsite Reflection
Summary
Message Objects
Dynamic Array
Stats Calculator
Graphs with the Maze
10. Project
Go Exploring
Activities
Part 3: Programs as Concepts
0. Introducing Concept Modelling
1. Welcome Back to C#
Overview
Guided Tour
Trailside Stop
Main Method
Namespace
Using classes in namespaces
Static methods
Parameters
Arrays and Lists
For each
Go Exploring
Activities
2. Classes and Objects
Overview
Guided Tour
Overview
Light Simulator
Trailside Stop
Building Abstractions
Class
- Roles and Responsibilities
- Knowing Responsibilities
- Doing Responsibilities
- Member Visibility
- Properties
- Constructors
Objects
- Values and References
- Creating Objects
- Using Objects
UML Class Diagram
Static Members
Other Languages
Summary
Go Exploring
Activities
Campsite Reflection
Light Simulator
Part 4: What next?
6. Introduction To Python
Overview
Getting Started
Appendix
Installation
Overview
- Linux Box
- macOS
- Raspberry Pi Hardware
- Raspberry Pi Software
- Virtual Machine
- Windows (MSYS2)
- Windows (WSL)
VS Code Extensions
Installation Troubleshooting
Access my Pi Remotely
GitHub
Select theme
Dark
Light
Auto
Activities
Test Your Knowledge