The authors use this paper to propose procedural guidelines to help students develop “elegant” JavaScript code. The target audience is students learning to program in JavaScript who have already completed a course in object-oriented programming. The motivation is that interpreted JavaScript can lead to sloppy code. Although there are useful insights in what is presented in this paper, two troubling questions arise. First, why were the students lacking good techniques and an effective process, given that this wasn’t their first experience with programming? Second, why propose this detailed approach without at least some preliminary testing to see how well it works with actual students?
After an introductory section, there are sections on task description (requirements: a client-side form validation module), supportive information (general software engineering design principles as well as specifics for form validation and using JavaScript), procedural information (step-by-step guidelines, both in general and for the application at hand), example code that illustrates the techniques and goals of the exercise, comments on related work, and a concluding summary. The overall organization is effective for the authors’ intended purpose.
Despite the shortcomings mentioned in the first paragraph above, this paper is worth reading for those with an interest in computer science pedagogy, especially with respect to developing good programming techniques and expectations. The content is well presented and may inspire others to try some of the good ideas included here in similar or even quite different environments.