Learn the basics of

Computer Science

This course will introduce you to the world of computer science in programming and to understand the way in which software communicates with hardware. At the end of this course, students will be able to control computers in various ways and be well-equipped with the fundamentals of computer programming. Practical demos will form the backbone of your coding skills and inspire a problem-solving mindset.



All levels



Course details


Diploma in Computer Science

1.Enter Computer Science

Your first lesson in Computer Science will leave you appreciating the relationship between the real world and computers. You will understand key terms, the relationship between math and computing, notable progressions and why computer science is such a great field to take up!

2.Processes, Procedures, Computers

In this lesson, you will learn how a computer processes information and the procedures it goes through to convert that information into something a human can understand. You will also dive into different operating systems, their structure and their characteristics. By the end of this lesson you will know exactly where programming falls into all of this.

3.Measuring Computing Power

Do you know how the speed of a computer is measured? Well after this lesson, you will! Learn about computer architecture and the structure of the Complex Instruction Computing Set (CISC) before moving on to binary questions and discussing where computers can fall short.

4.Language Construction

Language construction is instrumental in understanding computers, and this lesson breaks down how computers compare to the natural human language. You will learn to understand the binary system and how it is used in instructing computers, before moving on to transducers which enables computers to respond to physical phenomena.

5.Programming Languages

There are many different programming languages, and to this day there are new ones being created. Explore the difference between low-level and high-level languages, their characteristics, and where and why they are used.

6.Problem Definition

By the end of this lesson, you will be able to define a computational problem and know how they are expressed mathematically. We'll define mathematical modeling and go through notable examples of models, before understanding common computing problems.

7.Formulating Solutions

Pseudocode is about sketching pieces of code in preparation for writing actual code. You'll first explore the relevance of pseudocode and why you need it, before starting the process of defining, analyzing and implementing your own pseudocode.


The term "algorithm" is popular these days, most notably on social media. Algorithms are everywhere, and computers are responsible for their creation. After this lesson, you will know exactly what they are, how they are formulated, and the process of going through pseudocode to algorithm.


1.C Language

Module 1 has laid the foundation, and now you are ready to look at specific programming languages in detail. In this lesson, we step into the world of C programming and discover its roots, characteristics, and uses.

2.Environment Setup

This lesson will see you installing a Development Environment which is where we create our code, and the various functions and layouts of this environment will be explored.

3.Program Structure

In this lesson, we will develop a understanding of the layout of a typical program. You will understand the structure of the program in relation to the computational procedures we looked at in Module 1.

4.C Syntax

Like most things, there are rules and laws that govern code. This lesson will teach you how the C language is spoken and all the rules around it.

5.Data Types

There are so many different data types in computer science, and after today you will be able to recognise a lot of them, for example arrays and records. You'll know how these data types are used in programs and the results that they can achieve.

6.Variables and Constants

In this lesson, you will begin to understand variables and constants! Variables and constants are used to change the behaviour of your code at runtime, and you'll know exactly what this means after completion of this lesson.

7.Basic Input and Output

Explore the various ways of accepting input from the user and displaying output to the user.


An operator is a symbol that tells the compiler or interpreter to perform specific operations, and today you will develop an understanding of operators in programs and how they work in conjunction with variables, constants and other program components.

1.Decision Making

The first lesson in the advanced module starts off with decision making. Specifically, we will discover how computers deal with options - make decisions - when presented with a set of choices as input.

2.Loops and Functions

Nobody likes repetitive tasks, which is why we have computers to deal with them! Today we will explore the different methods of handling repetitive operations and routines.

3.Storage Classes

By the end of this lesson, you will have learnt how to manipulate variables to add various properties, which aid a computer in memory management.


When it comes to large or organised data sets, arrays need to be used. You'll learn exactly how these are used in this lesson.


In computer science, a pointer is an object in many programming languages that stores a memory address. You will discover the structure and functions of these, and learn how to apply them when manipulating data.

6.Type Casting

We get into the more complex aspects of variables in this lesson, having covered variables in the previous modules. Today you will learn how to change variable types at runtime.

7.Preprocessors and Header Files

In every industry and even in our daily lives, we want to streamline what we do. For computers, an aspect of this is preprocessor directives and header files, which streamline code and shorten it. You will know how this works by the end of the lesson!


This lesson expands on the previous lesson topic and dives into libraries, using them to deal with complex tasks without having to code the nitty gritties yourself.

1.Variable Arguments

If you haven't figured it out already, variables are a huge topic in programming! Now, we are adding arguments to the mix. An argument is another factor in customising a program.

2.Memory Management

If you want your code to run faster, you need to understand memory management. Memory management helps your code become more efficient, and therefore execute more quickly. Speed is everything!

3.Command Line Arguments

Learn how to pass arguments to your program at runtime rather than hard coding them into your code. this is important when you want to reduce the length of your code.

4.File Input and Output

Like in the real world, file management makes our lives much easier. Today we look at file input and output - learn how to save your work to a file and retrieve information from it.

5.Error Handling

Even the most seasoned programmer encounters errors - if we expected everything to be perfect from the beginning, nothing would ever get released. Explore how to handle errors that are encountered during runtime in order to minimise program crashes.


Debugging is about detecting and removing existing and potential errors (bugs) in a software code that can cause it to behave unexpectedly or crash. You'll learn how to read this code and understand it enough to pinpoint and rectify errors.

7.Applications of C

Continuing your knowledge in the C programming language, we are looking at the many industrial applications you could come across.

8.Course Summary and Wrapping Up

Wrap up your Computer Science course by looking at the dos and don'ts of C, as well as its limitations. We will then recap the most important takeaways in this course, preparing you for the next step in your journey!