An Algorithmic and Social Introduction to Computer Science (CSC-105 2000S)

Suppose you've been given two sets of instructions that solve the same problem. What criteria might you use to determine whether one is better than the other?


I would prefer to have a set of instructions that are easy to understand yet short and precise. The examples of instructions in class each reflected one of of these aspects. One was very simple and basic, but was quite long winded. The other set of instructions was not very long, but went through of series of precise steps. However, they were a bit more difficult to understand and follow.

With that in mind, I'd have to set my criteria as follows:



1. Simplicity. Instructions should be simple and easy to follow. Generally, those most understandable through "common sense," rather than specialized knowledge, are preferable. (However, when the instructions are intended for a specialized audience, jargon may be acceptable, see the 4th criteria.)

2. Thoroughness. Instructions should include all necessary steps without assuming that the reader knows what to do next.

3. Conciseness. While I think thoroughness is more important, if shorter instructions can do the same job, they're probably better.

4. Tailoring. Instructions tailored to their possible audience/readers (using a language that they understand) will always be able to fulfill the other criteria more completely, and be more easily understandable to this audience.


Well, we kind of went over this in class on Friday, but I think the main determining factors would be time and efficiency. If both instructions presumably accomplish the same thing, I would want to pick the one that was clearer (made more sense) to and more convenient for me. You could determine this by skimming through both sets of instructions, seeing if one is notably (unnecessarily) longer than the other, or if one asks for materials (ie, eggs in a recipe) that you already have while the other requires you to go out and purchase something special.


Criteria you might use to determine the best set of instructions include clarity, non-ambiguity, and consiseness. It would be desirable to have the most direct system for arriving at the desired results, without any extraneous steps which, like the more moving parts in a mechanical system/the more chance of system failure, the more steps/the greater possibility of computer error. The steps should be clear both to the human and the computer, so they can be easily traced and followed. On the other hand, the instructions can not be ambiguous, which requires extreme throughness in design, and the instructions should be expressed within system paradigms (variables, conditionals, repetitions, indefinite repetitions). All steps should be able to be executed without errors or any "thinking" by the computer, which would introduce possibilities for error. Thus, steps should be simple and logical. Things that the computer might interpret in two or more ways must be eliminated in favor of a way which leaves no question about the operation to be performed. It seems that a balance must be reached between unambiguous instructions and concise ones, so they are long enough to work, and not longer.


I would likely go with whichever set of instructions appeared easier for me to understand and to follow, whichever seemed less complicated. I think clarity, readability, and accessibility, in terms of the organization, wording, and layout of the instructions, are most important. Of course, if both sets of instructions were equally as easy to follow, I would go with efficiency, whichever set I perceived would let me solve the problem more quickly. Obviously, this is not something you can be certain of, but you may well be able to get some indication of this just by looking each set over.


1.) The simplest language allows the users to learn the language and master all of the language's concepts faster.

2.) If the language is logical, then the language is able to adapt to the users. Example: If a new mathematical formula is developed, the language can adapt in a predictable and logical way. Also, if the language is dependent on a certain order, the first step should be done first and so on. Step one cannot be conditioned upon step 1.1. The language should not read: Do X, then Do X in this fashion. X has already been done and cannot be redefined.

3.) If the language is concise, then the language is read, written, and learned at a faster rate. The verbose language on the website takes more time to create and read than a more concise alternative. The more concise the language is, the less memory is uses on the computer.

4.) The language must be able to account for the unique circumstances.

5.) The language must be unambiguous. A variable in the language must completely define the command and the execution of that command. The language should be as specific as possible.

6.) Each variable may have only a single value.

7.) An overview or summation at


I think the first thing you look at is the complexity of the instructions. If one is more difficult to understand or execute, then you use the one that is simpler and easier to deal with. Next, if both sets of instructions are roughly equal in complexity, then you should look at their length. If one set of instructions more succinct, then use that one in order to save time, energy and possible problems. Finally, if you have bypassed these first two options, then check to make sure that both accomplish the same goal by testing them both. If there one proves to ensure the quality of the final product more than the other, than chose that one, but if there is no difference between the two (but if they were just written in a different order), then it doesn't matter which one you chose - unless you just have a non-objective personal bias for one.


Good question. I suspect this will be different in different situations, but the criteria I would use would be something like this: which set of instructions requires the least number of steps to get to the solution? The fewer the better. Which has the fewest points at which the instructions could be misinterpreted (i.e. which is less ambiguous). Which appears to be the easier to implement? (the easier is preferred) Are both sets capable of solving the problem using the resources available to the problem-solving mechanism (person, computer, whatever)? There are probably a great many things I haven't thought of, but I guess that will have to do for now . . . .


My first answer to this question is that I would prefer the instructions that seemed the most clear and quick. However, for almost anything I could be instructed to do, this would require I have some prior knowledge of the task to be completed. Otherwise I would not understand what I was to do. So, I would look for the instructions that gave me all the information I needed without being overly complex. Given the choice between: "Turn on the lamp by grasping the switch between your thumb and first finger and twisting counter-clockwise" and "to switch the lamp into the 'on' mode, locate the switch along the base. place the thumb and index finger of one hand close to each other, as if to make a pinching motion. With your fingers in this position, place around the aforementioned switch....", I would chose the former. Well written instructions walk the fine line between providing enough information in a concise manner and providing too much information in a muddled and confusing way.


If you have two sets of instructions that both work to solve a problem, there must be a means to determine which is more effective. There are a number of factors that can be considered in this judgement. The quickness with which the problem is solved is one, although the thoroughness of the problem solving shouldn't be sacrificed for speed. The margin of error of the two methods can also be considered, which has to do with the number variables in the problem. The way that each set of instructions deals with variables is also crucial, depending on how many special cases there are. The ease with which the instructions can be completed is also a factor, as easier instructions facilitate more repeitition and consequently more supporting/disproving results.

Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.

This page may be found at

Source text last modified Sun Feb 13 09:55:44 2000.

This page generated on Wed Feb 16 08:36:19 2000 by Siteweaver. Validate this page's HTML.

Contact our webmaster at