Much of the material in this section comes directly from the IA Manual for Students published by long-time IB CS teacher Paul Baumgarten on his website. Incredible thanks to him for his hard work. The rest of his website is a fantastic resource for IB CS students as well.
The Internal Assessment for Computer Science is an opportunity for you to showcase your algorithmic and technical prowess at developing software intended to solve a legitimate, real world problem for someone.Approximately 30 hours of class time will be devoted to the Internal Assessment. Beyond that it is expected you will contribute at least the same amount of your own time towards the project.
We will spend about 30 hours of class time SPECIFICALLY devoted towards working on the IA, as well as additional time working on the programming skills you will need to succeed. You will also be expected to contribute a large amount of your own time to the project. The computer science IA is a large project, but an attainable one, and one that you can be proud of.
The choice of client can make or break a project
The client can be a teacher, parent, friend, or someone else entirely. They must be an ACTUAL PERSON who exists and is prepared to spend time - probably at least 4-5 hours over several meetings - working with you. Choose carefully - don’t pick somebody who will flake out.
Your client needs to be able to explain ther needs clearly and help come up with a list of attainable success criteria for your project.
Your client will also need to evaluate (or help evaluate) the project once it is complete.
NOTE: Though being your own client is allowed by the IA, it rarely results in a high-scoring project. A big purpose of the IA is to communicate back and forth with a real person, so if you have a project for yourself that you are REALLY passionate about, you will need to get an official advisor (likely me) to work with.
The project needs to be challenging at a level appropriate to IB Computer Science - this typically means it needs to include significant computer programming so students can showcase their organizational skills and algorithmic thinking.
The project must demonstrate computational thinking, which, again, essentially means a significant amount of original code. That said, it is possible that a good IA could start with with extending or improving an existing project.
Though it is likely you will have discussed possible projects with your client in steps 1 and 2, you should start the formal IA process with a formal interview. This should be recorded and then transcribed into the Appendix of your IA as evidence of a real meeting with a real person.
In the meeting, you should discuss:
This is a short piece of writing (175-250 words) that describes: * Who the client is (without giving identifying information that breaks privacy laws) * What problem or desire is being solved by the student * A summary of the early meeting with the client, focused on the problem itself. (the full interview, again, will be in the transcript, but summarize here.)
In this second short piece of writing (175-250 words), you should: * Justify your project as solving the problem * Justify the technology you are using (this includes the programming language and platform)
This should be a bulleted list of specific, objectively measurable criteria. Avoid generic success criteria such as “doesn’t crash” or “user friendly” - describe the actual experience and features your client wants. If you need a second formal meeting to solidify this you should arrange it, record it, and transcribe it for your appendix.
The success criteria should be presented as a bulleted list, in which case it will not count against your overall word count.
The IB provides a template, as shown below, for this part of your report.
Task Number | Planned Action | Planned Outcome | Time Estimated | Target Completion Date | Criterion |
---|---|---|---|---|---|
This is a chronological table in which you will plan out your work on the project. The first few lines should cover the work you did for Criterion A (find client, interview client, etc). You will be provided a Google Docs version of this template on google classroom an encouraged to update it regularly.
This section of your report should include a large number of diagrams that describe how you planned out your final project. This will include:
As long as your writing in this section is presented as diagrams, tables, and bulleted lists ONLY (as it can and should be) this will not count toward word count.
This MUST be limited to PLANNING information - do not include screenshots of the final code or screens in this section, but if you add new planning as you work on the project you can include those later-added plans. You can even include multiple drafts of your plans as long as they are clearly labeled.
This is included as part of the Design Overview, but feels different enough to be worth its own heading.
This should describe EXACTLY how you will test the success criteria in part A. Format it as a table Success Criteria, Method of Testing, Expected Result.
Again, as long as it is presented as a table with limited writing, no word count applies.
Once you have your initial plan ready to go, you can start developing. You may have found that you have several holes in your knowledge and will need to take a break from the IA itself to learn how to work with your chosen language. As you do, you may improve your plan. This is expected!
Finally, you’ll build your program. This is the longest and hardest part. It also comes with the longest and hardest written component.
This section uses the most words of any section, 500-1000 of them in addition to screenshots, appropriate diagrams, and so on. It must explain: * The structure of the product and why the structure is appropriate * The algorithmic and computational thinking you used in the development of the product * Programming techniques you used and why they were appropriate (this should include screenshots of code, potentially example data, and references to more detailed code int he appendix) * Any existing tools that you used in the development of your product, such as code libraries, APIs, software packages, etc.
This section is the largest part of the report AND your score. Your project, through this section, will be scored on INGENUITY and COMPLEXITY. We will save a detailed look at those words for a later time. The key thing is understanding that if you do something cool, you need to be able to explain why its cool in this section.