Tentative identification of some factors affecting achievement in a do-it-yourself programming course
H. W. Gustafson · 1967
For some time I have been engaged with others at Bell Laboratories in a project to develop a course in computer programming which, within the bounds of allowable error tolerance, will meet the five following specifications:1. It will accept as input raw beginners and produce as output competent amateur programmers who are able to function effectively in an "open shop" computing environment.2. The course will be 100 percent self-taught and self-paced, and better than 95 percent self-administered. By this is implied, first, that all studying is to be done at times and places of the learner's own choosing, and second, that the need for supervision and administration on the part of an instructor is not to exceed five percent of the learner's total study time. The supervisory and administrative activities performed by the instructor will include such things as starting the student out on the course, assessing and keeping records of his progress, monitoring his self-imposed completion schedule, and, where necessary, bolstering his courage.3. There will be no formal entrance requirements; anyone who wants to may enroll.4. Everyone who graduates will be guaranteed a high level of proficiency. This is taken to mean, more specifically, three things: (a) The graduate will be able to solve problems of "average" complexity on the computer without assistance; (b) The solutions obtained to such problems will compare favorably in efficiency and elegance to solutions found for the same problems by experienced professional programmers; and (c) When faced with problems of greater than average complexity, the course graduate will be able to learn how to solve these, too, by pursuing further self-study on his own initiative.5. Every student who enrolls in the course will in fact graduate, and will do so in a reasonable length of time.