International Baccalaureate IB Computer Science

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