Advertisement

Automatic graders for programming classes

Fifteen months ago the first version of an “automatic grader” was tried with a group of twenty students taking a formal course in programming. The first group of twenty programs took only five minutes on the computer (an IBM 650). With such a satisfactory beginning, the grader was then used for the entire course with this group of students and have been used at Rensselaer ever since. For all exercises, the average time spent on the computer has run from half a minute to a minute for each student. In general only an eighth as much computer time is required when the grader is used as is required when each student is expected to run his own program, probably less than a third as much staff time, and considerably less student time. The grader easily justifies itself on economic grounds. It accomplishes more than savings in time and money; it makes possible the teaching of programming to large numbers of students. This spring we had 80 students taking a full semester course in programming; over 120 are expected next spring. We could not accommodate such numbers without the use of the grader. Even though the grader makes the teaching of programming to large numbers of students possible and economically feasible, a most serious question remains, how well did the students learn? After fifteen months, our experience leads us to believe that students learn programming not only as well but probably better than they did under the method we did use—laboratory groups of four or five students. They are not as skilled in machine operation, however, since they get only a brief introduction to it late in the course. After learning programming, very little time is needed for each student to become at least an adequate machine operator. Students seem to like the grader and are not reluctant to suggest improvements!

Evaluating numbers expressed as strings of English words

Integer numbers can be expressed in English by a series of words such as “one hundred thirty three million two hundred four.” The process indicated by the accompanying flowchart evaluates numbers represented by such a string. To include words up to “billion” requires four terms “Sumi.” The multiplications can be done by shifting on a decimal machine.

Comments on a technique for counting ones

Peter Wegner [1] describes a short 704 SAP program that is faster than the standard technique. The expected number of loops—of five instructions each—for a word half of whose bits are ones, is 18 in this program.

Some thoughts on parallel processing

In the past two years or so I have seen a number of papers and heard a number of talks describing the characteristics of (and the wonders inherent in) certain computers like Gamma 60, LARC, H-800, STRETCH, and others. Of course, all these machines share a capacity for parallel asynchronous multiple processing. Now this is a truly marvelous property, especially from the point of view of the common variety of “my-job's-on-the-machine-keep-your-cotton-pickin'-hands-off” programmer.

An introductory problem in symbol manipulation for the student

One objective of the course on Introduction to Digital Computers given by B. A. Galler at the University of Michigan is to equip the students with some knowledge of the techniques of automatic programming and to indicate some of the problems involved in such work. The final problem assigned in the course consists of a program to be written in some compiler language which involves symbol manipulation, automatic programming, etc. With the hope others in the computing field will find it of interest, an example of a final problem in this course is given here.

A short study of notation efficiency

This comparison indicates that an 8-bit character set, with provision for storing two 4-bit decimal digits in one character position, is a more efficient form of representation than the 6-bit character set, at least for a majority of common applications. This 8(4) representation has several other advantages.

Combining ALGOL statement analysis with validity checking

The article by Robert W. Floyd in the March 1960 issue described an algorithm for determining whether a given symbol string is a permissible ALGOL assignment statement. In his method Mr. Floyd replaces certain character pairs by single characters in an array until, in the well-formed formula, the character &Sgr; is obtained. Although this method indeed determines formation legality, one must still analyze and delimit each constituent of the statement in order to reduce the problem language to a workable format.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More