Evaluate the decision to use concurrent processing in solving a problem.


Teaching Note:

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


Sample Question:

From Sample Paper 1 2014:

Refer back to the last part of the sample question on 4.1.14.



JSR Notes:


So this is an "evaluate" a decision. So you ask yourself, is it a good idea, or indeed possible to do concurrent processing in this situation? And your evaluation will therefore include words such as "good idea", or "not possible", etc.



Non-Computer Examples

House building example:

Can the plumber actually install the toilet if the electrician is working in the kitchen? The answer depends on if the water has to be turned off when the electrician is working in the kitchen, or indeed if the electricity to the bathroom has to be disabled while the electrician is working elsewhere in the house.

So an evaluation of a particular situation might be:

"Yes, it is possible in this case to install the toilet the same day in the work schedule that the electrician is to be working in the kitchen. This is possible since the water does not have to be turned off while the electrician is working in the kitchen. And it is desirable because both of these things should be done early on in the work, so that the workers can both access water in the kitchen, and use the bathroom."


IASAS Football Tournament Example

Can two games go on at the same time? One consideration is if all the fans will want to watch one over the other, such as having the 3rd place game and the championship at the same time. Another will be how much time the tournament is scheduled for and how many games are to be played.

So an evaluation of a particular situation might be:

"Yes, two games can go on for part of the tournament, while leaving the 3rd place and championship game to be played alone. In fact this is necessary for the first day of the tournament in order to get in all the games that are required for a round-robin of 7 teams. So, in summary, concurrent games are a must on day 1, but not necessary for day 2."


Computer/Programming/Java Examples

In your evaluation of whether or not to implement a particular kind of concurrency, you should first ask yourself if both the operating system and computer to be used support multi-threading (or other concurrent processing mechanisms). And then, what would happen if the operating system or the computer being used cannot support the concurrency you are considering using? Will the program and/or the computer crash?

Also, is it worth the bother of implementing threading if the process would not take that long anyway done by one processor. And so the size of the task/tasks to be broken down into concurrent processes should be taken into consideration.

So an evaluation of a particular situation might be:

"In the case of rendering a 3d model in Maya on a 2015 Macbook, yes, concurrency is both desirable and possible. It is desirable because rendering 3d models takes a long time, and the laptop cannot be rendered useless for, say, 20 minutes while the rendering takes place. And concurrent processing is possible since, yes, all of Maya and the Mac OS, and the laptop's processor do support concurrent processing.