IB Computer Science HL · Year 2 · Lesson 1

Computational-thinking retrieval + static/dynamic structures, arrays and lists

Computational thinking gives you a language-independent way to specify, decompose and solve problems before you worry about syntax. Programming fundamentals turn algorithms into reliable executable procedures. Scope, data types, debugging and exceptions all affect correctness.

Paper 250 minutesB1.1.1 · B1.1.2 · B1.1.3 · B2.1.1 · B2.2.1 · B2.2.2
Today’s targets

What you need to be able to do

2 / 10
  • ConstructA problem specification
  • DescribeThe fundamental concepts of computational thinking
  • ExplainHow applying computational thinking to fundamental concepts is used to approach and solve problems in computer science
  • Construct + traceAnd trace programs using a range of global and local variables of various data types
  • CompareStatic and dynamic data structures
B1.1.1B1.1.2B1.1.3B2.1.1B2.2.1B2.2.2
Paper 2 lensMatch the depth of every response to the command term. Previously learned content can move quickly, but retrieval must still be accurate.
Retrieve

Rapid Recall Deck

3 / 10

Say the answer aloud before flipping. Mark secure knowledge quickly and spend time on the gaps.

  • What should a strong problem specification define?: A problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, and evaluation criteria.
  • What are the four fundamental concepts of computational thinking?: Abstraction, algorithmic design, decomposition, and pattern recognition.
  • What is abstraction in computational thinking?: Abstraction focuses on the essential features of a problem while hiding or ignoring detail that is not relevant to the current solution.
  • How do decomposition and pattern recognition support problem-solving?: Decomposition breaks a complex problem into smaller parts; pattern recognition identifies similarities that can suggest reusable approaches or algorithms.
  • What is the difference between a global variable and a local variable?: A global variable is accessible across a wider program scope; a local variable exists only within the block, function, or method where it is defined.
  • What are the five basic data types used in these programming lessons?: Boolean value, char, decimal, integer, and string.
  • What is the key difference between a static and a dynamic data structure?: A static structure has a fixed size once allocated, while a dynamic structure can grow or shrink as the program runs.
  • What operations should you be able to perform on a dynamic list?: Add elements, remove elements, and traverse the list. In Java this includes ArrayList; in Python, Lists are dynamic.
  • Which array and list dimensions are used in the programming syllabus?: One-dimensional and two-dimensional structures: 1D/2D arrays and ArrayLists in Java, and 1D/2D Lists in Python.
B1.1.1 + B1.1.2 · Learn

Core knowledge and application

4 / 10
B1.1.1Construct

A problem specification

Computational thinking gives you a language-independent way to specify, decompose and solve problems before you worry about syntax.

Exam moveProduce the required code, diagram, query, model or representation accurately.
Required detail 1The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria
Assessment boundaryPaper 2

Explain it without notes

Construct: A problem specification in the context of a school study-room recommendation system.

  • The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria
B1.1.2Describe

The fundamental concepts of computational thinking

Computational thinking gives you a language-independent way to specify, decompose and solve problems before you worry about syntax.

Exam moveGive a detailed, accurate account of what happens or what something is like.
Required detail 1Abstraction, algorithmic design, decomposition, pattern recognition
Assessment boundaryPaper 2

Explain it without notes

Describe: The fundamental concepts of computational thinking in the context of a school study-room recommendation system.

  • Abstraction, algorithmic design, decomposition, pattern recognition
B1.1.3 + B2.1.1 · Learn

Core knowledge and application

5 / 10
B1.1.3Explain

How applying computational thinking to fundamental concepts is used to approach and solve problems in computer science

Computational thinking gives you a language-independent way to specify, decompose and solve problems before you worry about syntax.

Exam moveGive the mechanism or relationship and make the reasons/causes explicit.
Required detail 1Computational thinking does not necessarily involve programming—it is a toolkit of available techniques for problem-solving
Required detail 2Real-world examples may include software development, data analysis, machine learning, database design, network security
Assessment boundaryPaper 2

Explain it without notes

Explain: How applying computational thinking to fundamental concepts is used to approach and solve problems in computer science in the context of a school study-room recommendation system.

  • Computational thinking does not necessarily involve programming—it is a toolkit of available techniques for problem-solving
  • Real-world examples may include software development, data analysis, machine learning, database design, network security
B2.1.1Construct + trace

And trace programs using a range of global and local variables of various data types

Programming fundamentals turn algorithms into reliable executable procedures. Scope, data types, debugging and exceptions all affect correctness.

Exam moveProduce the required code, diagram, query, model or representation accurately.
Required detail 1Data types: Boolean value, char, decimal, integer, string
Assessment boundaryPaper 2

Explain it without notes

Construct + trace: And trace programs using a range of global and local variables of various data types in the context of a student-record processing program.

  • Data types: Boolean value, char, decimal, integer, string
B2.2.1 + B2.2.2 · Learn

Core knowledge and application

6 / 10
B2.2.1Compare

Static and dynamic data structures

Data structures organize information so that operations are efficient, understandable and appropriate to the problem.

Exam moveMake direct, paired comparisons using the same criteria.
Required detail 1The fundamental differences between static and dynamic data structures, including their underlying mechanisms for memory allocation and resizing
Required detail 2The advantages and disadvantages of each type in various scenarios, considering factors such as speed, memory usage, flexibility
Assessment boundaryPaper 2

Explain it without notes

Compare: Static and dynamic data structures in the context of a scheduling application with changing data.

  • The fundamental differences between static and dynamic data structures, including their underlying mechanisms for memory allocation and resizing
  • The advantages and disadvantages of each type in various scenarios, considering factors such as speed, memory usage, flexibility
B2.2.2Construct

Programs that apply arrays and Lists

Data structures organize information so that operations are efficient, understandable and appropriate to the problem.

Exam moveProduce the required code, diagram, query, model or representation accurately.
Required detail 1One-dimensional (1D) arrays, two-dimensional (2D) arrays, ArrayLists in Java
Required detail 2One-dimensional (1D) Lists and two-dimensional (2D) Lists in Python
Required detail 3Add, remove and traverse elements in a dynamic list
Assessment boundaryPaper 2

Explain it without notes

Construct: Programs that apply arrays and Lists in the context of a scheduling application with changing data.

  • One-dimensional (1D) arrays, two-dimensional (2D) arrays, ArrayLists in Java
  • One-dimensional (1D) Lists and two-dimensional (2D) Lists in Python
  • Add, remove and traverse elements in a dynamic list
Trace / construct

Programming checkpoint

7 / 10
scores = [72, 88, 91]
scores.append(84)
for score in scores:
    if score >= 80:
        print(score)
Before you run itTrace the code by hand. Identify state changes, branch/loop behaviour, and the final result.

Modify it

Change one condition, input or operation so the program solves a slightly different problem. Predict the effect before editing.

Apply

Transfer to a new scenario

8 / 10
ScenarioA school study-room recommendation system needs a design or technical decision related to today’s topic. Explain what matters and why.
  • The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria
  • Abstraction, algorithmic design, decomposition, pattern recognition
  • Computational thinking does not necessarily involve programming—it is a toolkit of available techniques for problem-solving
  • Real-world examples may include software development, data analysis, machine learning, database design, network security
  • Data types: Boolean value, char, decimal, integer, string
  • The fundamental differences between static and dynamic data structures, including their underlying mechanisms for memory allocation and resizing
  • The advantages and disadvantages of each type in various scenarios, considering factors such as speed, memory usage, flexibility
Exam lens

Paper 2 practice

9 / 10
Build the response before checking notesUse precise terminology and match the required depth.
  1. Construct: A problem specification in the context of a school study-room recommendation system.
  2. Describe: The fundamental concepts of computational thinking in the context of a school study-room recommendation system.
  3. Explain: How applying computational thinking to fundamental concepts is used to approach and solve problems in computer science in the context of a school study-room recommendation system.
Self-checkAnswer the exact command term. For explain, include mechanism/reason; for compare, pair criteria; for discuss/evaluate/justify, build supported reasoning and a conclusion.
Homework

Finish the learning cycle

10 / 10

IA — main task

Refine Criteria A/B/C. Use today’s lesson to make the problem specification, decomposition, algorithms or testing plan more precise where relevant.

Syllabus — 10–15 min

Repeat the recall deck and complete the lesson response prompt without model support.