"Write a program that repeatedly reads in positive integers, until it reads the integer 99999. After seeing 99999, it should print out the average.
Called “The Rainfall Problem," it became one of the most studied problems in the early years of computing education research.
Students were expected to write a program that would accept numbers as input from a user at the keyboard. Thee students had to infer what variables would be needed to solve this problem and the combination of things to keep in mind at each step. Each number would be added to a running total of all the numbers read, and a count would be kept of the number of input numbers, so that the average could be printed at the end. If a negative number was input, that should be considered a mistake. The program should not add the number to the total, and the count should not be incremented, but the program should go on to read more numbers. If the input number was 99999, then the program should stop reading numbers, and shouldn’t add that number to the total, and shouldn’t increment the count. Then, print out the average.
This doesn’t seem like an unreasonable task for a Yale Computer Science student. This problem wasn’t computing the next prime number after 1000, or computing the 10,000th digit of pi, or writing a program for Tetris or Angry Birds. However, this was a surprisingly difficult task.
- When Elliot’s group gave this task to the first-term computer science students (about week 12 of a 16-week semester), only 14% of the students got it right. Getting the programming language wrong wasn’t the issue - syntax errors were ignored in this analysis. Most often students had trouble not adding in the negative or end numbers, or they didn’t consider troublesome cases, e.g., what if only negative numbers were input?
- Elliot’s group also gave this task to students in their second CS course, in the same 12th week of a 16-week semester. Now, 36% of the students got it right.
- Finally, Elliot’s group gave the task to students in an advanced Systems Programming course, where everyone was a Junior or Senior (3rd or 4th year). 69% of the students got it right. Not 100%, for a problem that seems reasonable to give to first-year students.
|Problemproblem, Programmierenprogramming, Informatikcomputer science, Lernenlearning|
Häufig co-zitierte Personen
- Learning to program = learning to construct mechanisms and explanations (Elliot Soloway) (1986)
- ICER 2009 - Proceedings of the Fifth International Workshop on Computing Education Research, ICER 2009, Berkeley, CA, USA, August 10-11, 2009 (Michael J. Clancy, Michael E. Caspersen, Raymond Lister) (2009)
- A closer look at tracing, explaining and code writing skills in the novice programmer (Anne Venables, Grace Tan, Raymond Lister) (2009)
- ICER 2013 - International Computing Education Research Conference, ICER '13, La Jolla, CA, USA, August 12-14, 2013 (Beth Simon, Alison Clear, Quintin I. Cutts) (2013)
- ICER 2014 - International Computing Education Research Conference, ICER 2014, Glasgow, United Kingdom, August 11-13, 2014 (Quintin I. Cutts, Beth Simon, Brian Dorn) (2014)
- Predicting student success using fine grain clicker data (Leo Porter, Daniel Zingaro, Raymond Lister) (2014)
- The recurring rainfall problem (Kathi Fisler) (2014)
- ICER 2015 - Proceedings of the eleventh annual International Conference on International Computing Education Research, ICER 2015, Omaha, NE, USA, August 09 - 13, (Brian Dorn, Judy Sheard, Quintin I. Cutts) (2015)
- Investigating Novice Programmers' Plan Composition Strategies (Francisco Enrique Vicente G. Castro) (2015)
- Learner-Centered Design of Computing Education - Research on Computing for Everyone (Mark Guzdial) (2015)
- Programming Paradigms and Beyond (Shriram Krishnamurthi, Kathi Fisler) (2018)
Falls Ihnen diese Seite gefallen hat
Besucher(05.18): 000004 *
Besucher Total : 000069 *
Beats Biblionetz ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l.
Beat Döbeli Honegger ist bei Google+
*(ohne Suchmaschinen und ohne Proxy-Verluste)