IA: Review of Computational Thinking

  • Logically: If… then… else. Decision-making.
  • Procedurally: Things happening in a specific order.
  • Ahead: Planning, extensibility, array resizing, using a linked list instead of a static list, etc.
  • Abstractly: Class definitions, schematics, encapsulation.
  • Concurrently: Saving time by doing lots of things at once.
  • Recursively: Exploiting repeated patterns.

Things to include in your IA video

Things to include in your video:

  • Brief sentence of introduction saying in plain English what the application does
  • Creation, editing and deletion of one data item, from scratch.
  •  Mention of every success criterion with a demonstration that it has been fulfilled
  •  If necessary, cut to example with more data already added to show sorting, searching, filtering, etc
  •  Mention of key data structures and algorithms
  •  Mention some examples of computational thinking: Ahead, Logically, Procedurally, Abstractly, Concurrently, Recursively
  •  By all means tab to a piece of code in Netbeans to showcase your programming

Lessons from the Networks test

Work harder. Don’t be complacent. Don’t use lessons as your only resource for learning.

The truth is that there are only about 100 possible questions that you could be asked in Computer Science, and it would not be difficult to learn all the answers. You need to use the Guide to help you decide what to learn, and then you should use me, my blog, your textbook, other IB Comp Sci web pages, and finally Wikipedia, to produce your own set of perfect notes. Then you should learn them. Simple.

Belt and braces approach when questions overlap

Don’t be afraid to put some of the same content in two related questions if you’re not sure where it should go. An example was the LANs question.

(a) Define LAN [1 mark]

    • Local Area Network
    • Restricted to a single location, e.g. a school or office

(b) Outline two features of a LAN [2 marks]

    • Restricted to a single location, e.g. a school or office
    • Uses wires to connect computers, e.g. Ethernet cable
    • Allows users to share resources such as printers and files

Notice that each answer is surely enough to score the full marks, but that since you don’t know whether the definition requires you just to say what LAN stands for, you have put one of the responses in both answers, just to make sure.

Use Plain English. Get the fundamental concepts across. If in doubt, just answer the questions: What, when, why and what happens next

Describe how a check sum could ensure data integrity in the transmission of data. [3 marks]

    • A mathematical calculation is done using the bits of the data to be transmitted.
    • The result is put into the header of the data packet before it is sent.
    • The receiver does the same calculation on the bits and compares with the result in the header.
    • If the two results are different then an error has occurred and the packet is requested to be resent.

Always spell out what acronyms stand for and provide simple definitions of terms, even when not directly asked to.

Use bullets correctly.

Bullets help to structure your answer to some questions. Other, longer questions require you to arrive at some sort of synthesis (bringing together) or conclusion and bullets are to be used sparingly in those questions.

You can use bullets exclusively on this question:

Explain how data is transmitted using packet switching [3 marks]

But you should provide at least one unbulleted paragraph at the end of this question:

Evaluate the effect that increased networking has had on people’s lives [6 marks]

Don’t hint or imply that you know something. State it boldly and clearly.

If you are asked “How can data transmission speeds be increased?” don’t just say “By improving hardware”. Improving hardware how?? State it clearly, preferably with an example: “By using a faster transmission medium, for instance fibre-optic cable instead of copper wire.”

Don’t brain-dump

Students often write everything they know about a topic, instead of answering the specific question. You are better to write one relevant answer than two irrelevant ones.

Give examples, even when not required to

There are often extra marks set aside in mark schemes for examples.

Protocols are agreed sets of rules governing communication between two parties, e.g. Internet Protocol (IP) governs the transmission of data from one host to another on a network.

Use the language to show the structure of your answer

  • If the encrypted message is intercepted on the network, then it won’t be possible to read its contents.
  • Networking has been thought to contribute to obesity because people no longer have to leave the home to work or shop.
  • There is no longer a clear boundary between work life and home life so people often find themselves working longer hours and spending less time with their families.

If the question is worth 1 mark, give 2 points. If it is worth 2 marks, give 3 points.

A good way to show that you understand why something is done is to state the consequences of not doing it.

In networking, protocols are agreed sets of rules governing how data should be interpreted. Without protocols, computers would not be able to understand the data that they receive.

Make sure you refer to the context of the question if you are asked to. A good way to answer context-dependent questions is by outlining the sequence of events.

Outline the way in which encryption should be used when logging into a website [3 marks]

    • When the user types in their username and password, these should be encrypted.
    • Once they are encrypted, they can be sent out across the network. 
    • If they are intercepted on the network, the attacker will not be able to read them.
    • When they reach the destination server, they can be decrypted using a special key.
    • Then the website can authenticate the user.

Transitional phrases

Thus, for example, for instance, namely, to illustrate, in other words, in particular, specifically, such as.
On the contrary, contrarily, notwithstanding, but, however, nevertheless, in spite of, in contrast, yet, on one hand, on the other hand, rather, or, nor, conversely, at the same time, while this may be true.
And, in addition to, furthermore, moreover, besides, than, too, also, both-and, another, equally important, first, second, etc., again, further, last, finally, not only-but also, as well as, in the second place, next, likewise, similarly, in fact, as a result, consequently, in the same way, for example, for instance, however, thus, therefore, otherwise.
After, afterward, before, then, once, next, last, at last, at length, first, second, etc., at first, formerly, rarely, usually, another, finally, soon, meanwhile, at the same time, for a minute, hour, day, etc., during the morning, day, week, etc., most important, later, ordinarily, to begin with, afterwards, generally, in order to, subsequently, previously, in the meantime, immediately, eventually, concurrently, simultaneously.
At the left, at the right, in the center, on the side, along the edge, on top, below, beneath, under, around, above, over, straight ahead, at the top, at the bottom, surrounding, opposite, at the rear, at the front, in front of, beside, behind, next to, nearby, in the distance, beyond, in the forefront, in the foreground, within sight, out of sight, across, under, nearer, adjacent, in the background.
Although, at any rate, at least, still, thought, even though, granted that, while it may be true, in spite of, of course.
Similarity or Comparison
Similarly, likewise, in like fashion, in like manner, analogous to.
Above all, indeed, truly, of course, certainly, surely, in fact, really, in truth, again, besides, also, furthermore, in addition.
Specifically, especially, in particular, to explain, to list, to enumerate, in detail, namely, including.
For example, for instance, to illustrate, thus, in other words, as an illustration, in particular.
Consequence or Result
So that, with the result that, thus, consequently, hence, accordingly, for this reason, therefore, so, because, since, due to, as a result, in other words, then.
Therefore, finally, consequently, thus, in short, in conclusion, in brief, as a result, accordingly.
For this purpose, to this end, with this in mind, with this purpose in mind, therefore.

More on how to score well in exams

Explain the advantages of encapsulation in software development (6 marks)

Important points when answering a question like this:

  • Look for the command term. What does “explain” mean? It means state with reasons.
  • Each point is likely to get 2 marks: one for stating, one for the reason.
  • Use words like “because” to structure your answer and show the examiner that you are (1) stating… (2) with reasons. Help the examiner give you marks!
  • Although the question doesn’t overtly ask for a definition, stick one down anyway; you won’t get penalised for it and you might pick up a mark that you would otherwise have missed.
  • It’s always a good idea to stick a bit of code down because
    • It tends to score a lot of marks
    • It’s easy
    • It gives you something to refer to in the rest of your answer

Here are some examples of good ways to score marks in a question like this. (There is far more information here than would be required for a six-mark question, but it’s always a good idea to put down a little more than is required if you have time.) I have included the points at which I think an examiner would give you a mark.

The idea of encapsulation is to restrict access to the implementation of an object by exposing a public interface (mark). This is also known as “data hiding”. (mark)


class Student {
  private String name;
  public String getName(){
    return name;
  public void setName(String s){
    name = s;


The variable name is declared private and therefore cannot be accessed from outside the class (mark). The name is made accessible by the “accessor” methods getName() and setName() which are declared public and so can be accessed from anywhere (mark).

Advantages of encapsulation:

  • Makes data more secure (mark) because it prevents other objects from accessing an object’s private variables and methods (mark).
  • Makes objects easier for other programmers to use (mark) because complex and possibly confusing code is hidden (mark)
  • Increases software reliability (mark) because even if an object’s implementation is changed, its interface can remain the same and so other parts of the program that use the object do not need to be changed (mark).
  • Makes collaboration on projects easier (mark) because the interface of an object can be specified before it is coded thereby allowing other developers who plan to use the object to start work earlier (mark).

A car is a good real-world example of encapsulation because:

  • The confusing “implementation” of the car (ie how it works) is kept under the hood (mark).
  • A simple “interface” is provided, in the form of a steering wheel, gear stick and pedals (mark)

This allows users to focus on aspects of the car that matter to them (mark), without having to get caught up in the complicated inner workings of the machinery (mark).

Standard algorithms

Standard Level

  • Print all items in an array
  • Find the max/min value in an array
  • Finding the index of a particular value in an array
  • Inserting a value in an array
  • Removing a value from an array
  • Sorting an array using bubblesort
  • Sorting an array using selectionsort

Higher Level

  • Binary search of an array
  • Stack.push()
  • Stack.pop()
  • Queue.enqueue()
  • Queue.dequeue()
  • Adding a node to a linked list
  • Removing a node from a linked list
  • Adding a node to a binary tree
  • Removing a node from a binary tree
  • Preorder, Inorder and Postorder binary tree traversals