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...
Solving problems 65
mashing. We try anything that occurs to us. If it does not work we will try something different,
and k...
Leading Technology 66
Computers excel in solving problems of the type that can be expressed as a series of steps.
Humans o...
Solving problems 67
Activity 3.1 – Problem solving
1. a Describe one systematic problem solving method.
b What is meant by...
Leading Technology 68
 Who Knows? (Aust; $1 500; discussion programme; 55 min; rating .06)
 Cricket (Aust; $55 000; live...
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 mi...
Leading Technology 70
9. You have just been appointed managing director of the Hitz Music Company. This is an
old company ...
Solving problems 71
Although algorithms of this type do not seem to have much to do with computers, we need to
know how to...
Leading Technology 72
When we have all of the required steps worked out in pseudocode we can then get into the
detail of c...
Solving problems 73
Although we use the = in pseudocode to show assignment this should not be read as “equals”,
as in Math...
Leading Technology 74
2. Identify what is wrong with each of the following algorithms (ambiguous, out of sequence,
or infi...
Solving problems 75
4. The algorithm in 3a above of course would not work if the phone was engaged, or the
person you wish...
Leading Technology 76
 intent errors.
Syntax errors are errors in the grammar of the computer language being used. These ...
Solving problems 77
prompt for second
read second
answer = first / second
write answer
If the values input for first and s...
Leading Technology 78
write “The smaller value is ”, second
endif
b first_number + second_number = total
c value = 8
sum =...
Solving problems 79
write “The final values are ”, a, b, c
c first = 15
second = 5
if (second * 7) < (first * 2) then
writ...
Leading Technology 80
SEI 3 – Copyright
In this our third look at the social effects of technology we will investigate the...
Solving problems 81
Copyright Amendment Act 2000 (Digital Agenda)
Developments in computer technology over the last few de...
Leading Technology 82
make more copies (other than a backup). If you then pirate or download that program you are
liable t...
Solving problems 83
oriented friends. Where encryption has failed the manufacturers have resorted to other
protection devi...
Leading Technology 84
Since the developer wants to protect the algorithm (the idea) which is not covered by copyright
law ...
Solving problems 85
c What would be the maximum penalty for someone who copied a program and sold it
to others?
3. Do you ...
Leading Technology 86
Napster case study
An examination of the role of mp3s, while not software piracy as such, is an inte...
Solving problems 87
heavy weights who only selected groups they felt would succeed. By cutting out the middle
agents new a...
Leading Technology 88
 share alike (SA), the user can create derivative works but only under the same or a
similar licens...
Solving problems 89
Of these BIND and sendmail are so good there is no commercial competition for them!
Developers of open...
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...
Solving problems 91
The Characters
President of P & F
As president of the school’s Parents and Friends’ Association you ar...
Leading Technology 92
Cracker
Since you were ten you have been virtually wired to your keyboard. You spend hours
every day...
Solving problems 93
Politician
As the local member of parliament you have views which are strongly in agreement with
whoev...
Upcoming SlideShare
Loading in …5
×

3 solving problems

853 views

Published on

Published in: Education, Technology
1 Comment
0 Likes
Statistics
Notes
  • Hai
    I have two hard disk capacity per each 160 GBs but both are not working how to repair in this one is bad disk showing option not formating also and another one not connecting the cable how to fix tall me solution please.fixing or any software or any tricks or etc
    Send by my E-Mail ID : rafeeqahmedali@gmail.com or mansoorelahee@rediffmail.com

    I have 500 GBs hard disk but that is read / write very slow moving coping etc in thsi bad sector is their witout any damage data how to remove bad sector i trid error and fixing option in propreity checkdisk. tell me soon any body please
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
853
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

3 solving problems

  1. 1. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  2. 2. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  3. 3. 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 aunt’s 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 aunt’s. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  4. 4. 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 evening’s 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)  What’s New (Aust; $18 000; current affairs; 24 min; rating .33)  Midweek Movie (USA; $1 500: various; approx. 82 min; rating .18)  George’s Dream (UK; $4 000; situation comedy; 25 min; rating .16) © Kevin Savage 2011 – Licensed to Hillcrest Christian College for use in 2011-12
  5. 5. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  6. 6. 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 90o ). 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 – Licensed to Hillcrest Christian College for use in 2011-12
  7. 7. 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. (Don’t 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 – Licensed to Hillcrest Christian College for use in 2011-12
  8. 8. 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 Java. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  9. 9. 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++, Java, 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 Jolie” 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 – Licensed to Hillcrest Christian College for use in 2011-12
  10. 10. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  11. 11. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  12. 12. 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 programmer’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  13. 13. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  14. 14. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  15. 15. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  16. 16. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  17. 17. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  18. 18. 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 user’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  19. 19. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  20. 20. 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 world’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  21. 21. 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 program’s “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 – Licensed to Hillcrest Christian College for use in 2011-12
  22. 22. 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. It’s 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 won’t 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 – Licensed to Hillcrest Christian College for use in 2011-12
  23. 23. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  24. 24. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  25. 25. 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, Joomla, Moodle, etc. – content management systems, i.e. programs used to manage collaborative work flow. Linus Torvalds originator of Linux © Kevin Savage 2011 – Licensed to Hillcrest Christian College for use in 2011-12
  26. 26. 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), SilverX’s X-Chat for Windows, and NeoOffice’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  27. 27. 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 – Licensed to Hillcrest Christian College for use in 2011-12
  28. 28. Solving problems 91 The Characters President of P & F As president of the school’s 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 publisher’s licensing agreements concerning software. You feel such a statement will enhance the school’s 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 school’s 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 school’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  29. 29. 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 people’s 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 – Licensed to Hillcrest Christian College for use in 2011-12
  30. 30. 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 – Licensed to Hillcrest Christian College for use in 2011-12

×