Skip to content
Field Guide
Search
Ctrl
K
Cancel
Clear
GitHub
Select theme
Dark
Light
Auto
Part 0: First Steps
0. Introduction
Reading the Guide
1. Digital Realities
Introduction
Guided Tour
In Depth
Programs?
Digital Reality
Abstraction
Machine Code
Assembly
Source Code
Abstracting further?
Activities
2. Computer Use
Introduction
Overview
Terminal and Shell
Shell Commands
Files and Folders
Commands to use
Guided Tour
Using the Terminal
In Depth
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
Activities
Activities
3. Building Programs
Introduction
Guided Tour
Your First Program
Build Graphical Hello World
Hello from C/C++
In Depth
Create a Project
Write Code
Build and Run
Debugging
Debugging Your First Program
Using SplashKit
Other Languages
Activities
Part 1: Instructions
0. Introducing Instructions
1. Sequence and Data
Introduction
Overview
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
In Depth
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
Activities
Airspeed Velocity
Water Bottle Visualizer
Test your knowledge
- Calculator
- Music Player
- Creative Drawing
Solutions
2. Communicating Syntax
Introduction
Guided Tour
In Depth
Grammar
Statement
Expression
Identifier
Other Languages
Activities
3. Control Flow
Introduction
Overview
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
In Depth
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
Code Quality
Solving Problems
- Fixing the issue
- Using the Debugger
Summary
Activities
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
Part 2: Organised Code
0. Introducing Code Organisation
1. Starting C/C++
Introduction
Overview
Compiling C++ Programs
Main Function
Converting Code
Terminal Functions to Use
Multimedia Functions to Use
Master Your Editor
Guided Tour
Overview
Converting Code
Change Calculator
Fly Catch
In Depth
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
Activities
Campsite Reflection
Summary
Fly Catch
2. Structuring Code
Introduction
Overview
Procedures
Functions
Program
Local Variable
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
In Depth
Functions and Procedures
Program
Procedures
Local Variable
Parameters
Functions
Function Parameters
Return
The Stack
Global Variables
Forward Declarations
Documentation Comments
Overloading
Recursion
- Fibonacci
- Towers of Hanoi
Wrap Up
Activities
Test your knowledge
- AFL score
- Click Game
Campsite Reflection
Summary
Change Calculator
Guessing Game
Fly Catch
3. Structuring Data
Introduction
Overview
Type (recap)
Struct
Enum
Guided Tour
Overview
- Explore Enums
- Explore Structs
Fly Catch
Change Calculator
In Depth
Program
Type declaration
- Structured Data
- Enumerations
- Bit Flag
- Union
Variables with Custom Types
Assignment Statement
Expressions
Activities
Test Your Knowledge
- Entity Manager
- Explore Game States
Campsite Reflection
Summary
Fly Catch
Change Calculator
4. Indirect Access
Introduction
Overview
Pointers and References
Reference Parameters
Guided Tour
Explore References
Fly Catch
Maze Game
In Depth
Pass by Value or Reference
Pointers
- Usage
- References
- Pointing to Nothing
- Segmentation Fault
- Pointers and Scope
Hand Execution
Printing and scanning in C
Activities
Test Your Knowledge
- Bank System
- Reaction game
Campsite Reflection
Summary
Fly Catch
Maze Game
5. Working with Multiples
Introduction
Overview
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
In Depth
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
Activities
Test Your Knowledge
- Product Database
- Music player
- Rock Dodge
Project
Campsite Reflection
Summary
- Map drawn
- Map editor
- Map camera
6. Memory Deep Dive
Introduction
Overview
Memory and the Heap
Allocating Memory
Allocating an Array
Freeing Allocations
C++ Memory Allocations
Guided Tour
Overview
Using Malloc
Using New and Delete
In Depth
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
Generics
Using an AI Copilot
C++ memory allocation
Other Languages
Advanced 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
Campsite Reflection
Summary
Dynamic Array
Stats Calculator
7. Member Functions
Introduction
Overview
Struct Member Functions
Objects
Class
Guided Tour
Overview
Account Class & Objects
In Depth
Struct Members
- Constructors
- Methods
Operator Overloading
Other Languages
Advanced Tour
Dynamic Array (v2)
- Stat Revisited
- Maze Game
Activities
Activities
- User Account
- Dice
Campsite Reflection
Summary
8. Project
Introduction
Overview
Building Solutions
Iterative Development
Separation of concerns
Unit Testing
C++ Utilities
Celebrate the Wins
Guided Tour
Cheese Shop
- Entity Modelling
- Functional Modelling
- Iteration 1
- Iteration 2
- Reflection and next steps
Activities
Activities
Part 3: Programs as Concepts
0. Introducing Concept Modelling
1. Back to C# and Others
Introduction
Guided Tour
In Depth
Main Method
Namespace
Using classes in namespaces
Static methods
Parameters
Arrays and Lists
For each
Activities
Activities
2. Classes and Objects
Introduction
Guided Tour
Overview
Light Simulator
In Depth
Abstraction
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
Activities
Activities
Campsite Reflection
Light Simulator
3. Collections
Introduction
Overview
Guided Tour
Overview
4. Collaboration
Introduction
Overview
Guided Tour
Overview
5. Error Handling
Introduction
Overview
Guided Tour
Overview
6. Inheritance
Introduction
Overview
Guided Tour
Overview
7. Abstract Interfaces
Introduction
Overview
Guided Tour
Overview
In Depth
Overview
Stock Viewer
Interface Inheritance
Using a Comparer to stock items
Delegates and Lambda Expressions
Making a Comparer Lambda
Making a Button
Recap
How these concepts impact on code quality
Wrap Up
Syntax Guide
Activities
Other Languages
Activities
Activities
Part 4: What next?
6. Introduction To Python
Introduction
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
Overview
To comeā¦