Home Topic 4 Last Next


Identify pre-planning in a suggested problem and solution.


Teaching Note:

Gantt charts.

Pre-ordering. Pre-heating an oven. Home/locker/knapsack.

Caching/pre-fetching. Building libraries of pre-formed elements for future use.

LINK Thinking procedurally, thinking concurrently. Connecting computational thinking and program design, introduction to programming.


Sample Question:


JSR Notes:

The Importance of Planning

The idea of this one starts with the fact that planning is So, So, So important in programming, and software development. When you don't plan properly, you can end up having to re-work things, and end up losing months of work, or worse still, your final product can be rejected by your client.


Pre-planning vs. Planning - start-to-finish looking ahead

For all intents and purposes, usually you can see "pre-planning" and "planning" as being the same thing. The "pre" just underlines the fact that it is planning, which is done in advance of the procedure. And keep in mind that the important point of this assessment statement is we do indeed need to plan.

At the same time, note that another way to look at the two terms is that pre-planning is all the first, broad stokes of a planning process, in which you first simply identify the things that need to be planned. So in this sense, pre-planning is listing things to plan, versus the actual detailed process of full planning.

But one way or the other do note that "pre-planning" is not just the inital steps of planning, it's either planning the whole process in detail, or just broadly, but in either case from start to finish.


Planning a Project vs. Planning a Method

Pre-planning and planning exist at every level of I.T., from the largest corporate project, involving thousands of people, and multi-millions of dollars, to a single small program created by one person.


Pre-planning/actual Planning of a Project - GANTT Charts

First of all, take a look at the Gantt chart below. Actual charts like this will be an important part of any team getting themselves organized for a large project. The Gantt chart breaks the overall project into several major stages of tasks, and then each of them is broken down further into subtasks. The amount of time needed for each is estimated, along with the start time. You'll note that some tasks can take place at the same time, but others must wait for the completion of prerequisite tasks.


GANTT Chart for ISB EE
By Matt Kelly

Example: Pre-planning & Planning of Sunday Errands

General pre-planning example: Sunday Errands Planning. Saturday evening in Bangkok, I will regularly pre-plan how I will get my Sunday errands done; I'll pull out all my yellow stickies of the week, read through them, sort them according to area of Bangkok (downtown, versus Big C, versus Home Pro), then I will think about the most efficient route to do them all, and I write down on a normal piece of paper my plan, in the order in which I would do those things.

Example: Pre-planning & Planing of Your IA Solution

Though it will be only you on your own, there is still a large amount of planning which you will be required to do for your IB CS internal assessment. To get an idea of some of these planning tasks, take a look at the IA Guide, Stages ("Criterion") A and B. You will see things like interviewing your client, coming up with criteria for success, sketching out prototypes, designing class structures, and hiking about the data types you will use.


Focus on the Teaching Notes

Teaching Note "Pre-ordering. Pre-heating an oven. Home/locker/knapsack."

The idea here is that quite often in life, we are able to prepare for the "main event", well in advance. We "lay the groundwork" as the expression goes. Or "we line up all our ducks". And the more you can do this sort of thing, the better an event/activity is bound to go. It's not necessary to pre-heat an oven, for example; but it is better. Or, for example, you could hold an IASAS sporting event, gathering up and doing things as you go last minute, but it would be better to phone the referees ahead of time, and paint the lines on the field and get the SCA to bring in the goodies for the Sports Boosters canteen well ahead of time.


Teaching Note Building libraries of pre-formed elements for future use."

Building libraries of data ahead of time is another thing that since it can be done ahead of time, why not? and that way when it comes time to use those libraries, the data does not have to be collected; it's already there to be used. This also speeds up "the main event".

Teaching Note "Caching/pre-fetching.

Also in programming/computer science, there are things that can be done "ahead of time" during a process. Caching is one best example as something that happens during a process, not in the planning stages. With a classic caching example, why bother starting to watch a streamed video if you know you will have to wait for content to download every few seconds. Better is to let a bunch download first, i.e. buffer it, and when enough is buffered in your computer's cache that it is "ahead of the game" enough, then you start to watch, knowing that your viewing will be uninterrupted, since what is being buffered presently is always a minute or so ahead of what you are watching.