It is expected that IB Computer Science candidates challenge themselves to create comprehensive solutions for real clients. Final solutions that are not implemented and/or not fully tested by the client (against the criteria) will potentially lose marks in criteria B, D and E.

Project Ideas — some (more) guidelines

The safest option is probably a simple storage-and-retrieval system. Any of the school’s regular events benefit from software like this. Ones we’ve had in the past are:

  • Lab equipment inventory.
  • Multimedia lending library.
  • Orchestra seating plan database.

Sports data tracking: athletics, fitness, swimming.

  • These are pretty straightforward and there are plenty of clubs and teams in which to find clients. All you need is add/edit/delete players, add stats, do some sort of reporting on those stats.

Another safe bet is a teaching/learning aid. We’ve recently had:

  • Chinese language learning (twice).
  • French language learning.
  • Physics quiz compilation.

I personally think some sort of elementary school learning software would be a great idea. I have three young kids and can help with ideas!

Games and Simulations:

These are a new idea that the change in the syllabus has allowed, but as you may have gleaned in the last few sessions, I find the possibilities very exciting. Be careful though. They will require a lot of thought and are often fairly mathematical in nature.

Words of Warning

  • Don’t be too ambitious, and if you’re not sure, ask me. Remember that the aim is to get you a 7 in this subject.
  • Don’t try to reproduce the functionality of well-known pieces of software like Word, Excel, Outlook.
  • Don’t try to do a project that relies heavily on another system. You are likely to have compatibility and security issues.
  • Don’t try to do a multi-user project or a networked project unless it is very simple.

Source =

IA Getting started Brian Storm

Dear Participants, 

Appreciate the list of good practices you have all shared here and the strategies to select the programming language by the student to work through the IA. Here are couple of aspects we can use in practice:

Focus on problem solving:  As  the topic(System fundamentals) is introduced to the students in initial stage, it helps to take few real life examples and relate it to the process of SDLC. This will help them to deal with a particular issue/problem using the complete process which can be further linked to the IA introduced later.

Topic selection: Brainstorming  a list of topics and discussing with the students helps. They need to check the feasibility of the issue to be able to incorporate the technical features of the application they plan to use to create the product. Using google docs, padlet, moodle etc… keeps them motivated and the information can be shared effectively.

Selecting the programming language: Its important the students understand the expectations to create the product in criterion C. Brainstorm through the possible languages relevant to the option students are studying. They need to be able to learn enough skills and demonstrate the same in the ingenuity and complexity. Ensure they are not over whelmed with this aspect of programming itself, the documentation supported with explanation and screenshots of the technical features included must be detailed enough.

Sharing Crieria: Its a good practice to share the criteria with students, give them a copy and brainstorm with them. You may refer to the document attached in module 2, Unpack the IA criteria and share the specifics in each criterion with students. A checklist based on this is helpful. Using some examples and using these criteria to mark works as a good activity among students. Here is the link to one of the checklist that can be found online:

  • By the second semester of first year in DP students are aware of the requirements and are settled with the subject. In practice its good time to bring in the IA concept at this stage. 
  • They should be able to decide upon a feasible topic and brainstorm the possibilities of using the option to create the product. Getting A and B done from students before the summer vacation helps and gives them time to learn specific techniques required from the language and use extra time individually beyond the class room time.
  • Its indeed important students remain focused while creating the product in criterion C. It is helpful if they can discuss the complexity and ingenuity features and prepare a list of techniques they will be using. 

Criterion C 

Notes from supervisor 

Dear Participants,

As you are working and discussing these two contrasting examples from criterion C, here are a few things I would like to emphasize again:

  1. Students must ensue the product is created using their own code. If any particular piece of code is taken to solve a any issue it should be acknowledged appropriately in the document itself.
  2. Students must provide enough evidence in the product to demonstrate ingenuity and complexity. Please refer to the table in the  Internal Assessment Criteria Guidelines document to see the table of the two together.
  3. Criterion C documentation is 1000 words, though it should contain all possible explanations with evidence of screenshot/output.
  4. If coding language is used, student needs to add the code listing in the appendix.


Criterion C – Development  is of 12 marks. It should be an Extended writing about developing the product (500 – 1,000 words). Extended writing must include Justification of techniques used, including annotated screenshots and sources where appropriate.

It  has a major weakness with the IAs and scores less marks mostly as the students' do not explain the techniques clearly they use in Criterion C. The majority only outline the techniques together with code snippets. High marks for Criterion C will only be given to students who clearly demonstrate their understanding with clear explanations.

Internal Assessment Guidelines