skip to main content
article

Designing and explaining programs with a literate pseudocode

Published:01 March 2006Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle Scholar
  2. Cross, J. H. and Barowski, L. A. 2002. The jGrasp Handbook. School of Engineering, Auburn University.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. Knuth, D. E. 1984. Literate programming. Computer J. 27, 2, 97--111. Google ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. Martin, J. and Mclure, C. 1985. Diagramming Techniques for Analysts and Programmers. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  10. Nassi, I. and Shneiderman, B. 1973. Flowchart techniques for structured programming. SIGPLAN Notices 8, 8, 12--26. Google ScholarGoogle Scholar
  11. Orr, K. T. 1977. Structured Systems Development. Yourden Press, New York. Google ScholarGoogle Scholar
  12. Orr, K. T. 1980. Structured programming in the 1980s. In Proceedings of the 1980 ACM Annual Conference. ACM, New York, 323--326. Google ScholarGoogle Scholar
  13. Ramsey, N. 2003. Noweb: A simple, extensible tool for literate programming. http://www.eecs.harvard.edu/~nr/noweb.Google ScholarGoogle Scholar
  14. Reynolds, R. G., Maletic, J. I. and Porvin, S. E. 1992. Stepwise refinement and problem solving. IEEE Software 9, 5, 79--88. Google ScholarGoogle Scholar
  15. Robillard, P. N. 1986. Schematic pseudocode for program constructs and its computer automation by Schemacode. Commun. ACM 29, 11, 1072--1089. Google ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. Shum, S. and Cook, C. 2002. Using literate programming to teach good programming practices. http://www.literateprogramming.com/sigcse.pdf.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. Thimbleby, H. 2003. Explaining code for publication. Software Practice and Experience, Vol 33, No 10, Aug., pp 975--1001.Google ScholarGoogle Scholar
  21. Varatek Software Inc. 1999. B-Liner98 Bracket Outliner Users' Guide. Varatek Software, Andover, MA.Google ScholarGoogle Scholar
  22. Warnier, J. D. 1976. Logical Construction of Programs. Yourden Press, New York.Google ScholarGoogle Scholar

Index Terms

  1. Designing and explaining programs with a literate pseudocode

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image Journal on Educational Resources in Computing
                Journal on Educational Resources in Computing  Volume 6, Issue 1
                March 2006
                53 pages
                ISSN:1531-4278
                EISSN:1531-4278
                DOI:10.1145/1217862
                Issue’s Table of Contents

                Copyright © 2006 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 March 2006
                Published in jeric Volume 6, Issue 1

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!