International Baccalaureate · IB Diploma
Computer Science · HL
Papers, samples and curriculum documents for this course. · Papers, amostras e documentos curriculares deste curso.
Handouts, exercise sheets and slides
Shared topic documents retain their source course and topic titles. Use your chosen board’s specification for coverage, tier and exam requirements.
Handouts · Material de apoio · A-Level Computer Science · Ciência da Computação do A-Level (20)
- 1. Information representation · 1. Representação de informações
- 2. Communication · 2. Comunicação
- 3. Hardware
- 4. Processor Fundamentals · 4. Fundamentos do Processador
- 5. System Software · 5. Software de Sistema
- 6. Security, privacy and data integrity · 6. Segurança, privacidade e integridade dos dados
- 7. Ethics and Ownership · 7. Ética e Propriedade
- 8. Databases · 8. Bancos de Dados
- 9. Algorithm Design and Problem-solving · 9. Projeto de Algoritmos e Resolução de Problemas
- 10. Data Types and Structures · 10. Tipos e Estruturas de Dados
- 11. Programming · 11. Programação
- 12. Software Development · 12. Desenvolvimento de Software
- 13. Data Representation · 13. Representação de Dados
- 14. Communication and internet technologies · 14. Tecnologias de Comunicação e Internet
- 15. Hardware and Virtual Machines · 15. Hardware e Máquinas Virtuais
- 16. System Software · 16. Software de Sistema
- 17. Security · 17. Segurança
- 18. Artificial Intelligence (AI) · 18. Inteligência Artificial (IA)
- 19. Computational thinking and Problem-solving · 19. Pensamento computacional e resolução de problemas
- 20. Further Programming · 20. Programação Avançada
Exercise sheets · Folhas de exercícios · A-Level Computer Science · Ciência da Computação do A-Level (85)
- 1.1 Data Representation · 1.1 Representação de Dados
- 1.1.2 Binary magnitudes, one's complement, subtraction and where BCD and hex are used
- 1.2 Multimedia · 1.2 Multimídia
- 1.2.1 Encoding a picture and a sound: the file header, the drawing list, and sampling
- 1.3 Compression · 1.3 Compressão
- 2.1 Networks including the internet · 2.1 Redes incluindo a internet
- 2.1.1 Network types, client-server and peer-to-peer models, and topologies
- 2.1.2 Cloud computing, transmission media, Ethernet and CSMA/CD, and internet hardware
- 2.1.3 Finding a server: URLs, the Domain Name Service and IP addressing
- 3.1 Computers and their components · 3.1 Computadores e seus componentes
- 3.1.1 Primary memory: RAM, ROM and their types
- 3.1.2 Secondary storage: magnetic, solid state and optical
- 3.1.3 Input and output devices, and buffers
- 3.1.4 Embedded systems, monitoring and control
- 3.2 Logic Gates and Logic Circuits · 3.2 Portas Lógicas e Circuitos Lógicos
- 3.2.1 Truth tables and expressions from a logic circuit
- 3.2.2 Building logic circuits from expressions, problems and truth tables
- 4.1 Central Processing Unit (CPU) Architecture · 4.1 Arquitetura da Unidade Central de Processamento (CPU)
- 4.1.1 Registers, interrupts, ports and performance
- 4.2 Assembly Language · 4.2 Linguagem de Montagem
- 4.3 Bit manipulation · 4.3 Manipulação de bits
- 4.3.1 Arithmetic and cyclic shifts, and when a shift stops being a multiply or a divide
- 5.1 Operating Systems · 5.1 Sistemas Operacionais
- 5.1.1 Utility software
- 5.1.2 Program libraries and DLL files
- 5.2 Language Translators · 5.2 Tradutores de Linguagem
- 5.2.1 Partial compilation (Java) and the IDE
- 6.1 Data Security · 6.1 Segurança de Dados
- 6.2 Data Integrity · 6.2 Integridade de Dados
- 7.1 Ethics and Ownership · 7.1 Ética e Propriedade
- 7.1.1 Professional bodies, justifying a software licence, and the impact of AI
- 8.1 Database Concepts · 8.1 Conceitos de Banco de Dados
- 8.1.1 Normalising to 3NF, E-R diagrams and the full relational vocabulary
- 8.2 Database Management Systems (DBMS) · 8.2 Sistemas de Gerenciamento de Banco de Dados (DBMS)
- 8.3 Data Definition Language (DDL) and Data Manipulation Language (DML) · 8.3 Linguagem de Definição de Dados (DDL) e Linguagem de Manipulação de Dados (DML)
- 8.3.1 Joining two tables, aggregates with GROUP BY, and choosing SQL data types
- 9.1 Computational Thinking Skills · 9.1 Habilidades de Pensamento Computacional
- 9.1.1 Abstraction and decomposition in practice
- 9.2 Algorithms · 9.2 Algoritmos
- 9.2.1 Logic statements and decisions in an algorithm
- 9.2.2 Flowcharts: reading, drawing and converting
- 9.2.3 Structured English, stepwise refinement and describing an algorithm
- 10.1 Data Types and Records · 10.1 Tipos de Dados e Registros
- 10.2 Arrays · 10.2 Matrizes
- 10.2.1 Bubble sort, array bounds and the standard array routines
- 10.3 Files · 10.3 Arquivos
- 10.4 Introduction to Abstract Data Types (ADT) · 10.4 Introdução a Tipos de Dados Abstratos (ADT)
- 10.4.1 The circular queue, a linked list in arrays, and choosing the right ADT
- 11.1 Programming Basics · 11.1 Noções Básicas de Programação
- 11.1.1 Operators and expressions
- 11.1.2 Built-in functions and library routines
- 11.2 Constructs · 11.2 Construtos
- 11.2.1 CASE structures, and choosing between IF and CASE
- 11.2.2 Count-controlled loops: FOR ... NEXT, totals and counts
- 11.2.3 WHILE and REPEAT loops, and choosing the right loop
- 11.2.4 Trace tables: dry-running an algorithm and finding logic errors
- 11.3 Structured Programming · 11.3 Programação Estruturada
- 11.3.1 Functions, and choosing between a procedure and a function
- 11.3.2 Parameters by value and by reference, and variable scope
- 11.3.3 Efficient pseudocode and breaking a task into modules
- 12.1 Program Development Life cycle · 12.1 Ciclo de Vida do Desenvolvimento de Programas
- 12.2 Program Design · 12.2 Design de Programas
- 12.3 Program Testing and Maintenance · 12.3 Teste e Manutenção de Programas
- 12.3.1 Test strategy, test plans and choosing a testing method
- 13.1 User-defined data types · 13.1 Tipos de dados definidos pelo usuário
- 13.1.1 Designing a user-defined type for a problem, and the linked list
- 13.2 File organisation and access · 13.2 Organização e acesso a arquivos
- 13.3 Floating-point numbers, representation and manipulation · 13.3 Números de ponto flutuante, representação e manipulação
- 13.3.1 The mantissa-exponent trade-off, normalisation, and overflow and underflow
- 14.1 Protocols · 14.1 Protocolos
- 14.2 Circuit switching, packet switching · 14.2 Comutação por circuito, comutação por pacotes
- 15.1 Processors, Parallel Processing and Virtual Machines · 15.1 Processadores, Processamento Paralelo e Máquinas Virtuais
- 15.2 Boolean Algebra and Logic Circuits · 15.2 Álgebra Booleana e Circuitos Lógicos
- 15.2.1 The full adder, flip-flops drawn and traced, and four-variable Karnaugh maps
- 16.1 Purposes of an Operating System (OS) · 16.1 Propósitos de um Sistema Operacional (SO)
- 16.2 Translation Software · 16.2 Software de Tradução
- 16.2.1 Recursive BNF, syntax diagrams, and RPN in both directions
- 17.1 Encryption, Encryption Protocols and Digital Certificates · 17.1 Criptografia, Protocolos de Criptografia e Certificados Digitais
- 18.1 Artificial Intelligence (AI) · 18.1 Inteligência Artificial (IA)
- 19.1 Algorithms · 19.1 Algoritmos
- 19.1.1 ADT algorithms - linked lists, binary trees, graphs, and Big O
- 19.2 Recursion · 19.2 Recursão
- 20.1 Programming Paradigms · 20.1 Paradigmas de Programação
- 20.1.1 The five addressing modes, and declarative programming with facts, rules and goals
- 20.2 File Processing and Exception Handling · 20.2 Processamento de Arquivos e Tratamento de Exceções
Presentation slides · Slides de apresentação · A-Level Computer Science · Ciência da Computação do A-Level (20)
- 1. Information representation · 1. Representação de informações
- 2. Communication · 2. Comunicação
- 3. Hardware
- 4. Processor Fundamentals · 4. Fundamentos do Processador
- 5. System Software · 5. Software de Sistema
- 6. Security, privacy and data integrity · 6. Segurança, privacidade e integridade dos dados
- 7. Ethics and Ownership · 7. Ética e Propriedade
- 8. Databases · 8. Bancos de Dados
- 9. Algorithm Design and Problem-solving · 9. Projeto de Algoritmos e Resolução de Problemas
- 10. Data Types and Structures · 10. Tipos e Estruturas de Dados
- 11. Programming · 11. Programação
- 12. Software Development · 12. Desenvolvimento de Software
- 13. Data Representation · 13. Representação de Dados
- 14. Communication and internet technologies · 14. Tecnologias de Comunicação e Internet
- 15. Hardware and Virtual Machines · 15. Hardware e Máquinas Virtuais
- 16. System Software · 16. Software de Sistema
- 17. Security · 17. Segurança
- 18. Artificial Intelligence (AI) · 18. Inteligência Artificial (IA)
- 19. Computational thinking and Problem-solving · 19. Pensamento computacional e resolução de problemas
- 20. Further Programming · 20. Programação Avançada
Course units and learning goals · Unidades do curso e objetivos de aprendizagem
These lessons teach selected course objectives. Check the remaining coverage gaps; the material is not a complete preparation programme. · Estas aulas ensinam objetivos selecionados do curso. Verifique as lacunas de cobertura restantes; o material não é um programa completo de preparação.
A.1 · Computer fundamentals
- Checking an asserted identity.
- Separate authentication from authorization. Authentication checks identity; authorization determines permitted actions. A threat model connects a valuable asset, a possible attack and an appropriate control.
- Use a fictitious school dataset to define users and permissions. Draw data flows, compare validation and verification, and specify tests for normal, boundary and invalid input. Do not use real credentials or student records in exercises.
- authentication
- Checking an asserted identity
- authorization
- Determining permitted actions
A.2 · Networks
- Achieved rate of useful data transfer.
- Transmission time depends on data size and rate. Total delay may also include propagation, processing and queueing. Encryption protects content under its assumptions but does not remove congestion or every metadata exposure.
- Trace a message route using a documented local model. Record payload size, units and measured time. Use school-approved networks and synthetic messages; do not scan or intercept another user traffic.
- throughput
- Achieved rate of useful data transfer
- latency
- Delay experienced in communication
A.3 · Databases
- Attribute set uniquely identifying a table row.
- A join combines rows according to a specified condition. The result count depends on relationship cardinality and filters. A foreign key constraint enforces a relationship rule; it does not automatically encrypt personal data.
- Design a small synthetic user-order dataset with no real personal information. Declare keys, test duplicate and missing-reference inserts, then check a query result against a hand-worked expected table.
- primary key
- Attribute set uniquely identifying a table row
- foreign key
- Attribute set referencing a key in another table
A.4 · Machine learning
- An attribute set uniquely identifying a record.
- A primary key uniquely identifies a record; a foreign key relates records. In prediction, leakage can expose information unavailable at the real decision time. Accuracy alone may hide an unbalanced target distribution.
- Use fictional booking records to identify entities, attributes and relationships. For a learning exercise, use a public non-sensitive dataset, separate training and test data, and describe who may be affected by errors. The current 2027 CS objective scope awaits the acquired guide.
- primary key
- An attribute set uniquely identifying a record
- data leakage
- Use of information unavailable at the intended prediction time
B.1 · Computational thinking
- A finite procedure solving a stated task.
- State input conditions and expected outputs. Use boundary cases, empty collections where allowed, duplicates and invalid values. Distinguish a wrong algorithm from a wrong implementation or an incomplete requirement.
- Trace a search over a small fictional sorted list. State the indexing convention. For binary search, update bounds so the remaining interval shrinks and reject unsorted input unless sorting is part of the task.
- algorithm
- A finite procedure solving a stated task
- boundary test
- A test at a limit of the allowed input range
B.2 · Programming
- A finite procedure solving a stated task.
- State input conditions and expected outputs. Use boundary cases, empty collections where allowed, duplicates and invalid values. Distinguish a wrong algorithm from a wrong implementation or an incomplete requirement.
- Trace a search over a small fictional sorted list. State the indexing convention. For binary search, update bounds so the remaining interval shrinks and reject unsorted input unless sorting is part of the task.
- algorithm
- A finite procedure solving a stated task
- boundary test
- A test at a limit of the allowed input range
B.3 · Object-oriented programming
- Controlling access to state through an interface.
- A method call acts on a particular instance. State changes should satisfy preconditions and postconditions. Polymorphism lets code use a common interface with different implementations when the contract is respected.
- Implement a small synthetic account or inventory model. Test two independent instances, rejected invalid operations and boundary values. Keep the model away from real financial accounts and credentials.
- encapsulation
- Controlling access to state through an interface
- instance
- An individual object of a class
B.4 · Abstract data types (HL only)
- A last-in-first-out abstract data type.
- Choose the structure for the required access pattern. Complexity depends on implementation and assumptions: removing the first item from a shifting array differs from advancing a head pointer in a queue.
- Trace operation sequences by hand, then compare a program with the expected states. Test empty, singleton and repeated operations. State overflow behaviour if capacity is fixed.
- stack · pilha
- A last-in-first-out abstract data type
- queue · fila
- A first-in-first-out abstract data type
Case study · Case study
- Completed work per unit time under a stated workload.
- A recommendation should connect a requirement to a mechanism and an observable test. For example, a concurrency problem requires a strategy that prevents conflicting updates, plus tests demonstrating the invariant. A claim about faster response requires comparable workload measurements rather than only a complexity label. Evaluate alternatives under the same stated conditions.
- Use an original school-approved scenario and synthetic data. Build a matrix of claim, supporting scenario evidence, technical explanation, limitation and acceptance test. Mark missing facts explicitly and show how the recommendation would change if an assumption failed. This prepares case-based reasoning without reproducing an unavailable IB assessment case study or inventing its examination rubric.
- throughput
- Completed work per unit time under a stated workload
- acceptance test
- A test of whether a specified user requirement is met
IA · Computational solution
- A finite procedure solving a stated task.
- State input conditions and expected outputs. Use boundary cases, empty collections where allowed, duplicates and invalid values. Distinguish a wrong algorithm from a wrong implementation or an incomplete requirement.
- Trace a search over a small fictional sorted list. State the indexing convention. For binary search, update bounds so the remaining interval shrinks and reject unsorted input unless sorting is part of the task.
- algorithm
- A finite procedure solving a stated task
- boundary test
- A test at a limit of the allowed input range
Preparing for this qualification · Preparação para esta qualificação
- This ordering records the 2027 A/B structure separately from the 2014 course final assessment in 2026.
- Do not carry forward old Options A–D or the old assessment weights. A.4 machine learning and B.3 OOP are in the new public structure; B.4 is HL-only.
- Current paper marks, case-study assessment differences, approved language conventions and IA rubric remain blocked pending the current guide.
- The project is a school-supervised working computational solution with requirements, tests and user evaluation, never an invented written replacement.
Teaching coverage still needed · Cobertura do ensino ainda necessária
- 2027 exact objectives/rubrics not verified from an acquired guide. These original foundation cases do not establish full current-course parity.
Specifications and sample documents · Especificações e documentos de exemplo
Course materials · Materiais do curso
- Study notes · Notas de estudo →
- Revision questions · Questões de revisão →
- Teaching guidance · Orientações de ensino · Teacher access · Acesso do professor →
- Teacher diagnostics · Diagnósticos do professor · Teacher access · Acesso do professor →
- Supervised task guidance · Orientações de tarefa supervisionada · Teacher access · Acesso do professor →
Course preparation · Preparação do curso
Documents are available. Board-specific notes, assessments and interactive past-paper practice are not yet available for every course. · Os documentos estão disponíveis. Notas específicas da banca, avaliações e prática interativa de provas anteriores ainda não estão disponíveis para todos os cursos.
Lessons · Lições →