What is Computer Science?

Computer Science encompasses theoretical ideas about how information is stored and processed. How can we express step by step instructions (algorithms) necessary to write useful programs to solve real world problems such as health, climate change, automation, data science and business and industrial processes.

Computer Science is therefore having a profound effect on society and this is discussed in the course. Why is Computer Science classed as a "science"? Computers take input, processes it and then stores or outputs information. Plants do something similar, outputting oxygen and storing sugar from the process of photosynthesis using inputs like sunlight and water. In addition, like all sciences, it includes an organised body of knowledge, a track record of non-obvious discoveries, an experimental method to test hypotheses, and an openness to any hypothesis being falsified.

In this website I have tried to take some very technical topics and make them accessable and easier to understand. Therefore it will be useful for A level pupils as well as IB. There are no official text books (look over on the right for resources) but many teachers have done their best to provide great resources and I am grateful for their work, ideas and willingness to share.

If you are a teacher or student please feel free to use the content here.

Preparing for the course

Your teacher will be using Google Classroom to set classroom assignments . Set up a folder structure in Google Drive for Computer Science. As the PC profiles in the ICT suite are wiped clean every night you will need a back up system such as Google Drive. Your project work and notes CAN NOT solely be on a USB flash drive!

Software required:


Visual Studio Code is a freeintegrated development environment made by Microsoft for Windows, Linux and macOS. It is installed on the the school computers you should install it on your own computer - download here.

In addition we will be making use of replit which is an online IDE for many languages. So set up an account using your school email.


Dia is again an open source application which will help you design flowcharts and UML diagrams etc. It's included on the flash drive.



SoloLearn can be installed on your smartphone or app. You can use the free version to learn Python. When you have 10 minutes or so fire it up and learn.



Git & Github

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.

When given a choice to make files private or public, choose private and avoid giving personal information here and on forums.

Professional attitudes required:

You will need a spirit of resilience, collaboration, creativity, humility and honesty to succeed.

In terms of resilience, programs rarely work first time for example. That would be normal, so don't worry! Competence at programming is not innate but is rather a learned skill that can be acquired and improved with practice. Try not to keep making the same errors though!

I have always found computer people really helpful and not too proud to seek advice themselves. Just look at the Stack Overflow site.


By all means use forums to ask for help ( all programmers do) but you won't be popular unless you have a go first and share what you have tried to solve your problem.

In addition, you must acknowledge this help in your work by referencing it.



2. Computer Organisation (6hrs)

I normally teach topic 2 first. 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.


These are available for each tutorial. Remember after each lesson review the work of the day.

Here is the course syllabus

In each tab on this website there is a brief introduction to each topic but the main course content is on Moodle.

We will be using Python as our high level programming language. SoloLearn have a great app to install on your phone or tablet which you can spend 10 minutes or so now and again to progress your knowledge although we will be learning in class.

Use the brilliant website resources below for your notes as well as those in this website.


and this one:


Both have been designed to give IB mark scheme orientated information.

Past papers are represented by this image. There is one for answers too


Note that these are encrypted.

Your teacher will give you the password.

Revision Notes:

A useful textbook

Mindmap Revision with past paper questions

Student Revision notes here ( courtesy of Leonard Marshall-Afzal)