You are on page 1of 30

3

Solving problems

I keep six honest serving men
(They taught me all I knew)
Their names are What and Why and When
And How and Where and Who.
Rudyard Kipling, English poet
Overview
In this unit we are going to:
investigate the types of problems that are suitable for computer solution
find out what an algorithm is
use pseudocode to represent algorithms
identify the types of error that can occur in a computer program
discuss the of copyright of programs and the rights and responsibilities associated
with writing and owning software
look at how file sharing and open source software are changing the face of copyright.
Computer suitable problems
A software program is the instructions given to a computer in order to carry out a process. The
process might be to play a music track, or calculate the total cost of the items being ordered by
a customer from an online store, or display an explosion on screen. In each case the program is
just a series of steps that have been arranged in the correct order to complete the task.
Writing a computer program is a problem solving activity, where the problem is to develop the
correct step-by-step instructions to carry out the process you want to achieve.
Solving problems
Anyone who has attempted to solve a problem, for example in Maths, knows it is not easy to
know what to do, where to start, or even if the problem has a solution. Some people are good
problem solvers, others are not.
When we have a problem most of us want to dive in and have a go at solving it without really
knowing what we are doing. This method is called trial and error or sometimes button
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 65

mashing. We try anything that occurs to us. If it does not work we will try something different,
and keep going until we hit on the right answer, or give up. This method will work with simple
problems, but it is inefficient and will not work with complex problems. There are more logical
or methodical ways that can be used.
The analytical approach is a systematic way to solve problems. This method can be used for
example where a decision has to be reached. All the advantages and disadvantages of each
alternative are listed and then weighed against each other. Say the problem involved choosing
to buy a new car or not. The advantages (reliability, prestige, comfort) and the disadvantages
(cost, depreciation, etc.) are determined. The decision to buy the car or not is then made on the
side that carries the most weight.
Working backwards from a goal is a another methodical way of finding a solution that is used
for example by code breakers or computer hackers. They know what they want to achieve and
systematically de-construct what is in place. Reverse engineering is a form of this method.
Sometimes we do not even work logically to solve a problem.
The Eureka Experience is used to describe the feeling we get when the
answer to a difficult problem suddenly occurs to us. Archimedes supposedly
jumped out of his bath yelling Eureka! when the solution of how to detect
the presence of lead in a gold crown occurred to him. August Kekule, after
months unsuccessfully trying to work out the structure of benzene, dreamed
of snakes. He woke up when one of the twisting snakes grasped its own tail,
and suddenly realised a ring-like structure would solve the puzzle.
In these cases the problem solver has reached the solution unconsciously.
The ability of the human mind to be creative, to initiate an original idea to solve a problem is
unique, something that may never be duplicated in a computer.
Humans can also make judgements to solve problems. (How could a computer ever decide if a
landscape painting is beautiful, or make a value judgement such as is he evil?) Using our past
experience and what we have learned we can compare the evidence with what is expected and
decide if it fits the requirements. From this we evaluate the criteria and make a judgement.
All of these problem solving methods of trial and error, creative or intuitive insight or
evaluative judgements will work in their own area. However in solving computer problems
something more methodical and systematic is needed. If we have no plan of where we are
going in a program we will get confused, or leave out something, or even if we do get it right,
will find it has taken us three times as long to get a solution.
Algorithmic or heuristic methods
To write a computer program the human problem solver takes a situation or requirement,
analyses it, and plans a step-by-step solution. This plan is called an algorithm. The computer is
then given these step-by-step instructions in a computer language that has been converted, or
coded, from the algorithm.
Generally computer suitable problems fit into the category where an answer (output) has to be
produced, usually after some data has been supplied (input), and the method of solving the
problem has to be determined (process).
The structure
of benzene
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 66
Computers excel in solving problems of the type that can be expressed as a series of steps.
Humans on the other hand are better at solving problems heuristically. Heuristics are all the bits
and pieces of experience we have stored away throughout our lives ready to be called upon to
solve a problem.
For example if faced with the following puzzle can you find not only which fisherman has
caught the fish, but also the quickest way of detecting him?:

When you were younger you might have spent time tracing each line down from the boats, but
based on past experience you now probably realise it is quicker to trace from the fish up to the
boat. This is an example of a heuristic solution, one based on the experience of having come
across similar problems in the past.
A story may explain the difference between a heuristic and an algorithmic approach to problem
solving:
Mike while visiting his aunt had gone out to see a movie. When he came out it was dark, and he
could not remember how to get back to his aunts house. Fortunately he remembered she lived near
the beach. Looking at the road in front of him he saw it sloped from left to right. Assuming most
roads near the coast sloped down toward the sea he followed it. At the end of it he chose the most
downward sloping road, and so on. Eventually he reached the coast and soon his (by then angry)
aunt.
This is an example of a heuristic solution to a problem. Mike had no clear idea of how to get to
his destination, but calling upon his past experiences he was able to come up with a workable
method of getting closer to his aunts.
Now imagine a robot was given the same problem of getting to a destination when the way was
not known. Programming the automaton would involve a step-by-step algorithm that explored
all of the possibilities and combinations of moving to the end of a road, of turning left and right
etc., and checking if the destination had been found. Eventually by investigating every
possibility the algorithm would get the robot to the right place.
Some problems are best solved algorithmically, some heuristically. Humans (i.e. you) usually
think heuristically. Computers on the other hand work algorithmically. The biggest difficulty
you are going to have with learning programming is in having to discipline yourself to an
algorithmic approach.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 67

Activity 3.1 Problem solving
1. a Describe one systematic problem solving method.
b What is meant by button mashing? Give an example where it might be successful.
c What is reverse engineering? Find a real world example of where reverse engineering
has been used.
2. a Explain the difference between an algorithmic solution to a problem and a heuristic
solution. Your answer must clearly explain what heuristics are, and point out how
they are different to an algorithmic approach.
b Give an example of a problem that a human is more likely to be able to solve than a
computer, saying why.
c Give an example of a problem that a computer is more likely to be able to solve than a
human, saying why.
3. Which of the following problems do think would be suitable for algorithmic solution, and
which for heuristic solution?:
a calculating GST
b choosing the winner of a beauty contest
c displaying a Facebook page
d calculating the area of a wall
e determining the meaning of life
f choosing the most likely winner of the Melbourne Cup
g finding out if a painting is fake.
4. Heuristics can also be described as rules of thumb, or ways you have
found of doing things that have worked in the past. You may have
experimented before and found a way that works for you, so when
you come to a similar problem you apply these rules of thumb and
develop a solution. You have been using heuristics.
What are your heuristics for playing the game noughts and crosses
(tic-tac-toe)? You might need to play several games with a friend to
explore how you actually do play this game.
5. Imagine you are a TV executive producer and you have to plan a typical evenings
entertainment. You can choose from the following available programs:
The Tender Trap (USA; $15 000; situation comedy; 24 min; rating .20)
News and Weather (Aust; $25 000; 22 min; rating .45)
Perspective (UK; $5 000; documentary; 54 min; rating .14)
Funny Money (Aust; $25 000; game show; 23 min; rating .62)
Whats New (Aust; $18 000; current affairs; 24 min; rating .33)
Midweek Movie (USA; $1 500: various; approx. 82 min; rating .18)
Georges Dream (UK; $4 000; situation comedy; 25 min; rating .16)
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 68
Who Knows? (Aust; $1 500; discussion programme; 55 min; rating .06)
Cricket (Aust; $55 000; live coverage; 5.30 - 8.30 only; rating .18)
Going, Gone (UK; $3 000; antiques show; 25 min; rating .06)
Home Ties (Aust; $30 000; soapie; 54 min; rating .56)
Alive Oh! (USA; $26 000; situation comedy; 21 min; rating .43)
The duration of the program indicates how many adverts can be fitted in e.g. a 24 min
program will allow 6 min of adverts in a half hour time slot. The ratings indicate how
popular the program is for example .45 means 45% of people watching at that time are
tuned into this program.
As producer you have some constraints on what you can do:
your time slot to fill is 5 p.m. to 10 p.m.
your budget is $130 000 (less if possible)
advertising revenue is highest during peak viewing times of 6 - 8 p.m.
you must maintain at least 50% Australian content of programs.
Prepare the evening viewing schedule.
6. Your younger brother has a programmable car that understands the following instructions:
left right forward x back x
e.g. forward 100
left
would move it forward 100 cm and then turn it to the left.
Program the car to follow the following course and then reverse into the garage at the end:
100

200 300


60



50


120
7. Henri the new French chef has purchased a programmable microwave oven but is having a
problem getting it to work. The instruction book lists six commands:
on off high x min med x min low x min wait x min
The wait command is to let food stand to allow the heat to penetrate.
e.g. To scramble eggs, cooked on high for 5 min the program is:
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 69

on
high 5 min
off
a Describe to Henri what the following program would do:
on
high 2 min
off
wait 2 min
on
low 3 min
off
b Write a program for Henri to cook a frozen steak to the following requirements:
defrost on low for 10 min, then cook on high for 7 min.
c Write a program for Henri to cook a souffl to the following requirements:
cook on high for 3 min, stand for 2 min, cook on low for 2 min, stand for 1 min, cook
on high for 2 min.
8. Logo is a programming language developed by Seymour Papert to introduce children to
programming and problem solving. Logo uses simple commands (similar to the car in Q6)
to move a Turtle around the floor. Computerised versions employ a triangle on screen to
represent the turtle. The turtle is equipped with a pen to draw lines as it moves.
The following commands would draw a square:
pendown
forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100
right 90
penup
The forward command moves the turtle forward 100 spaces and the right command turns
it right the given number of degrees (here 90
o
).
For simplicity, a repeat command can be used to avoid writing the same lines over again.
e.g. pendown
repeat 4(forward 100, right 90)
penup
would have the same effect to draw the square.
a Write a Logo program to draw an equilateral triangle.
(Care: it is not as obvious as it seems.)
b Write a Logo program to draw a simple house.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 70
9. You have just been appointed managing director of the Hitz Music Company. This is an
old company that was very inefficient. To save the company from bankruptcy you will
need to make many changes, including introducing computers.
You draw up the following list of some of the things you must do:
select an assistant to help you
stock take
choose a new computer setup
reorganise the management
select which are the workers to be replaced
establish a set of records of employees
promote the company through advertising.
a List the tasks that can be accomplished using a computer to assist you, saying how the
computer would be used.
b List the tasks that can only be done by a person, saying why a computer could not be
used.
Algorithms
A mathematician living in Baghdad over 1100 years ago wrote a book thats title starts Kitab
al-jabr.... From this we get our word algebra. The man was named al-Khowarizmi in Arabic
but this was converted into Algorismus in the Latin used by academics of the day. From his
name, in turn, we get our word algorithm. (Dont let this put you off, algorithms are a lot more
fun, and a lot easier than algebra.)
An algorithm is a list of the steps to follow to complete a process. Algorithms need to be
unambiguous (clear), finite (will end), and general (can be used in a variety of situations).
Here is an algorithm for boiling an egg:
Boiling an egg
put water in a pan
put pan on stove
turn on the stove
wait till water boils
place egg in water
wait 5 minutes
remove egg from water
turn off stove.
Do you think that if you gave these instructions to someone who had never boiled an egg
before that they would succeed? Is it general enough?
The sequence is easy to see, the steps follow one after another, but are the instructions clear
enough? The algorithm does not really said how much water to put in the pan or how to get the
egg out of the water (with your fingers?). Perhaps it could also have said what sort of pan, and
which switch to use to turn on the stove.
The algorithm is finite, but if step 3 were omitted it would not be, as step 4 would never end.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 71

Although algorithms of this type do not seem to have much to do with computers, we need to
know how to construct them so that when we come to computer algorithms, which are more
abstract we can use the methods we have developed. The algorithms for programs differ only in
that they usually operate on data such as number values, text, graphics, and so on.
An algorithm should be written in a general form so that it can work on any suitable input set of
data. Once the algorithm is developed it should then be possible to code it into any computer
language.
We develop algorithms by working from a problem specification. The problem specification is
a description of what the algorithm will do. It is necessary to prepare a specification to clarify
in our minds exactly what we are intending to do. The algorithm is a mapping of the
specification into a process, i.e. from what must be done, to how to do it.
Introduction to pseudocode
Pseudocode is a method that enables us to write computer algorithms for a program without
having to worry about all the complicated details that are involved in languages such as Pascal,
Visual Basic, PHP, C++, or J ava.
Pseudocode means simulated code. It is a computer-like way of writing step-by-step
instructions without the complex detail of a true computer language. By using pseudocode we
can concentrate on what we are trying to do, and not get lost in the technicality of the language.
Once our plan is ready we can then convert it, or code it, in the language of choice.
For example, an algorithm to calculate circle area would look like this in pseudocode:
prompt for radius
get radius
area =3.1415 * radius * radius
write The area is , area
In this pseudocode radius and area are variables, i.e. values that can vary each time the
algorithm is used, and will depend on what value the user enters for the radius.
With pseudocode it is easy to follow the step-by-step nature of what is happening. In the above
example the user is asked to enter a value (prompt command), and a value is entered from the
keyboard into the variable radius (get command). Next a calculation occurs and the result is
stored in area (using =). Finally the answer is output to screen (write command). This output
consists of a literal, the text in quotes, and the variable area which holds the answer.
The use of pseudocode simplifies the process of developing the steps needed to run a program.
For example in Delphi Pascal the get and write commands above would have to be written in
computer code such as:
Radius :=StrToInt(InputEdit.Text);
DisplayLabel.Caption :=IntToStr(Area);
and the variables radius and area would have to be included in a declaration.
The pseudocode is simpler to design and to understand, making it easier to prepare. We can
concentrate on what we want to do, and worry about how to do it later.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 72
When we have all of the required steps worked out in pseudocode we can then get into the
detail of coding the algorithms in the computer language we intend to use.
Pseudocode shows the program steps that have to be followed in a simple logical way.
Instructions such as get, write and = tell what has to happen, and the variables show the values
acted upon. We will use pseudocode more widely later to describe the steps in a program.
As a further example look at the following algorithm in pseudocode that involves any three
input numbers:
prompt for first
read first
prompt for second
read second
prompt for third
read third
total =first +second +third
average =total / 3
write The average of the three numbers is , average
As prompted, the user enters three values that are stored in the variables first, second and third.
These are then added together and the answer is stored in total. This result is divided by three
and the answer is stored in average. Finally average is written to screen.
This pseudocode also demonstrates the general nature of an algorithm. The one shown can
work with any input number values. It also could easily be translated into Delphi Pascal, Visual
Basic, C++, J ava, PL/I or any other procedural computer language.
Elements of an algorithm
The basic elements of a computer algorithm are:
assignment of a value to a variable
procedure call
skip.
The ability to store a value in a variable is known as assignment, i.e. the variable is assigned a
value.
e.g. count =10
Here the variable count is assigned or given the value 10.
We can store other values in variables:
e.g. name =Angelina J olie
or colour =red
or visible =true
A variable is a named place in memory that can store a value. We name the variable so that it
can be identified when it is used again. For this reason it is important to choose meaningful
variable names so that it is easy to remember the sort of data they hold. (We will investigate the
naming of variables in the next unit.)
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 73

Although we use the =in pseudocode to show assignment this should not be read as equals,
as in Maths. For example the following statement would be meaningless in algebra:
count =count +1
In computer terms this means increase the value held in the variable count by 1, and is read as:
count becomes count plus one, or assign count plus one to count.
In addition to variables that hold numbers and text computer algorithms can also work with
other forms of data. Later we will look at arrays, records, and other data structures.
Algorithms may also call or invoke other algorithms, i.e. one of the steps may be the name of
another algorithm. Look at the following example which invokes the algorithm Tidy:
Cleaning the house
move to lounge
Tidy
move to main bedroom
Tidy
move to .... etc.
The sub-algorithm Tidy is a self contained process or module. Modules are the basis of
structured programming, a very important process we will learn about later. Note the module
Tidy may have module calls of its own; line 3 (Vacuum) could be a call to another algorithm
module.
The final element of an algorithm is a skip. A skip means do nothing. At times we need to be
able to make a choice to either carry out a set action or to take no action. The no action is the
skip. We will see this when we investigate selection in the next unit.
While algorithms consist of these basic elements, in programming we also need processes for
input (get) and output (write or print). In addition there are also the composition methods of
sequence, selection, iteration and recursion which we will also investigate in the next unit.
Activity 3.2 Step by step
1. a What is an algorithm?
b Complete the following table of everyday examples of algorithms (the first is done
for you):
Process Algorithm Typical Steps
knitting a jumper knitting pattern knit 3, purl 1, knit 2
making a cake
playing a song on guitar
chess game
building a model plane

Tidy
pick up unnecessary objects from floor
dust all level surfaces
Vacuum
straighten furniture .... etc.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 74
2. Identify what is wrong with each of the following algorithms (ambiguous, out of sequence,
or infinite):
a Odd numbers
number =1
write number
number =number +2
go back to step 2
b Party time
tidy room
get food
get drinks
put music on
dance, dance, dance!
c Lesson time
start word processor
boot computer
load file
switch computer on
save file
edit file
3. Look at the following algorithms, determine what is wrong with each, and then rewrite
them correctly:
a Phone call
dial
lift handset
listen
speak
hang up
b Night out
ask dad for money
ask mum for car
ask friend to go
go on date
c Planting tree
get shovel
get seedling
put seedling in hole
fertilise
fill hole
turn tap on
water plant
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 75

4. The algorithm in 3a above of course would not work if the phone was engaged, or the
person you wished to speak to was not there.
Rewrite the algorithm to cover these possibilities.
5. Develop algorithms for the following tasks:
a Cross a road safely.
b Pump up a bicycle tyre.
c Run a bath of water at the correct temperature.
d Wash a pile of dirty dishes by hand.
e Get into the front passenger side of a car and place on the seatbelt. You may assume
the car door is unlocked.
f Add any two, two-digit numbers together.
e.g. 1 6 or 4 9
+5 7 +7 8
7 3 1 2 7
6. I have written a novel on word processor that I have saved as chapter1, chapter2, etc. up
to chapter6. I decide I wish to add another chapter between chapters 2 and 3 but still keep
my numbering in sequence. If I save the new chapter as chapter3 I will lose my old
chapter3 (which in turn I now want to be chapter4) as it will be overwritten.
Solve this problem and write the solution as an algorithm.
7. Write an algorithm to mow a lawn in which some of the steps call other algorithms. Write
these algorithms as well.
Types of error
There is a story from the early days of computing:
A massive mainframe computer was having trouble running a complicated program. The
programmers and technicians could not discover the problem, despite many hours of effort. They
were about to give up when finally it was found that a fly had become trapped between two vital
relays, and had disrupted the program. It is said that the term a bug in the program resulted from
this.
Nowadays any error in the running of a program is called a bug, and removing errors is called
debugging. Debugging is a necessary evil in programming. Very few programmers enjoy doing
it but very, very few can write a program without bugs.
Some errors are simple and will be picked up by the compiler, but some are insidious and result
from flaws in the programmers thinking. These are the most difficult to detect and rectify.
Fortunately there are techniques to assist in debugging.
Programming errors fall into four categories:
syntax errors
runtime errors
logic errors, and
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 76
intent errors.
Syntax errors are errors in the grammar of the computer language being used. These occur
when we misspell, put things in the wrong way round, or get the punctuation mixed up.
Runtime errors occur in a program when the program compiles correctly but fails to run to
completion. This would happen if you tried to use a value that was not recognised; where an
overload occurred (e.g. too large a number); or in a situation where division by zero is
attempted.
A logic error is where the thinking behind the algorithm is wrong. This is usually as a result of
the programmer having not designed the algorithm correctly. Examples include: steps are in the
wrong order, steps left out, > used instead of < , or faulty reasoning. If a program will not stop
because it is caught in an infinite loop this is also as a result of a logic error.
The final type of error is an intent error. In this case everything is done correctly, but the
purpose behind the instructions is at fault. The program is doing what we tell it to do, and not
what we wanted it to do! In programming this is as a result of not defining or specifying the
problem properly and thus finding a solution to the wrong problem.
These errors are listed in the order in which they are of increasing difficulty to detect and
correct:
syntax errors are usually found by the programming language, and only need editing
out
run time errors occur when the program is operating; the program will need some
minor changes before re-compiling
logic errors are more difficult to spot; they are indicated by incorrect or inconsistent
results, or the program not working at all; the specification needs to be checked and
the algorithm rewritten
intent errors may not be detected until too late (if at all); they usually require the
program to be rewritten.
As can be seen, the latter two types of error are the most serious, and it is important to avoid
them. This is why the need for careful definition and specification was stressed in the software
development cycle.
Eliminating bugs is an important part of programming. So far we have looked at detection and
correction but equally important is limiting the number of errors and making them easier to
find. As a program is being written, detailed documentation will assist in error detection.
External descriptions of the program (written or diagrams) show the supposed flow of logic,
while internal documentation in the form of comments and meaningful variable names help you
see what is going on. (We will look at comments in the next unit.)
One way of detecting errors in a program is to trace values through the program. This can be
done on paper or using the trace utility that comes with the program. To run a trace it is
necessary to identify the key variables and then see what values each holds as the program
runs.
For example the following algorithm might give an error message in some situations:
prompt for first
read first
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 77

prompt for second
read second
answer =first / second
write answer
If the values input for first and second are 8 and 16 the following occurs:
Line first second answer
1 8 - -
2 8 16 -
3 8 16 0.5
4 8 16 0.5
But what if 10 and 0 are entered?:
Line first second answer
1 10 - -
2 10 0 -
3 10 0 error!
4 10 0 error!
The error results from an attempted division by zero.
The earlier a defect is found in an algorithm, or a program developed from an algorithm, the
easier (and cheaper) it is to fix it.
The testing of software to discover and correct faults is a non-trivial task. It often involves not
only examining the program, but also running it in a variety of environments and conditions to
find if it does what it is supposed to do.
The method above of following the values step by step through an algorithm or program is
called a trace table. Line by line the values held in variables can be checked to see if they hold
what we expect them to hold. Using a trace table is one method of debugging a program.
There are a variety of other testing protocols. including static (inspection) and dynamic (on the
fly), black box and white box, alpha and beta, and so on.
Activity 3.3 Oops!
1. Syntax and runtime errors are easily corrected as they are identified during the compiling
or running of a program. Logic and intent errors however are more difficult to correct.
What are logic errors and what are intent errors and how are they best avoided?
2. What type of error, syntax, runtime, logic or intent, is in each of the following algorithms?
a prompt for first
get first
prompt for second
get second
if first <second then
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 78
write The smaller value is , second
endif
b first_number +second_number =total
c value =8
sum =16
total =sum - value * 2
answer =sum / total
d name =Fred Bloggs
e prompt for one
get one
prompt for two
get two
one =two
two =one
write Swapped around the numbers are , one, two
f prompt for first
get first
total =first +second
prompt for second
get second
write The sum of the two numbers is , total
g prompt for amount
get amount
answer =amont +10
write The answer is, answer
h prompt for value
get value
answer =value * 10
write The answer is, value
3. Work out what happens in each of the following programs by tracing the variables, and
then write down what you think will be output.
a prompt for cost
get cost
tax =cost * 15 /100
write tax
b a =12
b =3
c =a * b
a =c +b
b =a b
c =c 14
assume $20 is
entered for cost
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 79

write The final values are , a, b, c
c first =15
second =5
if (second * 7) <(first * 2) then
write first
else
write second
endif
4. There are a wide variety of testing protocols used to check a program does what it is
supposed to do.
Research and then write a paragraph about one of the following:
alpha and beta testing
static and dynamic testing
white box and black box testing
usability testing
security testing
destructive testing.
Challenge
1. Prepare an algorithm to output the coins used to give change when an amount of less than
$1 is paid with a $1 coin (e.g. 35c spent; change is 50c+10c+5c).
2. Write an algorithm to score a game of 10 pin bowling for one player.
A game has ten frames with a maximum of two bowls per frame. If a player obtains a
strike (10 pins with the first bowl) s/he scores 10 points plus the value of the next two
bowls. If s/he scores a spare (10 pins with two bowls) s/he scores 10 points plus the value
of the next bowl. Any other number of pins in a frame counts as is. A strike in the 10th
frame results in two extra bowls, a spare in the 10th gains one extra bowl.
3. In order to transfer information over networks or the internet it is sometimes useful to
either compress or encrypt the data.
Data compression is the process of using fewer bits to represent the same information,
usually to reduce file size and speed up transmission. Encryption is the converting or
encoding of information into a different form so that its meaning is hidden.
Both processes are very important and there are a wide range of algorithms and programs
for either.
Investigate either data compression or encryption and explore the use of the algorithms
used for processing.
Experiment with developing your own algorithm for either data compression or for
encryption.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 80
SEI 3 Copyright
In this our third look at the social effects of technology we will investigate the issues around
the ownership of algorithms and other intellectual property.
The law of copyright
A person has an idea and expresses it in some way, perhaps in the form of a story, a
photograph, a song, a painting, or a computer program. The product might be so good other
people will pay money to be able to use it.
Because the person developed the expression of the idea it is now their intellectual property
(IP). Copyright gives the originator alone the right to make copies of this expression of their
idea and this right is protected by law.
Copyright only applies to original work and must be in some tangible form a book, on
canvas, or on a disc. Although only the author has the right to make copies of the expression of
the idea, the idea itself is not copyright. Anyone else could have had the same idea, or could
even take the same idea and express it in a different way.
Under the Berne Convention and the Australian Copyright Act (1968) copyright is automatic.
This means that the essay you wrote for English last week is copyright, and anyone who copies
your homework could theoretically be sued!
It is usual, but not necessary, to indicate copyright using the symbol and to register the work
with the federal government and by paying a small fee. Only the originator of the idea is
entitled to register copyright. If the originator cannot be determined copyright cannot be
granted. The owner of the copyright can prevent others from reproducing the work and can take
them to court for infringement. Note, copyright is infringed, not broken.
In Australia algorithms and computer programs are listed under Division 3, which includes
works literary, dramatic, music manuscript, art, and so on. These are covered by copyright for
the lifetime of the author plus 50 years. The legal definition of a computer program is the
expression in writing of instructions for a computer and the conversion of these into object
code.
One situation in which a person may not own the program they have written is in a situation
called work for hire. Programmers are often required to sign contracts assigning ownership of
programs they write, while working for a company, to their employer. In this employer-
employee situation the company or person they are working for when they write the software
holds the copyright. The programmer may also have to undertake not to divulge or use the
ideas developed for a specified time after they finish working for the company.
A work that is not copyright is public domain. This means the ownership of a work is not
claimed by anyone, or that the copyright has expired. The Bible, the works of William
Shakespeare, and so on, are in the public domain. Copyright expires 50 years after the author
dies so that the operettas of Gilbert and Sullivan are now also in the public domain and may be
freely produced without paying any fees. Computer programs can be in the public domain if no
one claims them (but it is unlikely that any program will be of value 50 years after the
programmer dies!).
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 81

Copyright Amendment Act 2000 (Digital Agenda)
Developments in computer technology over the last few decades have been so rapid that
legislation has found it difficult to keep up with changes. After years of discussion the
Copyright Amendment Act 2000 (Digital Agenda) came into law in 2001. Its aim was to
balance protection for on-line content against the honest users right to access data.
The principle features of this Act are:
it developed the concept of a technology neutral right of communication;
technology neutral means using any form (Internet, broadcast, wireless, etc.) or
pathway (cable, fibre, microwave, etc.), while the right of communication refers to
being able to control the use of work available on-line
the right of first digitisation which gives originators control over how their work is
recorded and used digitally (e.g. scanned, DVD, digital photograph, etc.) as well as in
hard copy
it specified the responsibilities of ISPs (Internet service providers) so that they are not
liable for the transmission of copyright material through their system, but are
responsible for copyright material that is held on their own servers
it defined communicate to include make available on-line, or to electronically
transmit
it stipulated additional penalties for infractions, especially in regard to technological
protection measures.
Technological protection measures include broadcast decoding devices (e.g. satellite or cable
set top boxes that decrypt signal) and electronic rights management information (RMI) formats
such as digital certificates, electronic watermarks or digital signatures.
The legislation covers circumvention devices to avoid this protection. Attempts to develop
software locks, technology blocks or methods to avoid prior payment can be penalised. In this
however the target is not the end user, but rather commercial infractions. Use of these devices
will not be penalised, but developing and selling them will be.
Software piracy
People who would never walk into a shop and steal a program worth hundreds of dollars think
nothing of making pirated copies of the same program from friends.
It has been estimated that a fully developed, large scale program costs in the order of $50+per
line of code to produce. These costs include analysis, design, implementation, testing, salaries,
marketing, distribution, and so on. When you consider that programs can be tens of thousands
of lines long, you will appreciate that the cost of developing a new program is very high.
Software piracy happens when someone without permission copies or downloads a program.
Most software is sold under license. The purchaser does not own the program, but is granted a
license to use the program. This license often includes some copying rights, e.g. for a backup
copy, or to install the program onto a hard disc, but any other copying is infringing copyright
and the offender can be taken to court if detected.
To protect software developers the law on copyright is very clear. If you buy a copy of Office
2010 you are paying a license fee to use one copy of the program. You have no authorisation to
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 82
make more copies (other than a backup). If you then pirate or download that program you are
liable to be fined $500 for each copy you make. If you set up a backyard organisation to make
multiple copies of it on DVD for your friends you can be fined up to $50 000 and spend 6
months in prison. Companies, or organisations such as schools, that do this can be fined $250
000.
Why do people copy or download software? The most common reason is that it is so easy to
do. It is difficult to resist the temptation of avoiding the payment of hundreds (or even
thousands) of dollars to own a powerful, useful tool when you can simply get it for free. Add to
this there is very little chance of being caught and prosecuted and it is obvious why piracy is so
widespread.
Software pirates often state as a defence that everyone else is doing it anyway, and besides they
will never get caught. You may have come across people who have copies of all the popular
programs and dozens of games, and they are always on the look-out for more. At the same time
they are more than ready to allow others to copy their programs.
Another situation where copying is carried out is in enterprises or businesses that need multiple
copies of a program, but do not have the funds to buy a copy for every computer that is going
to use the program. In this case the person responsible often rationalises by saying they have
bought a legal copy and have thus fulfilled their obligation. This problem is compounded on
a network where a single use license may be used over a group of computers.
Protection of copyright
As can be imagined the copying of software is a major problem to the producers of commercial
programs, especially games. It restricts their rightful income. It is estimated that there are at
least four pirated copies for every legal copy. It has been claimed that this involves the sum of
hundreds of millions of dollars per year in Australia alone. (This claim does not take into
account the fact that those who copied or downloaded the program would not have been able to
afford to buy the original.)
Pirating can also reduce incentive to further development. It is expensive to develop new
software and some companies might be discouraged if they felt the returns from their outlay
were minimised by copying. (This does not seem to apply in the computer gaming industry
where the returns are very high despite widespread copying.)
Several different ways have been attempted to solve the problem of software piracy.
Many software companies put copyright controls in their programs or encrypt them to avoid
unauthorised copying. These programs cannot then be copied by normal commands. These
controls however are usually taken as a challenge by some crackers who then try to break
them. There are also many programs, freely available, that enable copying of protected
software. It is ironic to note that it is legal to buy programs to help break copyright controls, but
it is illegal to use them! In addition it is possible to download cracks or authentication codes
from piracy or peer-to-peer sharing sites to by-pass software protection.
While the procedure of encrypting programs is still used, most major manufacturers now do not
employ them, refusing to be drawn into an escalating struggle with crackers. The exception is
the makers of computer games. The copying of games is very widespread since the players of
these games, predominantly young males, have limited money and a network of computer
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 83

oriented friends. Where encryption has failed the manufacturers have resorted to other
protection devices such as not permitting the program to run without the original CD/DVD in
its drive, or the input of a word or phrase from a given page of the manual, or a specially
designed code wheel which is difficult to photocopy.
A final approach to protecting copyright has been to tackle the problem head-on. The
Australian Information Industry Association has set up a Software Taskforce to establish a
public information program on the issue of the costs of software
copying. By educating the public to the costs to industry (and
hence honest purchasers of software) and the job loss inherent in
this, they hope to reduce piracy. The taskforce is also lobbying
the government to strengthen the laws governing copyright
protection of software, and to encourage serious enforcement of
these laws. The international Business Software Alliance works in the same way on a wider
scale. The BSA represents a number of the worlds largest software makers and is trying to stop
copyright infringement of software produced by its members.
Rather than trying to stop users copying their programs some developers actively encourage it.
Some producers adopt the shareware concept. In this they freely distribute their program, and
encourage users to make copies for their friends. Shareware operates on the basis of trust.
Contained on the disc is a message encouraging the user to register the program if they
continue to operate it. By paying a fee (usually $25-$50) the registered user is sent a copy of
the manual, provided with updated versions of the program, and is entitled to user support (i.e.
can phone the programmer for help). There are now many thousands of shareware programs
available some of them of excellent standard, but this concept has not been adopted by the
major software producers.
An extension of this concept is the free to play (F2P) online game. Users can try what is usually
a cut down or demo version of a game at no cost. This gives the game exposure and aims to
entice the user to continue playing. To play the full version of the game users either pay a
regular license fee or are encouraged to pay for items and advantages over other players via
micropayments. Examples of games with licensing fees include World of Warcraft, Everquest
and Eve, while there are hundreds of webpage based RPGs that are supported by
microtransactions.
Commercial piracy
It is not only individuals and institutions that infringe copyright. Software companies often
have to defend themselves if a competitor copies the basis of their programs.
Some companies will reverse engineer a program produced by rival company. Backwards
engineering is a process where a completed machine is pulled to pieces to see how it was built
and operates. The design is then copied with some small changes. Reverse engineering is
applied to software by reducing it to object code and then copying the ideas from scratch to
develop a similar program. While they have not copied the program itself they have copied the
algorithms and methods of the original. This has occurred with many commercial applications.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 84
Since the developer wants to protect the algorithm (the idea) which is not covered by copyright
law it is now very common for the originator to register the algorithm as a patent or a trade
secret.
A patent is a similar to copyright but is designed to protect inventions or processes and not
works of the mind. The business method of the algorithm is usually patented without the need
to list the code behind it. Patents are easy to register and defend, and commercial software
companies register every algorithm they can.
A trade secret is information that gives one company an advantage over another e.g. the
formula for Coke, a mailing list, or the recipe for KFC. If the secret has been obtained
improperly and profited by, the original owner can sue for losses. This method has proved
appropriate for algorithms as long as they have been kept secret by restricting access to the
object code to prevent reverse engineering.
Look and feel
One aspect of designing the user interface that has led to many court cases is the concept of
copying another programs look and feel.
Look and feel refers to originality in design of the user interface. Originality includes the
concepts of both independent design (not copied), and new idea (not a minor variation on an
existing idea). The look and feel of a program is to be taken as a whole including the selection,
organisation and presentation of user visible functions, and not just single elements such as a
button or icon. Since ideas cannot be copyright they can only be protected by patent or trade
secret. There have been hundreds of cases over look and feel infractions in the US.
The origins of look and feel litigation go back to early computer games when Atari sued North
American Phillips for copying its PacMan game. Atari did not say the code had been copied,
but rather the screen display where K. C. Munckin gobblers chased and ate ghosts was a
copy of the concept and feel of their game. Atari was successful in this suit.
The most celebrated case was when Apple Computers sued Microsoft (and Hewlett-Packard)
for copying the look and feel of the Macintosh desktop. They claimed Windows had 189
similarities such as the concept of using windows, the design and appearance of menus, the use
of dialog boxes, icon design, and the arrangement and manipulation of windows. Apple was
originally successful against Microsoft, but later lost on appeal. (In a bizarre twist Xerox in turn
later made a claim against Apple for stealing the original idea from them!)
Activity 3.4 Software piracy
1. a What does it mean when something is copyrighted?
b Why is it necessary to have copyright laws?
c What is the name of the current copyright law in Australia?
d Pick one of its provisions, explain what it involves and discuss its implications.
2. a In which situations is it legal to copy a computer program?
b Explain the difference between public domain software and shareware.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 85

c What would be the maximum penalty for someone who copied a program and sold it
to others?
3. Do you believe copying commercial applications or computer games is stealing? Support
your answer.
4. a What is reverse engineering?
b How is reverse engineering an infraction of copyright or patent?
c Black boxing is the process of taking the input and output of an existing program or
device and then working out how to get from one to the other.
Is black boxing an infraction of copyright or patent? Why or why not.
5. a Find out what is a mod chip is.
b What is the current legal situation in Australia in regard to mod chips?
6. a What does the legal concept of safe harbour refer to?
b In what way does the Australian Copyright Act offer protection to ISPs in this way?
c Why might the safe harbour concept be significant more widely, for example in
regard to inappropriate material placed on school networks by students?
7. When an algorithm is patented it permits the patent holder (usually a company) to broadly
lock everyone else out of using any algorithms like it. Court cases involving infractions
almost always go to the patent holder regardless of prior art. Patents also have an
prolonged protection period.
In what ways might patents be damaging the software world?
8. What is your response to the following statement?:
I copied MS Visual Studio Pro2010 because I wanted to have a go at it. There
was no way I could afford $1 200 for the program. Its only companies that are
expected to pay that much.
9. Of the methods adopted by software companies (protection, shareware, education, and law
enforcement) say which you think is the most effective, giving reasons why.
10. Mike Crackster McGee has copies of all the best games. He freely offers them to you
saying you would be mad to pay for them because no one else does. What would you do?
11 a Explain why look and feel can only be protected by a patent or trade secret.
b Investigate and report on recent look and feel cases. Have there been any in
Australia?
12 Everyone does it, and besides I wont get caught
Discuss the morality of the above statement. Does the fact that something is common
practice, and there is little chance of retribution, excuse an immoral action?
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 86
Napster case study
An examination of the role of mp3s, while not software piracy as such, is an interesting
illustration of how copyright has been defended in recent years.
The Moving Pictures Expert Group (MPEG) have developed a
range of formats to compress digital movies and sounds. Mp3 is an
abbreviation of MPEG audio layer 3. It is used as a very effective
way of converting music into a compact form that is still of
reasonable quality for transmission on-line. In addition to using
compression algorithms mp3 removes sounds outside of human
hearing such as high frequencies, those masked by other sounds, or
those immediately after loud thuds. A 40 Mb digital sound file for
example can be converted to a 3 Mb near-CD quality file. This
means the file can be transferred on-line in less than a tenth of the
time.
In September 1999, 19 year old Shawn Fanning set up the Napster website. This so called
Internet Directory Service provided members the opportunity to trade mp3 files. Within months
up to 50 million users were sharing copies of their music with others. At about this time CD-W
devices were becoming plentiful and so home users were able to download and burn copies of
music CDs for minimal cost.
It did not take the music industry long to object to what it saw as loss of income. The RIAA
(Recording Industry Association of America) sued Napster for copyright infringement in
December 1999. In this action the RIAA was joined by the motion picture association
(objecting to DVD piracy), and the suit was extended against other sites such as mp3.com. To
make the case appear less of a Goliath vs David affair, the RIAA brought the suit in the names
of the heavy metal group Metallica and the rapper Dr. Dre.
The RIAA claimed piracy, saying Napster was guilty of illegal copying and distribution of
music without permission and without compensation. They argued Napster was undermining
their rightful revenue, and that this in turn would damage the industry as a whole. There would
be reduced investment in developing new music if there were no guaranteed returns.
Napster based its defence on the fact that under US copyright law it is legal to make a copy of
music that you have bought for your own personal use. They stated they were not advocating
the piracy of discs, they were merely providing a service to users to exchange music for
personal use. In addition, in spite of being enormously popular, Napster stated it did not make a
profit, as it charged no fees.
Eventually the recording industry and the motion picture association succeeded in their suit,
and the subsequent appeal, and Napster was effectively put out of business.
Following on from the case there have been warnings that it has set a poor precedent. The
ruling, claim some, restricts the flow of information on the net, and has implications for
freedom of speech and fair use. Some see it as a start to regulation of the internet.
Napster had also provided a method for new or emerging artists to present their work directly to
an audience. By using Napster these groups avoided the large start up costs of developing and
promoting their music. They also did not have to satisfy the demands of the music industry
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 87

heavy weights who only selected groups they felt would succeed. By cutting out the middle
agents new artists could present their music directly to listeners, ensuring wide exposure for
little investment. This was seen as a positive in encouraging the development of new and varied
music.
Despite its victory the music industry has not stopped mp3 transfers, with many sites now
offering a service where users can share files directly, peer to peer. With no single entity to
target the industry cannot bring suit.
Whatever the eventual outcome, the distribution of music will change dramatically. If copyright
is to be protected legislation will have to develop new methods of handling new problems.
File sharing
Although Napster was shut down by court order, it paved the way for peer-to-peer file sharing
networks such as Gnutella, Kazaa, eDonkey, and BitTorrent. A typical file sharing network will
provide access to computer programs, videos, music, images, or documents such as electronic
books.
Peer-to-peer (P2P) file sharing is where users connect to other similar users, their peers, to
search for files such as TV programs, songs, or games. If they find what they are looking for
the file can then be downloaded directly from the peers. (This is where the model differs from
Napster, which used a central server to host the files.) Many P2P
applications use the bit torrent protocol to handle downloads. Popular
bit torrent clients include uTorrent, eMule and Vuze.
The P2P file sharing client will usually source the file from multiple peers, obtaining different
parts or sections of the requested file from those peers on line at the time. While this is going
on the client will be uploading the parts it already has obtained to other peers. When the
download is complete the multiple parts are reassembled by the client into the original file.
In addition to P2P networks there are also file hosting networks which provide links to direct
downloads of files. Authors of shareware, freeware and open source software often use file
hosting services to provide access to their programs.
While file sharing is not illegal in itself, downloading copyright protected files without
authorisation can be.
Creative commons
Creative Commons (CC) is a more flexible copyright
model that aims to replace all rights reserved with
some rights reserved. Many individuals, organisations
and web sites, including Wikipedia, now publish their
intellectual property (IP) under a CC licence.
A Creative Commons license allows creators to communicate which IP rights they reserve, and
which they waive. Fundamentally the licence allows that the work can be copied but, if it is
distributed to others, it must be unmodified and for non-commercial purposes.
CC has four basic licensing variations indicated by a two letter code. These are:
attribution (BY), the user has to credit the original author
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 88
share alike (SA), the user can create derivative works but only under the same or a
similar license
non-commercial (NC), the work is not to be used for commercial purposes
no derivative works (ND), only the original work, as is, may be used.
The specifics of each CC license are communicated along with the work using visual symbols
and simple explanations.
Open source software
Free and open source software (FOSS) is an alternative method for developing software that
does not use the model used by most large companies such as Microsoft. The best example of
an open source product is Linux, a Unix variant developed by Linus Torvalds that is used
worldwide as a computer or server operating system.
Torvalds freely distributes the source code of Linux on the internet.
He is assisted by an on-line community of volunteer programmers
who modify and debug the OS. Each of these developers then shares
their improvements with the others in the Linux community. A
coordinating group confers regularly and at intervals select changes
that improve the overall functionality of Linux. They then issue a
new version release of the program. This authorised version
enables standardisation and coordination for future improvements.
Developers are not bound by these releases but can move in any
direction they judge valid. Through shared effort a high quality, free
produce is produced in a very short time.
The basic concepts of FOSS are that programmers have free access
to the source code of a program, and that they can read, modify and
then redistribute the program. In this way bugs are fixed, and software evolves and adapts. The
particular advantage of open source software is the very rapid development time. Applications
can go through version releases in months rather than the years for conventional software. The
move to open source software has provided much of the momentum for the internet.
Some examples of free open source programs include:
Apache this application is used on over 60% of web servers world wide
Open Office a suite of programs for word processing,
spreadsheets, presentations, graphics, and databases,
that acts as a free alternative to Microsoft Office
Perl a very popular web scripting language
BIND the software that controls the DNS (domain naming system) for the entire
internet
sendmail the most important and widely used email transport software
Darwin a BSD derivative that the Mac OSX is based on
Mozilla Firefox the second most popular web browser
Drupal, J oomla, Moodle, etc. content management systems, i.e. programs used to
manage collaborative work flow.
Linus Torvalds originator
of Linux
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 89

Of these BIND and sendmail are so good there is no commercial competition for them!
Developers of open source software have some limitations placed upon them. These include:
future developers must have access to the original source code, and any code
modified from it that is to be distributed
re-distribution of the program must be free
the integrity of the original source must be distinguished from modifications and
patches
there is to be no discrimination (racial or other) against people or groups
there are to be no restrictions on usage (e.g. no export restrictions so that software
cannot go to certain countries)
programs developed are not to contaminate other software (e.g. alter settings so that
other programs do not run, disable functions, spread viruses)
Provided these conditions are met then derived works are permitted and can be profited from.
There are many companies that do this. Examples include Oracle which
has rebadged Open Office as Oracle Open Office (formerly StarOffice),
SilverXs X-Chat for Windows, and NeoOffices version of Open
Office for the iMac. In each case the company has enhanced the
original program. They can charge for these enhancements, but not for
the original code, and must supply the original source code with their
package.
The use of open source licensing with its rapid development time, free applications, reliability
and user-community support make it a very attractive alternative to users and may someday
challenge the major software developers such as Microsoft.
Activity 3.5 Open sesame
1. a What is mp3?
b Explain why mp3 became so popular, so quickly.
c What are the objections of the music industry to mp3 sharing?
d What defence did Napster and mp3.com present?
2. a What is bit torrent?
b Identify three popular bit torrent clients not listed above.
c Find out and explain how a bit torrent client operates. In your answer refer to the role
of the seed, peers, and distributed access.
3. Does the use of bit torrent clients foster a culture of piracy? Support your answer with a
reasoned argument.
4. Academic versions of software are fully functional versions of popular programs that are
offered to genuine students at a greatly reduced price.
Why do you think many developers such as Microsoft and Adobe now offer academic
versions of programs?
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 90
5. The six principle Creative Commons licences are CC-BY, CC-BY-SA, CC-BY-ND, CC-
BY-NC, CC-BY-NC-SA, and CC-BY-NC-ND.
Pick one and explain what rights the license passes on to users, and suggest a situation in
which this sort of licence might be useful to a creator or author.
6. Find out what copy-left is.
In what ways does copy-left differ from creative commons?
7. a What are the concepts behind open source software?
b Give three examples of open source software.
c Explain the principle differences between traditional licensing and open source
software.
d Why has open source software been so successful?
e Should Microsoft feel threatened by open source licensing? Explain you position.
Activity 3.6 Copy, right?
The following activity is designed to be carried out as a whole class role play where each
member takes on a specific persona. As an alternative it can be run as a chat session on a
network. This is an opportunity for everyone to become actively and emotionally involved in
the issue of copyright. In turn it is hoped to lead you to develop and understand your own
attitude and that of others.
Preparation
Each person in the class will be assigned a role. As set up there are 12 different characters,
however several of the roles can be taken by more than one person, or alternatively two roles
can be compressed into one person, in each case depending on the class size.
In addition there must be a facilitator and two or three recorders.
The facilitator is the person who directs the action by asking specific questions of various
actors, or by asking them to respond to points that have been made.
The recorders document the debate, listing issues that come up and arguments that have been
presented. If run as a chat session this task can be based on a transcript of the dialogue.
Each actor must read and think about their role before the debate. To prepare properly you must
think about the following:
what are the values held by my character (what are the things I would feel are
important if I were this person)?;
is there any background knowledge I will need to be familiar with?
In presentation you must aim to stay in character and be consistent, but still feel free to add
anything you think relevant. It is not necessary to wait until the facilitator calls on you, but to
interject if you feel that is what your character would do in the given situation. Each character
may have a sign or label advertising their name (real or assumed) and their role.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 91

The Characters
President of P & F
As president of the schools Parents and Friends Association you are convinced of the
need to strengthen the curriculum of the school through the use of computers. You want
to provide the greatest opportunities for students to use computers at least cost. You are
aware of the copyright laws, but feel the need to stretch a very limited budget as far as
possible.
School Principal
You are proud of the school you serve as principal and want it to take a leadership
position in the educational use of computers. You plan to introduce a policy statement
regarding the need to observe the copyright laws and publishers licensing agreements
concerning software. You feel such a statement will enhance the schools image.
Parent
As an active parent who is concerned about the education of your children you want
them to have as much chance as anyone to get onto the schools computers. You feel the
school and P & F should spend its money on more computers, rather than on multiple
copies of the same program. As far as you are concerned the law is unclear on copying
software, and you think that, as many people already download games and videos,
computer programs should be no different. You know they use good software at school
and think the best idea would be for students to get copies of the schools programs that
they could then use at home to help them with their learning.
Software Company Owner
Your company has produced, at great cost, several excellent programs. For you the issue
of software piracy is straight forward: anyone who copies or downloads a computer
program, without paying for it, is stealing. You will lose your livelihood if copying and
downloading reduces your sales. On your programs you have a prominent warning that
the person who buys the product agrees to a licensing contract. You provide one backup
copy and state that the program must not be copied or used on more than one machine at
a time.
Computer Teacher
You have been teaching computing for three years now in a room with 15 computers.
You only have one copy of Office but since you want all your students to learn the
applications you have made fourteen additional copies. You have no money in your
budget for additional software. You know it is wrong but feel there is little you can do
about it. In addition if a student needs a copy of the suite so that they can continue to
work on it at home you will allow them to make a copy.
Teacher/Librarian
You have taught English and run the school library for twenty years now. You cannot
understand what the fuss about software copying is. There is no way you would allow
students to photocopy novels or plays and cannot see why they should be allowed copies
of programs. In your view it is immoral to pirate programs. If you found out this was
going on you would feel bound to report it.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 92

Cracker
Since you were ten you have been virtually wired to your keyboard. You spend hours
every day on the net communicating with cracker groups. There is not a program going
that you cannot crack and make pirated copies of. From your point of view the tougher
the controls on copying the more fun it is to break. In your opinion information should be
free and it is immoral for companies like Microsoft to make billions. You contribute to a
peer-to-peer file sharing site and have uploaded copies of many programs with the
copyright restrictions removed.
Student
One of your on-line friends is a cracker who has pirated versions of all the best
programs, especially the games, which are now available for you to download. Being a
student you do not have the money to buy programs, more so when you can get them for
free. When you are older and earn a salary it will be time enough to pay full price for
programs but at the moment you are just waiting for the cracker to break into the next
game.
Programmer
You do not have many friends because you seem to spend all of your time hunched over
your keyboard. You spend upwards of one thousand hours, over months, preparing each
program and need the royalties the software houses pay to keep yourself. You get a lot of
satisfaction out of developing a program, and knowing it will help or entertain other
people. However, as pirating has been on the increase, the profit margin of the software
houses has decreased, and they have cut back on your royalties.
Shareware Writer
You write programs and distribute them freely, trusting to people who use them regularly
to become registered users. You firmly believe in the concept of shareware as the only
viable alternative in software marketing. You feel software houses set their prices too
high to cover the inevitable copying that occurs, and that only by freely distributing
programs at very reasonable prices and trusting to peoples honesty has the industry any
chance of surviving.
FOSS group member
You are a member of an free and open source software (FOSS) group that is developing
several programs that could be used in schools including Open Office. You are keen on
this suite of programs because it can do nearly everything Microsoft Office can do but is
free for anyone who wishes to use it. Instead of your programs being used the expensive
commercial programs are being pirated. You are feeling very frustrated with the situation
as you have put in many hours of your own time without charge.
Lawyer
You are fully aware of the law in regard to the copyright of programs and are prepared to
explain it to anyone who asks you. The Australian Information Industry Association has
appointed you to its Software Task-force. You believe the best way to alleviate the
problem of pirating software is through a public awareness campaign, coupled with
stronger penalties.
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Solving problems 93


Politician
As the local member of parliament you have views which are strongly in agreement with
whoever you happen to be speaking to at the time. You are aware that there is strong
feeling in the community in regard to the copying of computer programs but are afraid to
take too strong a stance in case it costs you votes.
Facilitator
The role of the facilitator is crucial to the success of the role play. Each participant must
be encouraged to express their point of view, but without dominating the event.
The whole experience must also flow smoothly. Before the debate the facilitator should
devise a series of scenarios to present to the participants.
Recorders
The students documenting the debate should produce a list of issues that arose.
(Alternatively they can act as TV reporters and report to their audience the chief points
made in the discussions.) This can be achieved by taking notes as the debate continues or
by summarising a printout of the chat dialogue.
Follow Up
The group should discuss (out of character) the different opinions that were expressed.




Using algorithms
to write computer
programs is next

Kevin Savage 2011 Single user licence issued to Mitchell Ingall

You might also like