A Method for Program Design
IT, Høgskolen i Østfold
Program design >A Sample
../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif

A simple sample

A very simple program may serve as an illustration of the design process. The program "Sant" is a simple program for training aritmetic skills. Sant means "True" in Norwegian. A demo version of the program can be downloaded.

The key design documents and most of the considerations during design process are documented below.

The Idea

idea

The idea behind Sant is Norwegian license plates as they were some years ago, with up to 6 digits. A pastime during long car trips and waiting for the bus was to figure out an equation that use all the digits. Surprisingly many 6-digit number may be "solved" this way.
7 - 6 + 5 = 4 + 3 - 1

The Objective

It is easy to see that this exercise is a training in the 4 basic arithmetic skills, and that it lays the ground for understanding equations. The idea gives us the possibility to vary the level of difficulty; we can introduce parentheses and we can vary the number of digits.

Who

After some iterations the users was described like this:

  • The program should offer a challenge and a tool for training for ages above 9.
  • When used in the school the program should be a tool both for those who need some extra training and for those who need a challenge.
  • When used as a pastime occupancy it should offer a flexible challenge both to children and adults.

What

The final formulation ended up as:

The program should :

  • train the arithmetic skills.
  • enhance the understanding of the equality operators and lay the ground for working with equations.
  • train strategies for problem solving.
  • demonstrate the significance of priority rules and parentheses (when used at a high level of difficulty).
  • offer some excitement and challenge.

Why

A computer program is well fitted for this task for many reasons:

  • It is easy to produce a practically unlimited number of tasks.
  • It is easy to evaluate the answers.
  • It is possible and fairly easy to put the problem solving in a motivating metaphor.
  • The level of difficulty may easily be varied.

How

The program is mainly designed for individual use, and will not be dependent of a special pedagogical plan or external motivation. This does not eliminate the possibility to plan the use in a pedagogical context.

Perspectives

The discussion about perspectives were mainly focused on the use of time. Two of the perspectives that were discussed in some detail are described below:

Perspective 1

traffic

Place. The original idea was connected to cars licence plates. This perspective may easily be developed to a traffic situation with cars passing.

Role. The role as passenger is possible, or we may come up with something more exciting. Maybe a police officer with the assignment to check the drivers identities or to check if the cars are stolen.

Time can easily be integrated in this perspective. The cars may be visible for a short time before they disappear around the corner or into the darkness.

This leads us into a traffic metaphor, which probably could be worked out into a design.

Perspective 2

tlf

Place. An other device with useful numbers are telephones. We could develop the idea of a room or situation where phone numbers had to be solved as a mean of dialling.

Role. Who would be dialling and for what reasons ?. There are lots of possible answers to this. We could take the dramatic turn and introduce some kind of spy or some role who should collect information.

Time could be integrated as a stress factor: "you must get this information within a certain time or else..."

This telephone metaphor could not doubt be developed in a more or less exciting way.

The Metaphor

sant

There are a lot of considerations to take into account when the metaphor is chosen. One of the most important is the objective. The two alternatives above may both have interesting and in some respect promising sides, but they may narrow down the user group. We should look for an approach which is less dramatic.

The metaphor that was chosen in the end was a betting metaphor, with cards and a flexible time limit for problem solving. The user may bet with the program that she will be able to solve a problem within in a time limit defined by the user. The shorter the time, the larger the odds.

The problem is presented as cards with digits. The cards are face down and the user can set the time and bet an amount of coins. (It turned out that betting coins was not a good idea in all countries, so the betting was done with marbles in the final version, but we continue with coins in this description).

The solving of the problem is done by turning the cards with digits and operators and moving them to a line where they should make up an equality.

The Scenario

A sample scenario goes like this:

User starts the program and get automatically the first task with the cards faced down. He decides the level of difficulty he wants to work with and gets a new set of cards. He judges the level of difficulty, the number of cards and decides the amount of time he will need.

He then bets an amount of coins that he can solve the problem in the stipulated time. He turns one card and notices that the odds is decreasing. He bets more coins and decides to start the game without peeping at more cards. The rest of the cards are turned and the time starts running. He starts moving cards in place, but he gets trouble and decides to terminate the problem solving. The coins disappears and the next problem is presented. The user bets again and starts the problem solving. This time he manages to solve the problem within the time limit and the coins multiplied by the odds are added to his coins, and the next problem appears.

The Activity Table

We pick out the activities, the verbs, from the scenario:

The student The Program The Teacher
starts the program
choose difficulty
choose time
bets coins
turns a card
strats the game
move a card
terminate the problem
shows the problem
decreases the odds
turn the cards
starts clock
take away the coins
"pay out" the coins
has no spesific task, but set level of difficulty as part of a training session.

The list is not complete, compared to the final functionality of the program, but it focus the important issues in the relation between user and program. It helps us distribute the responsibilities.

The Market

From the anatomy of the program, with a betting phase and a problem solving phase, it is obvious that we will have two main market places. These market places are categorised by the fact that they have different booths associated with them.

market

Note that the functions help, name registration and a top ten-list based on series of problems are introduced.

The Screen

The design of the program screen, or window, was focused on keeping the two phases apart and making them clear and easy to distinguish. The main layout of the screen is dividing the area in two parts of roughly he same size. The betting to the right and the problem solving to the left.

santarc

A: The betted coins
B and D: Users coins
E: problem solving area
F and C: Status information

The manifestation of the time was problematic. The chosen solution is a linear time line, which serves as a delimiter between the two areas. The text is in Norwegian, but the screen layout should be self explanatory.

screen

(The image has been reduced from the original.)

The Dialog

There are quite a few details in the dialog that had to be resolved. Some of these are:

  • Coins can be moved by direct manipulation of staples.
  • Coins may be freely moved within the three areas: the sack, the users staples (right) and the stake staples.
  • A double click to get coins from the sack into the users deposit to the right.
  • The time bar acts as a scroll bar when in the betting phase, while the up-functions are blocked during the problem solving phase.
  • Multiple ways to start a game: menu, click on the double arrow and turning cards (with a loss of odds)
  • Give up a game by moving the time bar to the bottom.
  • Turn a card by clicking on it.
  • The equation can be built on any of the three lines.
  • How much time should we use to pay out and remove coins ? This is a crucial question in a program of this kind. The time and the accompanying (voluntary) sound gives the "beat" to the program.

In general the dialog is based on standard dialog elements and the exceptions, like direct manipulation, is hopefully evident from the metaphor.

The Details

Even if the dialog is fairly simple, there are always some situations that must be considered in more detail. For instance what should happen if the user tries to move coins into the card area and vica versa ? There are a many answers to this and at least a few are aceptable, but we have to decide.

Statediagrams are a useful tool for such detailed analyses. Below is a statdiagram that resolves the move coins problem.

coinstate

There are a few other situations that have been resolved the same way.

The Program

A demo version of the program can be downloaded here.

A Method for Program Design fra Høgskolen i Østfold: http://www.ia.hiof.no/~borres/marketmet/

../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif

Valid XHTML
popup card
Bygget med WXT : 02.jan.2006