Criterion B - Solution Overview

Instructions and Advice - Flow Charts


Recall that this is one of the four Code Planning Documents you can do, out of:

Flowcharts can be a useful companion, or initial stage to both algorithms and pseudocode.

Why Flowcharts etc.?

This is your "Sheldon white board" planning for yourself, in order to get your head around how your program is going to work.

Flowcharts are for any step-by-step process of your programming or development. They are a good step to sketch out first, whether up on a white board, or on the back of an envelope, to get a good, rough idea. But they can also be a lot more detailed, even up to mirroring line for line pseudocode. What is most useful about them is their visual nature.

What you are looking for, with flowcharts, or any code planning technique, is a way to get your brain around how your program should work. And putting thoughts to paper/whiteboard/serviette/back-of-hand in a visual way will help you do so. Some of the best ideas that the world has seen came to people in casual situations where they had to scramble to find something to write their idea on, like a serviette at a restaurant.

The white board is your best friend when it comes to this kind of "mind-map" thinking and planning. IT offices are rarely without one.


Here is an example of Sheldon with his "Making Friends" flow chart.

Here's another, very general flowchart, using the same symbols as suggested in IB CS:

draw.io can be used for flow charts, just as it can be for class diagrams below.





Any use of flow charts should be done as a real aid for you, not just a contrived, backward engineered document. So it's very possible that what helps you is very informal - not necessarily done with proper IB CS symbols. And that's fine.

Here is one of Libor's very informal white board planning flow charts:

Libor's Mind Map Flow Chart

Informal Brainstorming --> Formal Flowchart Option

Though it is mainly for you and your thinking/planning, eventually if you were working for a company you would need to formalize your plans. So, in fact, for this process, you could do it in two stages as well - a more informal, and a more formal stage:

Step 1: Scribble it up on the white board or on paper, and then take a picture of and add as an appendix.
Step 2: Transfer that formally to an OmniGraffle or draw.io jpeg etc, which you will actually put in the Stage B documentation of your IA.

Multiple Flowcharts Option

Note that it may make most sense to have more than one flow diagram; perhaps one for the basic input of information from the file to the array to the table etc., and another for any fancy calculation algorithms you intend to use.