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.
- Kreitzberg, C. B. and L. Swanson, "A cognitive model for structuring an introductory programming curriculum," National Computer Conference (1974) 307--311.Google Scholar
- Cherniak, B., "Introductory programming reconsidered-A user-oriented approach," Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 65--68. Google ScholarDigital Library
- Cook, C. R., "A self-paced introductory Fortran programming course," SIGCSE 8, 3 (Sept. 1976) 78--79. Google ScholarDigital Library
- Mavaddat, F., "An experiment in teaching programming language," SIGCSE 8, 2 (June 1976) 45--59. Google ScholarDigital Library
- Rosenberg, I. M., "Introductory computer science courses - A modular design, "Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 49--61. Google ScholarDigital Library
- 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 ScholarDigital Library
- Bezanson, W. R., "Teaching structured programming in FORTRAN with IFTRAN," SIGCSE 7, 1 (Feb. 1975) 196--199. Google ScholarDigital Library
- 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 ScholarDigital Library
- Ripley, G. D., "A course in effective programming," SIGCSE 7, 1 (Feb. 1975) 102--108. Google ScholarDigital Library
- Wagener, J. L., "Structured FORTRAN programming," SIGCSE 7, 1 (Feb. 1975) 206--211. Google ScholarDigital Library
- Barr, A. and M. Beard, "An instructional interpreter for BASIC," Proc. ACM SIGCSE-SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 325--334. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Schweppe, E. J., "Dynamic instructional models of computer organization and programming languages," SIGCSE 1, 1 (Feb. 1973) 26--31. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- Gries, D., "What should we teach in an introductory programming course," SIGCSE 6, 1 (Feb. 1974) 81--89. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Nanney, T. R., "Computer science: An essential course for the liberal arts," SIGCSE 8, 3 (Sept. 1976) 102--105. Google ScholarDigital Library
- Welch, Jr., J. T., "Tab, a program design language for the classroom," SIGCSE 8, 3 (Sept. 1976) 48--53. Google ScholarDigital Library
- Nievergelt, J. et al, "The automation of introductory computer science courses," SIGCUE 8, 1 (Jan. 1974) 15--21.Google Scholar
- Fenichel, R. R. et al, "A program to teach programming," Comm. ACM 13, 3 (March 1970) 141--146. Google ScholarDigital Library
- 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 ScholarDigital Library
- Gillett, W., "An interactive program advising system," Proc. ACM SIGCSE SIGCUE Joint Symposium, Anaheim, CA (Feb. 1976) 335--341. Google ScholarDigital Library
- Ferguson, H. E. and E. Berner, "Debugging systems at the source language level," Comm. ACM 6, 8 (Aug. 1963) 430--432. Google ScholarDigital Library
- Satterthwai, E. "Debugging tools for high-level languages," Software Practice and Experience 2, 3 (July-Sept. 1972) 197--217.Google Scholar
- Balzer, R. M., "EXDAMS-Extendable debugging and monitoring system," Proc. AFIPS Spring Joint Computer Conference (1969) 567--580.Google Scholar
- Josephs, W. H., "An on-line machine language debugger for OS/360," Proc. AFIPS Fall Joint Computer Conference (1969) 179--186.Google Scholar
- Grishman, R., "The debugging system AIDS," Proc. AFIPS Spring Joint Computer Conference (1970) 59--64.Google Scholar
- Leinius, R. P., Error detection and recovery for syntax directed compiler systems, Ph.D. Thesis, Computer Science Dept., University of Wisconsin (1970). Google ScholarDigital Library
- Graham, S. L. and S. P. Rhodes, "Practical syntactic error recovery," Comm. ACM 18, 11 (Nov. 1975) 639--650. Google ScholarDigital Library
- Stuart, F., WATFOR WATFIV FORTRAN Programming, John Wiley and Sons, Inc., New York (1971).Google Scholar
- Conway, R. and T. Wilcox, "Design and implementation of a diagnostic compiler for PL/I," Comm. ACM 16, 3 (March 1973) 169--179. Google ScholarDigital Library
- Holt, R. C. et al, "SP/k: A system for teaching computer programming," Comm. ACM 20, 5 (May 1977) 301--309. Google ScholarDigital Library
- WATBOL User's Guide, Computer Systems Group, University of Waterloo, Ontario, Canada (Nov. 1976).Google Scholar
- 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 ScholarDigital Library
- Culpepper, L. M., "A system for reliable engineering software," Proc. 1975 International Conf. on Reliable Software, Los Angeles, CA (April 1975) 186--192. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Knuth, D. E., "An empirical study of FORTRAN programs," Software-Practice and Experience Vol. 1 (1971) 105--133.Google ScholarCross Ref
- Gerhart, S. L., "Methods for teaching program verification," Fifth Symposium on Computer Science Education, SIGCSE Bulletin 7, 1 (Feb. 1975) 172--178. Google ScholarDigital Library
- Dijkstra, E. W., Notes on structured programming, Technical Report No. 70-WSK-03, Technological University, Eindhoven, The Netherlands (1970).Google Scholar
- King, J. C., A program verifier, Ph.D. Thesis, Carnegie-Mellon University, Computer Science Dept., Pittsburgh, PA (1969). Google ScholarDigital Library
- 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 Scholar
- Katz, S. and Z. Manna, "Logical analysis of programs," Comm. ACM 19, 4 (April 1976) 188--206. Google ScholarDigital Library
Index Terms
- Teaching and learning computer programming: a survey of student problems, teaching methods, and automated instructional tools
Recommendations
Blended teaching and learning of computer programming
ICWL'07: Proceedings of the 6th international conference on Advances in web based learningTeaching of computer programming has created significant difficulties to both teachers and students. Blended teaching and learning combines face-to-face instruction and computer-assisted instruction to maximize students' learning. This paper will share ...
Constructivist approaches for teaching computer programming
SIGITE '05: Proceedings of the 6th conference on Information technology educationThis paper discusses the application of constructivist pedagogical approaches to teaching computer programming in high school and undergraduate courses. It provides an overview of constructivist pedagogy and contrasts it with traditional objectivist ...
Pedagogical architectures to support the process of teaching and learning of computer programming
FIE '12: Proceedings of the 2012 IEEE Frontiers in Education Conference (FIE)This paper presents pedagogical architectures designed specially to support the process of teaching and learning of programming in engineering and computer science courses. A pedagogical architecture is a pedagogical approach and the technological ...
Comments