Writing software to be understood: an exercise in Ginger using literate programming

  • Authors:
  • Eddie Hillenbrand;James Dean Palmer

  • Affiliations:
  • Northern Arizona University, Flagstaff, AZ;Northern Arizona University, Flagstaff, AZ

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

Ginger is a new language being developed at Northern Arizona University that emphasizes human readability and comprehension over computer readability by supporting literate programming techniques. A program written in Ginger can be compiled to either a machine executable or a rich human readable document that interweaves human narrative with a high-level programming language. In this paper we demonstrate how Ginger has been used in a Computer Graphics course to enable students in developing rich programs that emphasize the communication of ideas as part of the programming process. The result differs markedly from meager comments nested in code. Instead, the narrative must strongly root and communicate the program which in turn encourages students to think about their program organization in terms of potency and efficiency of idea communication. This strong connectivity and communication of code and mental process gives the instructor a larger window into how students approach and think about problems and may provide added tools to identify misconceptions, poor organization and poor communication skills.