Abstract
Designing and explaining programs are often difficult tasks, especially when novices are involved. It also concerns more experienced programmers when complex algorithms need to be carefully explained and documented as part of software development.Good practice suggests that code and documentation be tightly coupled; but there are only a few support tools specifically targeted at novices that require this as an integral part of the programming process. We propose a new tool design with this objective in mind: P-Coder gives a flexible descriptive view of the program via pseudocode notation within a graphical tree-structured model, from which the complete algorithm can be specified to retain the informal description integrated with the final code. Thus the code meets some of the key requirements for realizing a literate program.
- Cross, J. H. 1986. The control structure diagram: An automated graphical stepwise refinement tool with control constructs. PhD thesis, Texas A&M University, College Station, TX. Google Scholar
- Cross, J. H. and Barowski, L. A. 2002. The jGrasp Handbook. School of Engineering, Auburn University.Google Scholar
- Cross, J. H., Maghsoodloo, S. H., and Hendrix, T. D. 1998. Control structure diagrams: Overview and evaluation. J. Empirical Software Eng. 3, 2, 131--158. Google Scholar
- Cross, J. H. and Sheppard, S. V. 1988. Graphical extensions for pseudo-code, PDLs, and source code. In Proceedings of the ACM 16th Annual Conference on Computer Science (Atlanta, GA), ACM, New York, 520--528. Google Scholar
- Deimel, L. E. and Neveda, J. F. 1990. Reading computer programs: Instructor's guide and exercises. CMU/SEI-90-EM-3, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.Google Scholar
- Escalona, R. 1984. Case study of the methodology of J. D. Warnier to design structured programs as systems documentation. In Proceedings of the 3rd Annual ACM Conference on Systems Documentation, ACM, New York, 95--100. Google Scholar
- Knuth, D. E. 1984. Literate programming. Computer J. 27, 2, 97--111. Google Scholar
- Kolling, M. and Rosenberg, J. 2002. BlueJ - The Hitch-Hikers Guide to Object Orientation. No 2, The Maersk Mc-Kinney Moller Institute for Production Technology, University of Southern Denmark.Google Scholar
- Martin, J. and Mclure, C. 1985. Diagramming Techniques for Analysts and Programmers. Prentice Hall, Englewood Cliffs, NJ. Google Scholar
- Nassi, I. and Shneiderman, B. 1973. Flowchart techniques for structured programming. SIGPLAN Notices 8, 8, 12--26. Google Scholar
- Orr, K. T. 1977. Structured Systems Development. Yourden Press, New York. Google Scholar
- Orr, K. T. 1980. Structured programming in the 1980s. In Proceedings of the 1980 ACM Annual Conference. ACM, New York, 323--326. Google Scholar
- Ramsey, N. 2003. Noweb: A simple, extensible tool for literate programming. http://www.eecs.harvard.edu/~nr/noweb.Google Scholar
- Reynolds, R. G., Maletic, J. I. and Porvin, S. E. 1992. Stepwise refinement and problem solving. IEEE Software 9, 5, 79--88. Google Scholar
- Robillard, P. N. 1986. Schematic pseudocode for program constructs and its computer automation by Schemacode. Commun. ACM 29, 11, 1072--1089. Google Scholar
- Scanlin, D. 1988. Should short, relatively complex algorithms be taught using both graphical and verbal methods. In Proceedings of the ACM SIGCSE Conference, ACM, New York, 185--189. Google Scholar
- Shum, S. and Cook, C. 2002. Using literate programming to teach good programming practices. http://www.literateprogramming.com/sigcse.pdf.Google Scholar
- Spohrer, J. C., Soloway, E., and Poppe, E. 1985. Where the bugs are. In Proceedings of the SIGCHI Conference, ACM, New York, 47--53. Google Scholar
- Taylor, R. P., Cunniff, N., and Uchiyama, M. 1986. Learning, research, and the graphical representation of programming. In Proceedings of the Fall Joint Computer Conference, ACM, New York. Google Scholar
- Thimbleby, H. 2003. Explaining code for publication. Software Practice and Experience, Vol 33, No 10, Aug., pp 975--1001.Google Scholar
- Varatek Software Inc. 1999. B-Liner98 Bracket Outliner Users' Guide. Varatek Software, Andover, MA.Google Scholar
- Warnier, J. D. 1976. Logical Construction of Programs. Yourden Press, New York.Google Scholar
Index Terms
Designing and explaining programs with a literate pseudocode
Recommendations
Interactive, Language-neutral Flowcharts and Pseudocode for Teaching Core CS0/1 Programming Concepts: (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationIntroductory programming courses often use a full-featured programming language, such as Python, Java, or C++, wherein students concurrently learn programming concepts along with language syntax. However, many instructors believe that learning ...
Reimagining literate programming
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applicationsIn this paper we describe Ginger, a new language with first class support for literate programming. Literate programming is a philosophy that argues computer programs should be written as literature with human readability and understanding of paramount ...
A case for contemporary literate programming
SAICSIT '04: Proceedings of the 2004 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countriesIn this paper we discuss the characteristics of Literate Programming and the development of programming environments to support Literate Programming in the past two decades. We argue that recent technological developments allow Literate Programming to ...






Comments