Coding

The subject “Coding for ISS” integrates principles of programming, system design, and real-world application development. Students learn to build algorithms, solve computational problems, and implement creative solutions using Python and other technologies, equipping them with essential skills in coding, robotics, and user interface design to prepare for advanced challenges in the digital world.

Grades 9 & 10

Building Foundations in Programming and Robotics

The Coding Programme for Grades 9 and 10 introduces students to the fundamentals of programming and advanced applications in robotics and automation.

Grade 9 focuses on core programming concepts such as variables, data types, control structures, and algorithms using Python, transitioning to building graphical user interfaces and real-world applications. In Grade 10, students expand their knowledge by programming robotic systems, integrating hardware like sensors and actuators, and exploring control systems using platforms such as Raspberry Pi.

Both grades emphasize hands-on projects, problem-solving, and creativity, fostering computational thinking and technical skills. By the end of the programme, students will be equipped with a strong foundation in coding, engineering, and software development for future studies.

Grade 9

  • Content:
    • Theoretical exploration of realistic theatre practitioners
    • Practical exploration of realistic theatre practitioners
    • Forms and styles of comedy
    • Scriptwriting and narrative development
    • Monologue
    • Review live theatre performances
    • Scripted performance
    • Mime and movement
    • Readers Theatre
    • Vocal and non-verbal communication skills
  • Skills:
    • Vocal communication
    • Non-verbal communication
    • Stagecraft
    • Solo performance
    • Group performance
    • Costuming
    • Staging
    • Review writing

Grade 9

Content

Introduction to Programming With Python

  • What is problem-solving and why is it important for CS lessons?
  • Introduction to problem-solving
  • What is an algorithm and how to create pseudocode?

Basic Python and Console Interaction

  • Printing in Python
  • Variables and Data Types
  • User Input
  • Mathematical Operators
  • String Operators
  • Comments

Conditionals

  • Booleans
  • If Statements
  • Comparison Operators
  • Logical Operators
  • Floating Point Numbers and Rounding

Looping

  • While Loops
  • For Loops
  • Break and Continue
  • Nested Control Structures

Functions and Exceptions

  • Functions
  • Functions and Parameters
  • Functions and Return Values
  • Exceptions

Strings

  • Indexing
  • Slicing
  • Immutability
  • Strings and For Loops
  • The in keyword
  • String Methods

Creating and Altering Data Structures

  • Lists
  • For Loops and Lists
  • List Method

Skills

Introduction to Programming With Python

  • Describe the audience, relevance, and outcomes of the Intro to Python course.

Basic Python and Console Interaction

  • Print text in Python.
  • Define Python variables and types.
  • Incorporate user input into their programs.
  • Convert between variable types.
  • Describe the different mathematical operators that can be used in their programs.
  • Create programs that use basic math to compute useful things.
  • Create programs that take in user input, do simple computations with the input, and produce useful output.
  • Use mathematical operators with strings.

Conditionals

  • Create boolean variables to represent meaningful yes/no values.
  • Print out the value of a boolean variable.
  • Use if statements for control flow in their programs.
  • Explain the meaning of each of the comparison operators (<, <=, >, >=, ==, !=).
  • Create programs using the comparison operators to compare values.
  • Predict the boolean result of comparing two values.
  • Print out the boolean result of comparing values.
  • Describe the meaning and usage of each logical operator: or, and, and NOT (!).
  • Construct logical statements using boolean variables and logical operators.
  • Use floating-point numbers.
  • Round values in their programs.

Looping

  • Effectively use while loops in their programs.
  • Detect and resolve infinite loops.
  • Implement for loops.
  • Use the variable i as a counter.
  • Control the values of i in a for loop.
  • Explain the critical difference between break and continue.
  • Describe why a break or continue statement would be needed in a coding scenario.
  • Identify the different control structures that can be used to modify the flow of control through a program.

Functions and Exceptions

  • Modularise their programs with functions.
  • Effectively use parameters to customise functions in their programs.
  • Describe the different namespaces with regards to variables and functions.
  • Remove complexity from their programs by abstracting with functions.
  • Generalize their functions with parameters.
  • Chain functions together using return values.
  • Create programs that can gracefully handle exceptions.
  • Continue to function when an error is raised.
  • Prove their knowledge of functions and exceptions through a multiple-choice quiz.

Strings

  • Use indexing to find a specific character in a string.
  • Use slicing to select a set of values from a string.
  • Explain what immutability is and how this applies to strings in Python.
  • Iterate over characters in a string using for loops.
  • Use the in keyword to check if a character is in a string.
  • Use various string methods to alter string values.
  • Prove their knowledge of strings through a multiple-choice quiz.

Creating and Altering Data Structures

  • Understand and explain the characteristics of a list.
  • Use lists to store and recall information.
  • Use for loops to go through items in a list.
  • Apply useful list methods to alter and access information about a list.
  • Prove their knowledge of basic data structures through a multiple-choice quiz.

Grade 10

Content:

Introduction to Robotics and Automation

  • Overview of robotics and automation concepts.
  • Applications of robotics in various industries.
  • Ethics and future trends in robotics.

3D Design and Printing

  • Introduction to 3D modeling software (e.g., Tinkercad, Fusion 360).
  • Designing parts for robotic systems.
  • Preparing models for 3D printing.
  • Printing and assembling 3D components for robotic projects.

Coding for Robotics in Python

  • Introduction to Python for robotics.
  • Using Python libraries such as GPIO Zero, RPi.GPIO for controlling sensors and actuators.
  • Writing algorithms for robot movement, sensor data processing, and decision-making.
  • Debugging and testing code in a real-world robotic environment.

Working with Raspberry Pi

  • Introduction to Raspberry Pi and its architecture.
  • Setting up the Raspberry Pi (including OS installation).
  • Interfacing Raspberry Pi with external hardware (motors, LEDs, sensors).
  • Building simple circuits and controlling them via Python code.

Sensors and Actuators

  • Introduction to different types of sensors (e.g., ultrasonic, IR, temperature, accelerometer).
  • How to interface sensors with the Raspberry Pi.
  • Understanding actuators such as motors, servos, and relays.
  • Reading sensor data and triggering actuators based on sensor input.

Robotic Project Development

  • Brainstorming and designing a robotic project.
  • Planning project requirements (hardware, software, 3D-printed parts).
  • Building, testing, and refining the robot.
  • Project documentation and presentation.

Skills:

Introduction to Robotics and Automation

  • Understand core principles of robotics, including sensors, actuators, and control systems.
  • Analyze the applications of robotics in various industries.
  • Discuss the ethical implications and future trends in robotics.

3D Design and Printing

  • Explain the fundamental concepts of 3D design and its applications in robotics.
  • Use 3D modeling software to design basic components for robotic projects.
  • Prepare 3D models for printing, including optimizing designs for manufacturing.
  • Operate a 3D printer to fabricate physical components.
  • Analyze and troubleshoot common issues in 3D printing.

Coding for Robotics in Python

  • Explain the basics of robotics programming, focusing on Python as the primary coding language.
  • Install necessary libraries and packages for Python-based robotics.
  • Write Python code to control motors, sensors, and other robotic components.
  • Develop simple algorithms to automate robotic movements and behaviors.
  • Debug and troubleshoot Python code for robotics systems.

Working with Raspberry Pi

  • Describe the architecture and components of a Raspberry Pi.
  • Set up and configure Raspberry Pi for use in robotics projects.
  • Write and run Python programs on a Raspberry Pi.
  • Interface Raspberry Pi with external devices, such as sensors and actuators.
  • Troubleshoot basic Raspberry Pi hardware and software issues.

Sensors and Actuators

  • Explain the role of sensors and actuators in a robotic system.
  • Connect and configure various sensors (e.g., ultrasonic, infrared, temperature) with Raspberry Pi.
  • Write Python code to capture and process sensor data.
  • Control actuators (e.g., motors, servos) using Python scripts.
  • Design robotic systems that respond to sensor inputs and make autonomous decisions.

Robotic Project Development

  • Apply 3D design, coding, and hardware integration skills to develop a fully functional robotic project.
  • Plan and execute a project that incorporates multiple elements of robotics, including sensors, actuators, and control logic.
  • Collaborate with peers to solve design and engineering challenges during the project.
  • Test and iterate the project to improve performance and reliability.
  • Present the final robotic project, explaining its design, function, and technical implementation.

Grades 11 & 12

Mastering Computational Thinking and Advanced Programming

The Coding Diploma Programme offers students an in-depth exploration of computational systems, software development, and problem-solving through advanced programming and system design. Standard Level covers core topics like system fundamentals, computer organization, networks, and programming using high-level languages, while Higher Level delves into abstract data structures, advanced algorithms, and control systems.

Students engage in practical projects, including designing and implementing software solutions to real-world challenges, fostering analytical thinking and technical expertise. The programme emphasizes both theoretical knowledge and hands-on experience, preparing students for advanced studies or careers in technology. Graduates will gain proficiency in programming, system analysis, and innovation, equipping them to excel in the evolving digital landscape.

Grade 6

Content:
  • Design Cycle/Design Process
  • Problem / issue identification
  • Design proposal
  • Idea/solution generation
  • Testing methods
  • Success evaluation
  • Improvement explanation
Skills
  • Creating/editing of 2D graphics
  • Presenting / communicating
  • Producing and editing film
  • Developing brand / identity
  • Using structure as function

Grade 11 & 12

Content

System Fundamentals

  • Overview of computer system components and their functions.
  • Data representation (binary, hexadecimal, ASCII, and Unicode).
  • System development lifecycle and methodologies.
  • The role of operating systems and different types of software.
  • Data management, including file storage, databases, and cloud storage.

Computer Organization

  • The CPU, memory, and I/O system architecture.
  • The control unit, arithmetic logic unit (ALU), and machine instruction cycle.
  • Memory management (RAM, ROM, cache, virtual memory).
  • Input/output devices and data flow in computer systems.
  • Overview of low-level programming and machine-level instructions (HL only).

Networks

  • Network types (LAN, WAN, MAN) and their configurations.
  • Networking hardware and protocols, including Ethernet, Wi-Fi, TCP/IP.
  • IP addressing, DNS, MAC addresses, and packet-switching.
  • Layers of the OSI model and their functions (HL only).
  • Network security concepts, including firewalls, encryption, and authentication.

Computational Thinking, Problem Solving, and Programming

  • Fundamentals of algorithms and problem-solving approaches.
  • Pseudocode, flowcharts, and their use in algorithm design.
  • Coding in a high-level language (e.g., Java or Python) to implement algorithms.
  • Simple and complex data structures (arrays, lists) for organizing data.
  • Recursion and its applications in programming (HL only).
  • Analysis of algorithmic efficiency (Big-O notation) (HL only).

Abstract Data Structures (HL only)

  • Overview of abstract data types: stacks, queues, linked lists, trees, and hash tables.
  • Implementation of data structures in a high-level programming language.
  • Time and space complexity analysis of different data structures.
  • Practical applications of abstract data structures in software development.

Resource Management (HL only)

  • Resource management in operating systems (CPU, memory, storage).
  • Process scheduling and multitasking algorithms.
  • Memory management techniques: paging, segmentation, and virtual memory.
  • Storage devices, file systems, and their management.
  • Comparison of resource allocation strategies.

Object-Oriented Programming (SL & HL)

  • Principles of object-oriented programming (OOP): encapsulation, inheritance, polymorphism.
  • Object-oriented design and implementation in a high-level language.
  • Class hierarchies, interfaces, and abstract classes.
  • Object-oriented design patterns and their applications in software development.

Internal Assessment (SL & HL)

  • Design, implement, and evaluate a solution to a real-world problem through software development.
  • Document the entire process, reflecting on the work and aligning it with IB assessment criteria.

Skills

System Fundamentals

  • Explain the components of computer systems and their functions.
  • Describe the concept of data representation, including binary and hexadecimal.
  • Analyze system development methodologies and their applications.
  • Compare various types of software and explain their functions in system management.
  • Apply project management techniques in system development projects.

Computer Organization

  • Describe the role of the CPU, ALU, and memory in executing instructions.
  • Analyze the machine instruction cycle and its effect on system performance.
  • Compare different types of memory (RAM, ROM, cache) and their functions.
  • Explain the difference between von Neumann and Harvard architectures.
  • Develop an understanding of assembly language and its use in low-level programming (HL only).

Networks

  • Explain the fundamentals of networking and network protocols.
  • Compare different types of networks and their use in real-world applications.
  • Analyze how data is transmitted over networks using packet-switching and error detection.
  • Apply network security measures, including encryption and authentication methods.
  • Understand the OSI model and the functions of each layer (HL only).

Computational Thinking, Problem Solving, and Programming

  • Develop problem-solving strategies using computational thinking.
  • Create algorithms using pseudocode and flowcharts to represent problem-solving processes.
  • Write and debug code in a high-level language to solve problems.
  • Implement and manipulate data structures like arrays and lists.
  • Apply recursion in algorithms and evaluate algorithm efficiency (HL only).

Abstract Data Structures (HL only)

  • Explain abstract data structures and their real-world applications.
  • Implement data structures using object-oriented programming.
  • Analyze the performance of various data structures in terms of time and space complexity.
  • Write algorithms that utilize abstract data structures for problem-solving.

Resource Management (HL only)

  • Explain how operating systems manage computer resources.
  • Analyze memory management techniques and their role in system performance.
  • Compare different resource allocation strategies.
  • Describe the functions of file systems and storage management in operating systems.

Object-Oriented Programming (SL & HL)

  • Develop programs using OOP principles to solve real-world problems.
  • Implement class hierarchies and object relationships in software design.
  • Write code that incorporates encapsulation, inheritance, and polymorphism.
  • Debug, test, and maintain object-oriented code.
  • Analyze the use of design patterns in OOP projects.

Internal Assessment (SL & HL)

  • Design a software solution to a real-world problem using appropriate tools and techniques.
  • Document the development process, including analysis, design, implementation, and evaluation.
  • Reflect on the work and align it with IB assessment criteria.

Downloadable Curriculum

Access detailed curriculum overviews and guidelines in PDF format.

Glossary of Terms

Familiarize yourself with key abbreviations and terminology used throughout our curriculum.

Learning & Assessment

Discover our curriculum’s learning objectives, assessment strategies, and resources.