Computer Science

We are not going to sugar coat this – computer science is hard be that understanding computer systems or computer programming. Of course we can look at computers as input > process > output or as a fancy calculating machine (both of which are true) but if we want to really understand how computers work and what they can do we need to address the complex science and engineering that goes into building a computer and a wider computer system (networked computers).

Computer Science and Computer Engineering

“Computer Science is boring” Yeah. It certainly can be.

This statement often doesn’t come with an exclamation mark as for many the way computer science is taught it boring because it talks about theory and invisible processes that for many people working in computing are irrelevant. The reason why at least at the GCSE level computer theory is taught is that without a broad understanding of how things work (the engineering) and why they work (the science) it’s tricky to build on that knowledge.

When computers go wrong

The need to understand how computers work

For example many programmers write programs where the code repeats itself until a condition is met (or the computer spins out of control – this is some often accidental but one man’s is another man’s terror e.g. computer viruses). Understanding at the machine level what the computer is doing with its ones and zeroes (see binary) is not needed when a programmer is on their computer or development environment. However, computers work at scale with numbers so big it’s tricky to get your head around them – trillions and trillions and operations per second transferring information to and fro at close to the speed of light. This poses three challenges to computer programmers that work on programs that are used by the public:

  1. Things can go bad very quickly (and can lead to additional problems) – the speed of computers make it tricky to fix something before the impact happens. For the latest example check out the CrowdStrike IT outage in July 2024 where a small change to a security system took out millions of Windows computers used in everyday life. Like with machines that are runaway stopping them is very difficult and often drastic.
  2. Things can be difficult to fix (and so take time) – computers don’t have any real moving parts so when things do go wrong it’s not a case of seeing or hearing something. To fix things the program has to be run in parts and see where the problem is. This takes time and may not show the problem as the testing is done in a non-live environment. Best to know the small things work at scale before putting them all together
  3. Things need to be efficient (and cost effective) – computers use resources to process and these resources are bought in some form of unit or block. If a computer can use its resources in an efficient way by only paying for something that will be used then it’s more cost effective. It is possible to get an inefficient program to run faster by adding more resource but that will cost more money and for some computer systems the resources can be fixed. In the old days this was a major consideration where computing was expensive but even in a world where it’s a lot cheaper the simpler the system the easier it is to fix.

There are other reasons as well as to why having a fundamental understanding of how a basic computer works really helps everyone that wants to work in computing be that computer hardware, software, or networking.

To cover the basics I’m starting with GSCE from examining board OCR (GCSE – OCR). From there, if you can take it I’m looking at the next level (A Level – OCR (To come)).

Let’s have a look at the GCSE and start to explore each topic to a depth where I think it’s helpful to understand how computers work.

The first thing on the syllabus is computer systems.