[<-] [ ^ ] [->] Previous: The Role of Literate Computing in Undergraduate Curricula TR-CS-94-01 Up: The Role of Literate Computing in Undergraduate Curricula TR-CS-94-01 Next: Literate Programming and WEB

Introduction

Students in the early stages of a computer science degree endure a steady bombardment of new practical tools in addition to the theoretical foundations of the subject. These tools include new languages and system utilities as well as text formatting and simple computer interfacing skills. Their programming style is still in its formative stages and the herculean task of getting working programs for their assignments overshadows any attempts at careful design and documentation - regardless of the pleadings of course lecturers. Nevertheless communication skills are highly regarded by employers, and we need to maintain and improve our standards in the area of design description and documentation.

Given, however, that the volume of material to be taught in second year leaves little latitude for specific training in design, some intermediate goal is desirable. We propose that such an intermediate goal might be program literacy. Knuth[1] proposed the term literate programming to advocate a style for making a large program a readable document. Emphasis on readability accords with the well-established result that a large fraction of time spent on major software projects is in the maintenance phases where the programmers may well not have participated in the original design and coding. It also forces the programmer to communicate what he or she is doing. A common failure of students in the early years is to attempt to write code before having thought through what they really want to do. Having to explain what they are doing first is an excellent remedy! The essential features of Knuth's proposal are:

Knuth designed the WEB programming system to meet both of these objectives, and WEB is used herein. However, it is important to note, that the concepts transcend this particular implementation. With the much more sophisticated display facilities now available, it seems rather likely that some form of electronic hypertext will displace page-based systems such as WEB.

cwj@cs.anu.edu.au