Computer Science – Prerequisites

The following knowledge is required to fully engage with/get the best experience from the summer school. If you are missing any of this knowledge it is likely you will struggle to keep up in some sessions, and therefore you may not get the most out of the summer school.

You must have:

Programming experience in at least one text-based imperative language. A non-exhaustive set of examples are –

Python
Java
C
C++
C#
JavaScript

(Note: HTML/CSS are not sufficient.)

Within this you should be comfortable with:

Basic input/output using the command line.
Conditional statements (e.g. IF-THEN).
Iteration (e.g. WHILE and FOR loops).
Creating and using functions/methods/procedures (names differ between languages).

It is not necessary to know any one particular language – specific syntax will be taught during the week. You also do not need to have done any object-oriented programming before, as this will the topic of a session.

(Exceptionally strong users of Scratch may be okay, provided you are familiar with the above concepts. You must be prepared to use text-based languages for the course however, and you may find some sessions harder than others will. Ideally, you should try to introduce yourself to a text-based language, like Python, beforehand.)

In addition to the programming above, you should be familiar with:

The idea of an algorithm; and how to discuss algorithms by means of flowcharts and pseudocode.
Binary; how to convert between decimal and binary; and how to perform basic binary addition/subtraction.
Basic computational logic, such as the NOT, AND, OR, and XOR logic gates.