Topics 2.1 Algorithms 2.1.1 Computational thinking 2.1.2 Designing, creating and refining algorithms 2.1.3 Searching and sorting algorithms 2.2 Programming fundamentals 2.2.1 Programming fundamentals 2.2.2 Data types 2.2.3 Additional programming techniques 2.3 Producing robust programs 2.3.1 Defensive design 2.3.2 Testing 2.4 Boolean logic 2.4.1 Boolean logic 2.5 Programming languages and Integrated Development Environments 2.5.1 Languages 2.5.2 The Integrated development Environment (IDE)