skip to main content
article
Free Access

Teaching and learning computer programming: a survey of student problems, teaching methods, and automated instructional tools

Published:01 July 1980Publication History
Skip Abstract Section

Abstract

To improve introductory computer science courses and to update the teaching of computer programming, new teaching methods emphasizing structured programming and top-down design have been presented and a variety of automated instructional tools have been developed. The purpose of this paper is: (1) to survey a number of methods and tools used in the teaching of programming; (2) to present, with the aid of this survey, a number of areas where beginning programmers experience difficulties; (3) to present ways of improving some of the tools; and (4) to propose other possible aids.This paper is organized as follows. Section 1 introduces the topic and purpose of the paper. Section 2 reviews several teaching methods discussed in the literature. Section 3 surveys various student-oriented interactive and noninteractive tools. Section 4 discusses nonstudent-oriented aids and presents alternatives by discussing how to adapt similar aids to a student environment. Section 5 provides a summary of the paper and a conclusion. Pertinent problem areas and students' viewpoints are presented in each section.

References

  1. Kreitzberg, C. B. and L. Swanson, "A cognitive model for structuring an introductory programming curriculum," National Computer Conference (1974) 307--311.Google ScholarGoogle Scholar
  2. Cherniak, B., "Introductory programming reconsidered-A user-oriented approach," Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 65--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cook, C. R., "A self-paced introductory Fortran programming course," SIGCSE 8, 3 (Sept. 1976) 78--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Mavaddat, F., "An experiment in teaching programming language," SIGCSE 8, 2 (June 1976) 45--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Rosenberg, I. M., "Introductory computer science courses - A modular design, "Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 49--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ulloa, M. A., "A language, a procedure, and automated tools for analysis of problems and design of algorithms in a student-oriented environment," Ph.D. Thesis, Kansas State University, Dissertation Abstracts International 38B, No. 9 (March 1978). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bezanson, W. R., "Teaching structured programming in FORTRAN with IFTRAN," SIGCSE 7, 1 (Feb. 1975) 196--199. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Meissner, L. P. and R. L. Hinkins, "B4TRAN: A structured mini-language approach to the teaching of FORTRAN," SIGCSE 7, 1 (Feb. 1975) 200--205. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ripley, G. D., "A course in effective programming," SIGCSE 7, 1 (Feb. 1975) 102--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Wagener, J. L., "Structured FORTRAN programming," SIGCSE 7, 1 (Feb. 1975) 206--211. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Barr, A. and M. Beard, "An instructional interpreter for BASIC," Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 325--334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Danielson, R. L., PATTIE: An automated tutor for top-down programming, Technical Report UIUCDCS-R-75-753, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL (Oct. 1975).Google ScholarGoogle Scholar
  13. Davis, A. M., An interactive analysis system for execution-time errors, Technical Report UIUCDCS-R-75-695, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL (Jan. 1975).Google ScholarGoogle Scholar
  14. Schweppe, E. J., "Dynamic instructional models of computer organization and programming languages," SIGCSE 1, 1 (Feb. 1973) 26--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Tindall, M. H., An interactive compile-time diagnostic system, Technical Report UIUCDCS-R-75-748, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL (1975).Google ScholarGoogle Scholar
  16. Russman, G. M., "Flowchart computing - A compiler-free approach to developing fundamental programming skills," Proc. of the Second International Conference on Computers in Education, Marseilles, France (1975).Google ScholarGoogle Scholar
  17. Koffman, E. and F. L. Friedman, "A computer-aided flow diagram teaching system," Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 350--354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gries, D., "What should we teach in an introductory programming course," SIGCSE 6, 1 (Feb. 1974) 81--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Hanson, A. and K. Maly, "A first course in computer science: what it should be and why," SIGCSE 7, 1 (Feb. 1975) 95--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Cashman, W. F. and W. J. Mein, "On the need for teaching problem-solving in a computer science curriculum," Fifth Symposium on Computer Science Education, SIGCSE Bulletin 7, 1 (Feb. 1975) 40--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Nanney, T. R., "Computer science: An essential course for the liberal arts," SIGCSE 8, 3 (Sept. 1976) 102--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Welch, Jr., J. T., "Tab, a program design language for the classroom," SIGCSE 8, 3 (Sept. 1976) 48--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Nievergelt, J. et al, "The automation of introductory computer science courses," SIGCUE 8, 1 (Jan. 1974) 15--21.Google ScholarGoogle Scholar
  24. Fenichel, R. R. et al, "A program to teach programming," Comm. ACM 13, 3 (March 1970) 141--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Ward, D. L., "Interactive directed programming in computer assisted instruction," Ph.D. Thesis, Texas A & M University, <Dissertation Abstracts International 34, 7-B (Jan. 1974) 3201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Gillett, W., "An interactive program advising system," Proc. ACM SIGCSE SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 335--341. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ferguson, H. E. and E. Berner, "Debugging systems at the source language level," Comm. ACM 6, 8 (Aug. 1963) 430--432. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Satterthwai, E. "Debugging tools for high-level languages," Software Practice and Experience 2, 3 (July-Sept. 1972) 197--217.Google ScholarGoogle Scholar
  29. Balzer, R. M., "EXDAMS-Extendable debugging and monitoring system," Proc. AFIPS Spring Joint Computer Conference (1969) 567--580.Google ScholarGoogle Scholar
  30. Josephs, W. H., "An on-line machine language debugger for OS/360," Proc. AFIPS Fall Joint Computer Conference (1969) 179--186.Google ScholarGoogle Scholar
  31. Grishman, R., "The debugging system AIDS," Proc. AFIPS Spring Joint Computer Conference (1970) 59--64.Google ScholarGoogle Scholar
  32. Leinius, R. P., Error detection and recovery for syntax directed compiler systems, Ph.D. Thesis, Computer Science Dept., University of Wisconsin (1970). Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Graham, S. L. and S. P. Rhodes, "Practical syntactic error recovery," Comm. ACM 18, 11 (Nov. 1975) 639--650. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Stuart, F., WATFOR WATFIV FORTRAN Programming, John Wiley and Sons, Inc., New York (1971).Google ScholarGoogle Scholar
  35. Conway, R. and T. Wilcox, "Design and implementation of a diagnostic compiler for PL/I," Comm. ACM 16, 3 (March 1973) 169--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Holt, R. C. et al, "SP/k: A system for teaching computer programming," Comm. ACM 20, 5 (May 1977) 301--309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. WATBOL User's Guide, Computer Systems Group, University of Waterloo, Ontario, Canada (Nov. 1976).Google ScholarGoogle Scholar
  38. Stucki, L. G. and G. L. Foshee, "New assertion concepts for selfmetric software validation," Proc. 1975 International Conf. on Reliable Software, Los Angeles, CA (April 1975) 59--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Culpepper, L. M., "A system for reliable engineering software," Proc. 1975 International Conf. on Reliable Software, Los Angeles, CA (April 1975) 186--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Ramamoorthy, C. V. and S. F. Ho, "Testing large software with automated software evaluation systems," Proc. 1975 International Conf. on Reliable Software, Los Angeles, CA (April 1975) 382--394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Brown, F. R. et al, "Automated software quality assurance," Program Test Methods, W. C. Hetzel (ed.), Prentice-Hall, Englewood Cliffs, NJ (1973) 181--203.Google ScholarGoogle Scholar
  42. Snowdon, R. A., "Pearl-A system for the preparation and validation of structured programs," Program Test Methods, W. C. Hetzel (ed.), Prentice-Hall, Englewood Cliffs, NJ (1973) 57--72.Google ScholarGoogle Scholar
  43. Knuth, D. E., "An empirical study of FORTRAN programs," Software-Practice and Experience Vol. 1 (1971) 105--133.Google ScholarGoogle ScholarCross RefCross Ref
  44. Gerhart, S. L., "Methods for teaching program verification," Fifth Symposium on Computer Science Education, SIGCSE Bulletin 7, 1 (Feb. 1975) 172--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Dijkstra, E. W., Notes on structured programming, Technical Report No. 70-WSK-03, Technological University, Eindhoven, The Netherlands (1970).Google ScholarGoogle Scholar
  46. King, J. C., A program verifier, Ph.D. Thesis, Carnegie-Mellon University, Computer Science Dept., Pittsburgh, PA (1969). Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Elspas, B. et al, An interactive system for the verification of computer programs, SRI Project 1891, Final Report, Stanford Research Institute, Menlo Park, CA (Sept. 1973).Google ScholarGoogle Scholar
  48. Katz, S. and Z. Manna, "Logical analysis of programs," Comm. ACM 19, 4 (April 1976) 188--206. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Teaching and learning computer programming: a survey of student problems, teaching methods, and automated instructional tools
    Index terms have been assigned to the content through auto-classification.

    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 ACM SIGCSE Bulletin
      ACM SIGCSE Bulletin  Volume 12, Issue 2
      July 1980
      62 pages
      ISSN:0097-8418
      DOI:10.1145/989253
      Issue’s Table of Contents

      Copyright © 1980 Author

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 July 1980

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader