Computational Thinking Problem Solving and Programming

General Principles

Computational thinking lies at the heart of the course (45 hours) and is integrated with other topics. This will be supported by practical activities including programming.

External assessment (examination) focuses on the student’s algorithmic thinking, as much as their mastery of the syntax of a particular programming language.

You will therefore have to solve problems and produce pseudocode and/or flowcharts of algorithms designed to solve the problems set. How to think of ways to manipulate arrays is an essential skill.

An algorithm is a sequence of steps, instructions or procedures designed to solve a problem.

You will also learn how to implement algorithms using a high level programming language. (Easier to learn, more portable, debug and document than low level) There is no designated language but Python, Java,, Javascript and C# are the most popular.

As I intend to offer Option D which is the OOP paradigm we will focus on Java. The exam board tend to use Java for the examples given especially in Paper 2. As Java is, at its simplest, a text file/console based system and not a GUI one we will add the GUI library - JavaFX.

AWT and Swing are the other options and have the advantages of being ubiquitous and built into Java. JavaFx is the latest though and you can create more modern looking interfaces using css files.

The information below is mainly non language specific. It contains what you need to know for the SL and HL papers.

It is important to realise there is nearly always more than one way to solve a problem algorithmically. The examination board's markscheme can give 3 different examples and even then you may come up with another.

See Moodle for the rest of the notes

2. Computer Organisation (6hrs)

I have made topic 2 the first one to learn. I think it will help your credibility with friends and family if you know how computers work first.


1. System
Fundamentals (20 hrs)

Here we learn how new computer systems start with dissastifaction with how things are. We learn the principles of succesfully designing and implementing a new system into a business context.


3. Networks (9 hrs)

Networks involve hardware and software that need to keep to a set of rules to give us all their amazing benefits of shared resources and information


4. Computational thinking (45 hrs)

Here is where we learn how to create algorithms and programs to solve problems.


A USB flashdrive has been provided with Eclipse and JavaFX as well as other useful programs.

I have created the course below to get you up to speed on Java and JavaFX quickly.

Java & JavaFX Programming Course


Array DNA Task