Programming is Writing: Why Student Programs must be Carefully Read







Deposit Papers 


Leavens, Gary T., Baker, Albert L., Honavar, Vasant, LaValle, Steven M. and Prabhu, Gurpur (1998) Programming is Writing: Why Student Programs must be Carefully Read. Technical Report TR97-23a, Department of Computer Science, Iowa State University.

Full text available as:Postscript
Adobe PDF


Programming is Writing:
Why Student Programs must be Carefully Read
Gary T. Leavens, Albert L. Baker, Vasant Honavar,
Steven M. LaValle, Gurpur Prabhu
Teaching a student to write computer programs well is much like
teaching a student to write English prose well. That is, although a
program must be correct in every last detail, achieving correctness is
only half of the task. The other half consists of quality factors such
as clarity, organization, conciseness, maintainability, etc. Although
these factors cannot be automatically measured, they have a large
economic impact, because a major cost of software development is the
time spent by other people reading programs to validate, maintain, and
enhance them.
To teach these quality factors, student programs must be read by a
skilled programmer. Furthermore, grades for programs must be partly
based on these quality factors. Completely automatic testing and
grading of student programs by machine not only ignores these quality
factors, it also fosters the attitude that such factors are
unimportant. When programs are automatically tested and not read,
students come to believe that functional correctness is all that
matters. They tend to write programs by making changes in an initial
attempt at a program until it works. The result is students who cannot
write programs well.  From this analysis and our experience, we
conclude that enough human resources, such as teaching assistants,
have to be made available for programming courses to ensure that there
is adequate time for careful reading of student programs.
Keywords: software, programming, writing, student ratio, teaching
assistant.  mathematical toolkit, debugging
1997 CR Categories: K.3.2 [Computers and Education] Computer and
Information Science Education --- Computer science education.

Subjects:All uncategorized technical reports
ID code:00000178
Deposited by:Staff Account on 24 June 1998

Contact site administrator at: