Unit 3: Algorithmic Problem-Solving
This unit focuses on how algorithms are used for solving complex problems. Algorithms are systematic problem-solving procedures that exist independently of computers. The study of algorithms lies at the heart of computer science and provides the formal foundation for computer programming. Algorithmic problem-solving is a technique that can be applied very broadly in addressing a wide range of complex practical problems.
In Area of Study 1, students develop and apply a range of knowledge and skills to model real-world information problems. In Area of Study 2, students learn how to design algorithms following a variety of simple algorithm design patterns and learn graph algorithms. In Area of Study 3, students apply the understanding developed in Areas of Study 1 and 2 to design a solution for a real-world problem that includes both a data representation and algorithm design. Area of Study 3 forms the first part of the School-assessed Task that is completed in Unit 4.
Students are not required to know about the implementation of abstract data types (ADTs), as the main focus of this study is on algorithmic thinking using ADTs rather than on the details of how ADTs are implemented.
Areas of Study:
- Data modelling with abstract data types
- Algorithm design
- Applied algorithms
Unit 4: Principles of algorithmics
This unit focuses on the performance of algorithms and the scope and limitations of algorithms. Students develop the knowledge and skills to identify the resources that an algorithm needs to function efficiently and effectively. In Area of Study 1, students study the efficiency of algorithms and techniques for the formal analysis of algorithms and apply these techniques to an algorithm they designed in Unit 3 Area of Study 3. They also learn about soft limits of computability, namely, problems that can be solved in principle but that cannot be solved for practical problem sizes due to time or space constraints. In Area of Study 2, students learn about a variety of more sophisticated algorithm design patterns and apply their knowledge of these to construct an improved solution for the problem solved in Unit 3 Area of Study 3. In Area of Study 3, students learn about modern data-driven computation and the existence of hard limits of computability, such as problems for which solutions cannot be computed by any computational machinery.
Areas of Study:
- Formal algorithm analysis
- Advanced algorithm design
- Computer science: past and present