June 12, 2005
June 12, 2005
June 15, 2005
10.17.1 - 10.17.25
An issue receiving attention in the undergraduate Computer Science curriculum over the past few years has been the high failure rate in the freshman programming course. This course generally corresponds to the ACM/IEEE course designation CS1. It is normally an introductory but fast-paced and challenging course for students who have not previously studied computer programming (programming novices), but who do have a minimum level of mathematical maturity (students who are calculus-ready). The course attracts an audience composed of majors from Computer Science, Information Technology, and Computer Engineering, for whom it is a requirement for their major, as well as students from other science and engineering departments. Failure rates of 15% to 30% are not unusual 10, and the problem is widespread, from top-tier private schools, through the state universities, all the way to the community and junior colleges. There are many possible causes, and some can be blamed on the students themselves (poor advisement, poor math preparation at the high school level, among others). But other causes must be contributors. While computer programming might be a more technically challenging skill to master than, say, writing a good English essay, it seems odd that it should suffer a higher failure rate than other challenging freshman-level courses in calculus, physics, or engineering. Many educators have begun to assign the blame on the teaching approach. In this paper we critique some current teaching approaches and agree that this is one source of the problem. A glance at almost any textbook on introductory programming will reveal a presentation that starts from many flawed assumptions about the target audience, and that does not follow well- established principles for how to teach technical material. Computer programming education simply is not as mature as the teaching of the sciences and engineering, and this is reflected in the CS1 failure rate. In this paper we explore some promising approaches from well-established research in cognitive psychology, which has produced results on how students learn, and suggest some new ways to apply these results to computer programming instruction. We focus on two CS1 topics in particular – iterations (loops) and decisions (if-else) – and suggest ways to organize the presentation of these topics. The foundation of the approach is to use schemas (mental patterns) for teaching both how to solve problems in the abstract and how to convert those solutions into computer programs. The organization of the paper is as follows. First, we review the relevant results from cognitive psychology for how students learn in general, as well as results specific to computer programming learning. Next we offer a short critique of the approach used by many current textbooks that we call syntax-driven. This approach places undue early emphasis on language syntax (i.e., “where to put the semicolons”) and not enough emphasis on understanding and solving problems. Next we give an overview of an alternative approach we call schema-driven, which is based on the results of the cognitive psychology research discussed earlier. This approach allocates more resources early on to the teaching of problem solving and solution approaches, saving discussion of language syntax specifics until much later. In Section 4, we offer some examples of how to apply this approach to the teaching of iterations and decisions. Finally, in Section 5, some directions for future work are outlined, including plans for evaluating the effectiveness of the approach with an assessment of student progress for CS1 students.
Benegas, L., & Covington, R. (2005, June), A Cognitive Based Approach For Teaching Programming To Computer Science And Engineering Students Paper presented at 2005 Annual Conference, Portland, Oregon. 10.18260/1-2--14910
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2005 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015