Home of real teaching & learning
  • Full support for teachers
  • Focus on critical thinking
  • Engaging classroom activities
  • Integrated student eBook
  • Assessed tasks / qBank
  • Practice exam questions

The InThinking Guarantee: Our sites are written by expert practitioners and not by AI

See our AI policy

Disclaimer: InThinking subject sites are neither endorsed by nor connected with the International Baccalaureate Organisation.

Don't miss out, find out!
IB Approved Workshops
Virtual Think-Ins

Find all InThinking events at
inthinking.net

Selected student pages

B 2.3.4 Functions Python
eBook
B 2.3.4 Functions Python

Unlock the power of functions! Learn how to create reusable code blocks, improve program structure, and manage scope (local vs. global variables) for better organization and maintainability in Java and...

13 March 2025
Binary representation
eBook
Binary representation

This section covers the terms: bit, byte, binary, denary/decimal and hexadecimal and outlines how data is represented in the computer. Bit (b)- A unit of information expressed as either a 0 or 1 in binary...

31 July 2025
B 3.2.3 Abstraction Java (HL Only)
eBook
B 3.2.3 Abstraction Java (HL Only)

This section explains abstraction in OOP, emphasizing its significance in creating modular code. It covers the use of abstract classes to define common interfaces for subclasses. What is Abstraction?...

03 October 2026
A 3.3.5 Database Views (HL Only)
eBook
A 3.3.5 Database Views (HL Only)

Virtualized and materialized database views offer flexible and performant data access. Virtual views provide dynamic, logical perspectives for flexibility and security. Materialized views store pre-computed...

17 April 2025
A 3.2.1 Database Schemas
eBook
A 3.2.1 Database Schemas

Every database relies on a schema, a structure defining data organization and relationships. We'll explore conceptual, logical, and physical schemas, and how they abstractly define data structure at different...

01 May 2026
4.1 - Thinking Abstractly
eBook
4.1 - Thinking Abstractly

Abstraction is a cornerstone of computing. It involves filtering out the information that is irrelevant thus leaving only the necessary information. This is done to create a representation of the problem...

04 August 2025
B 2.2.2 Arrays and Lists Java
eBook
B 2.2.2 Arrays and Lists Java

This section explores how arrays and lists are used in Java and Python. We'll delve into one-dimensional and two-dimensional arrays, as well as ArrayLists. You'll learn to manipulate these data structures,...

14 September 2025
B 3.1.5 Encapsulation JAVA
eBook
B 3.1.5 Encapsulation JAVA

This section explains encapsulation and information hiding in OOP. It covers principles, access modifiers (private, public), controlling class member access, and the importance of limiting access for...

26 April 2025
A3.2 Database design
eBook
A3.2 Database design

Subtopic A3.2 covers database design: schemas (conceptual, logical, physical), ERDs, data types, table creation (keys), normalisation (1NF-3NF with related concepts), and denormalisation. A3.2.1 Describe...

23 April 2025
1.1 System backup
eBook
1.1 System backup

This section discusses the causes, consequences, and prevention of data loss. Data loss can occur due to various reasons, including malicious activities by employees or intruders, and natural disasters....

31 July 2025
Topic 5  - Abstract Data Structures
eBook
Topic 5 - Abstract Data Structures

The topic “Abstract Data Structures” covers common data structures (arrays, stacks, queues, linked lists, binary trees) and their operations (addition, deletion, retrieval of data, traversal, searching,...

04 August 2025
B 1.1.4 Flowcharts
eBook
B 1.1.4 Flowcharts

A flowchart is a visual representation of an algorithm using standardised symbols connected by arrows. Tracing a flowchart means following its execution step by step, recording how variable values change...

27 May 2026

Help