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:

In terms of which you should do, one thing to note is that flowcharts are done in both the original IB sample IA, and the latest IB exemplar. (The other thing done in the original was a Development Plan, and the other thing done in the latest exemplar was pseudocode.)

Why Flowcharts

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. With flowcharts, this is your "Sheldon white board" planning, in order to get your head around things in a ***visual*** way.

Flowcharts make for a great first step in code planning, whether you move on from it to algorithms and pseudocode or not.

Often flowcharts are indeed scribbled down on a white board, or on the back of an envelope, just to get a rough idea of things. 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. But flowcharts can also be a lot more formal and detailed, even on up to mirroring line for line pseudocode.


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

And here's one I scribbled down to get my head around Pune's proposal. Note that I did it in two stages. In doing my "Beta" version, some things clicked, so by starting over with my "Alpha" version, I was better able to see, and sketch out what might work.

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

Note that most often it makes a lot of sense to have more than one flow diagram (as is the case with the latest IB exemplar). Perhaps one flowchart 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.

The following is from our FlightTracker program, for which it made sense to have one flowchart each for:

(Here, linked, is that FlightTracker Netbeans project.)


Finally, a little mantra for you. Since sometimes people don't know where to start: "Flowchart? Just start!" And things will then just start to flow.