Cart
Your cart is empty

Quantity:
0

Total:
0

International Baccalaureate IB Computer Science

B.1.1.1 Construct a problem specification.
The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria.
B.1.1.2 Computational Thinking Basics
Describe the fundamental concepts of computational thinking.
- Abstraction, algorithmic design, decomposition, pattern recognition
B.1.1.3 Computational Thinking in CS
Explain how applying computational thinking to fundamental concepts is used to approach and solve problems in computer science.
- 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.
B.1.1.4 Standard Algorithm Flowcharts
Trace flowcharts for a range of programming algorithms.
- Use of standard flowchart symbols to depict processes, decisions and flows of control
- Standard flowchart symbols: Connector, Decision, Flowline, Input/Output, Process/Operation, Start/End
- Flowcharts for execution flow, to track changes in variables and to determine output
B.2.1.2 Substring Extraction & Edit
Construct programs that can extract and manipulate substrings.
- Writing of programs that accurately identify and extract substrings from given strings, demonstrating the ability to perform various manipulations, such as altering, concatenating or replacing
B.2.3.1 Instruction Sequencing
Construct programs that implement the correct sequence of code instructions to meet program objectives.
- The impact of instruction order on program functionality
- Ways to avoid errors, such as infinite loops, deadlock, incorrect output
B.2.3.2 Using If-Else Constructs
Construct programs utilizing appropriate selection structures.
- Must include: if, else, else if (Java), elif (Python), to execute different code blocks based on specified conditions
- Selection structures with or without Boolean operators (AND, OR, NOT) and/or relational operators (<, <=, >, >=, ==, !=) to control program flow effectively
B.2.4.1 Algorithm Complexity & Big O
Describe the efficiency of specific algorithms by calculating their Big O notation to analyse their scalability.
- The time and space complexities of algorithms and calculating Big O notation
- Algorithm choice based on scalability and efficiency requirements
B.2.4.2 Linear vs Binary Search
Construct and trace algorithms to implement a linear search and a binary search for data retrieval.
- The differences in efficiency between different methods of linear and binary search
- Use of search technique based on efficiency requirements—for example, searching a database for a sorted/indexed list of names to find a phone number, versus searching by the number to identify the name
B.2.4.3 Bubble & Selection Sort
Construct and trace algorithms to implement bubble sort and selection sort, evaluating their time and space complexities.
- The time and space complexities of each algorithm, denoted by their respective Big O notations
- The advantages and disadvantages of each algorithm in terms of efficiency across various data sets
B.2.4.4 Recursion: Concepts & Apps
Explain the fundamental concept of recursion and its applications in programming. (HL only)
- The fundamentals of recursion and its advantages and limitations
- The utility of recursion in solving problems that can be broken down into smaller, similar subproblems
- Recursive algorithms, including but not limited to quicksort
- The limitations of recursion, including complexity and memory usage
- Situations that best suit the use of recursion, including fractal image creation, traversing binary trees, sorting algorithms
B.2.4.5 Simple Recursive Algorithms
Construct and trace recursive algorithms in a programming language. (HL only)
- Simple, non-branching recursive algorithms in programming only