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

Case Study Resources

This applies to both HL and SL.

The Case Study is available here: Case Study 2012-2013

At higher level, 40 marks out of 100 on paper 2 (1 hour out of 2.5 hours) are devoted to the case study. At standard level, it’s 30 marks.

In your answer you should highlight:

  1. New developments that have happened since you started your IB course
  2. Current, real-life applications of the technology
  3. The social significance of the case study material

You will be free to consult the case study during the examination. You are not expected to remember it.

Some past case study questions are available here: Case Study Questions


A report from MIT’s Technology Review that suggests that slow data storage media on smartphones is the cause of the latest performance bottleneck:

Some ideas about the directions that future Smartphones will take. Worth reading the comments at the bottom. I agree that either the term “Smartphone” will have to go, or we will have to lose the concept of “phone” entirely.

Good article about the impact of smartphones on the medical profession. Very suitable for citing in the exam. Just what the examiners will be looking for I think.

Here is an overview of some of the security features of the iOS and Android platforms.

This is some stuff I ripped from Dave Mulkey’s site:

Smartphone Case Study Questions

Use the Case Study, the Internet, the web-links below and any other resources
(including other students) to answer the following questions, thus preparing for

  1. (a) State 3 common features of a Smartphone, not including making phone calls.
    (b) Explain why it is useful to “converge” so many features into a Smartphone.
  2. (a) Explain the main difference between ROM and RAM.
    (b) Explain why a phone probably contains BOTH RAM and ROM.
  3. (a) Explain the major difference between Flash Memory and RAM.
    (b) Explain the purpose of Cache Memory.
  4. (a) Outline 2 reasons that a Smartphone would not use the same OS as a PC.
    (b) Outline 1 example of compatibility between Smartphone Operating Systems.
    (c) Outline 1 example of incompatibility between Smarthphone Operating Systems.
  5. (a) Outline 2 reasons that a Smartphone would not use the same CPU as a PC.
    (b) State the meaning of RISC and outline why this is useful in a Smartphone.
  6. (a) Outline 1 common use of Bluetooth in a Smartphone.
    (b) Explain the major difference between WiFi and Bluetooth.
  7. (a) Explain how Frequency Hopping works.
    (b) Explain why Frequency Hopping is important for Smartphone networks.
  8. (a) Outline 2 major differences between Infrared connections and USB connections.
    (b) Outline 1 reason that WIMAX is better than WiFi.
  9. Outline the infrastructure necessary to connect a Smartphone to the Internet.
  10. (a) Explain why “packet switching” is a significant improvement in Smartphone operations.
    (b) Explain why GigaBit data transfer rates are needed in 4G phones,
    including a specific example.
  11. (a) Outline the difference between Analog and Digital data transfer.
    (b) Outline 2 clear advantages of Digital over Analog data transfer.
  12. (a) Outline one useful feature of MPEG4.
    (b) Outline the difference between compression and encryption algorithms.
  13. (a) Explain why encryption might be important for a Smartphone user.
    (b) Explain why keeping data in your data centre reduces the need for encryption.
  14. (a) Explain why a company might forbid employees from running some
    applications in the Smartphone.
    (b) Explain what a computer virus is and how this could effect a Smartphone user.
  15. (a) Explain the term VPN.
    (b) Explain the difference between a VPN Cache and Cache Memory.
  16. (a) Outline 2 methods that a company can use to provide security when
    an employee’s Smartphone has been lost or stolen.
    (b) Explain why your methods from (a) would or would not be
    effective against a “man-in-the-middle-attack”.
  17. (a) Outline Smartphone features that might be specifically useful for
    each of the following professions (do not include phone calls):
    Educators , Travelling businessmen , Police
  18. (a) Explain what “24/7” means.
    (b) Outline one advantage and one disadvantage of 24/7 connectivity.
  19. Outline 2 useful innovations that might become available in Smartphones
    in the near future (say 5 years) that are not generally available now.
  20. (a) Explain what “phishing” is.
    (b) Decide whether “phishing” is exclusively a problem for Smartphone users
    and justify your answer.

More Questions from Dave Mulkey

(4a)  A SmartPhone is likely to contain 4 types of memory:
—- ROM
—- Cache Memory
—- RAM
—- Flash Memory

For each of the 4 memory types, outline what might be stored in it that would probably NOT be stored in the other memory types.  In each case, explain why this is the best choice for the purpose in a SmartPhone. [8 marks]

(4b)  Outline one common security precaution that could prevent SmartPhone users from having their privacy compromised. [2 marks]

(4c)  Outline 2 significant differences between a Bluetooth piconet and a cell phone network. [4 marks]

(4d)  Describe 2 significant advantages of using a touch-screen in a SmartPhone rather than alternative devices. [4 marks]

(4e)  Outline 2 reasons that a SmartPhone user might have difficulty using a normal web-site. [4 marks]

(4f)  Convergence has led to SmartPhones with many features beyond making phone calls. Describe 2 tasks that can be performed by a high school student that could not be performed as well with a computer or a traditional cell phone. Include clear reasons that the SmartPhone is better for each task. [4 marks]

(4g) Describe one advantage and one disadvantage that society as a whole may experience as the number of SmartPhone users increases in the near future; justify your ideas. [4 marks]

(4i)  In the near future (within 5 years) we can expect technology improvements that enable new features in SmartPhones.
(i)  Suggest one useful new feature that might become available on SmartPhones in the near future. [2 marks]
(ii)  Outline one (or more) technological improvements that must occur in order to make your suggestion (above) possible. [2 marks]

(4j)  We still do not have real 4G SmartPhones available, but they will be available soon. Describe an improvement that will be noticeable when we have Gigabit per second connections, including an explanation of why this doesn’t work with megabit connections. [2 marks]

(4k)  Explain 2 reasons that a SmartPhone uses a different CPU than a desktop or notebook computer. [4 marks]

Extra Interesting Case Study Links

Cell Phones at HowStuffWorks

Frequency Hopping Explained


Kill-Switch Stories

Harald Haas: Wireless data from every light bulb

More About Kill-Switches

Unlimited Computer Graphics Power

Scientific American Video about Ubiquitous Computing

Official Smartphone Case Study Links

All About Symbian




www .bluetooth .com/English/Products/Pages/Bluetooth_Low_Energy_Technology_Advantages .aspx


How Stuff Works

Memory Breakthroughs for SmartPhones


Smartphone security lacking at many businesses,294698,sid14_gci1348589,00.html

Smartphone Security Put on Test

Symbian Ships Nearly 300,000 Devices A Day In Q2 2010  (broken link)

Virus writers hit Google Android phones

What really is a Third Generation (3G) Mobile Technology
www .itu .int/ITU-D/imt-2000/DocumentsIMT2000/What_really_3G .pdf

Nokia Morph Concept

Are You Addicted to Your Mobile Phone?
http://connecttheworld .blogs .cnn .com/2010/04/20/are-you-addicted-to-your-mobile-phone

Using Your Smartphone Safely .html

Worst Computer Viruses


Apple Iphone Design

Bluetooth at How Stuff Works

Smartphone surge helps ARM

HL Class Task: Merging two sorted files

One of the past paper questions in the File Organization presentation asks what you would do if you had 10,000 large data objects that you wanted to sort, but you couldn’t read them all into RAM at the same time because they are too big.

The answer to this is to read small batches of data into RAM, sort them there using some sorting algorithm like quicksort, and then write them back to the disk in order. Do this repeatedly and you will have, say, 100 batches of 100 sorted objects. Then you can take pairs of 100 objects and merge them into 200 sorted objects, then take pairs of 200 objects and merge them into 400 objects, 800, 1600, and so on until the whole data set is merged.

The point is that you can merge two sorted lists without reading the lists into RAM first. This is a useful technique.

Continue reading

Referencing sources for ADTs

See below for a detailed response. My advice would be to reference your Java textbook both in the bibliography, the mastery index and the source code where you label the code for which you are claiming the ADT mastery factor.

My post to the IBO Computer Science forum:

From the 2006 Subject Report:

Candidates must reference any code that is taken directly or indirectly from another source – this will be the usual case for an ADT as it is extremely unlikely that a candidate will write an ADT from scratch.

Extremely unlikely? Is it? Surely any reasonable HL student is expected to be able to write the code for a Linked List or Binary Tree from scratch. Are students really expected to reference where they got that information from?



The reply:

Hi Justin,

I’d interpret this as meaning that a high school student is not likely to “invent” the concept of a Linked-List.  They will certainly have seen examples in class or in a text-book.  I think the normal situation is that HL students have lectures where the teacher explains how a Linked-List (or other ADT) works and shows some sample code.  Then the students are going to write their own code, part of which will be similar but not identical to the code they saw.  I normally show my students how to create the list, how to code the NODE class and how to add nodes at the beginning and how to traverse the list.  They do the rest themselves, and they don’t code the simple stuff exactly like I showed them.  I can’t see any reason that they need to reference this, unless they copy a lot of code exactly, letter-for-letter. I suppose they could write something like “The linked-list is based on the discussions we had in class, but I wrote the code myself.”< /p>

I’ve marked a lot of dossiers and I have never seen an HL student acknowledge the source of a Linked-List or other ADT.  I do occasionally see dossiers where they have downloaded some other library code, like something to do web communication, and then ackowledged the source.

The real offense would be a copy-and-paste from a web-site – or even worse from another student.  I have seen that before.  Then they need to acknowledge the source, and they won’t be awarded mastery factors because they did not write the code themself.

The short answer?  Yes, they are allowed to read books.  “Writing from scratch” presumably means typing code on a blank screen or in an exam without notes.  I agree with you, any capable HL students should be able to do this.  And I hope they are not going to credit their teacher when writing exams.


Dave Mulkey

Important: Computer Science Subject Reports

These contain a huge amount of information that is not available in the guide or anywhere else, particularly on the subject of the Program Dossier, and what each section should contain, and what counts for each mastery factor.

They are essential reading.

Subject report May 2006

Subject report November 2006

Subject report May 2007

Subject report November 2007

Subject report 2008

Subject report 2009

Subject report 2010