/ en / Traditional / help

Beats Biblionetz - Begriffe

rainfall problem

Diese Seite wurde seit 2 Jahren inhaltlich nicht mehr aktualisiert. Unter Umständen ist sie nicht mehr aktuell.


Elliot SolowayWrite a program that will read in integers and output their average. Stop reading when the value 99999 is input.
Von Elliot Soloway im Text Learning to program = learning to construct mechanisms and explanations (1986)
Mark GuzdialProblem: Read in integers that represent daily rainfall, and print out the average daily rainfall. If the input value of rainfall is less than zero, prompt the user for a new rainfall. When you read in 99999, print out the average of the positive integers that were input other than 99999.
Von Mark Guzdial im Buch Learner-Centered Design of Computing Education im Text The Challenges of Learning Programming (2015)
Design a program called rainfall that consumes a list of numbers representing daily rainfall amounts as en- tered by a user. The list may contain the number -999 indicating the end of the data of interest. Produce the average of the non-negative values in the list up to the first -999 (if it shows up). There may be negative numbers other than -999 in the list.
Von Kathi Fisler im Konferenz-Band ICER 2014 im Text The recurring rainfall problem (2014)
Making SoftwareAt Yale University in the 1980s, Elliot Soloway gave the same assignment regularly in his Pascal programming class [Soloway et al. 1983]:
"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.
Von Andy Oram, Greg Wilson im Buch Making Software (2010) im Text Why Is It So Hard to Learn to Program? auf Seite  112
Mark GuzdialIn the 1980’s, Elliot Soloway’s group at Yale began capturing all the programs written by computer science students. The students were writing in a programming language called Pascal [154], a notation for writing computer programs that was explicitly invented to be good for teaching students. Student performance on one particular problem intrigued Elliot and his students [294]. […]
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.
Von Mark Guzdial im Buch Learner-Centered Design of Computing Education im Text The Challenges of Learning Programming (2015) auf Seite  21


Soloway's Rainfall problem has been used in several studies to assess students' progress in learning to construct programs.
Von Kathi Fisler im Konferenz-Band ICER 2014 im Text The recurring rainfall problem (2014)
Soloway identified four key goals within this problem: tak- ing in input, summing the inputs, computing the average (which involves counting the inputs), and outputting the average. Programs that solve this problem must compose fragments of code that achieve each of these goals. Soloway proposed this problem in part to study approaches to plan composition, particularly in novices.
Von Kathi Fisler im Konferenz-Band ICER 2014 im Text The recurring rainfall problem (2014)
Over the years, multiple papers have reported on student performance on Rainfall, sometimes categorizing the errors that students make. Across prior studies, students typi- cally solved Rainfall under three common constraints: they (nearly always) programmed imperatively, they (usually) obtained the numeric data through keyboard input, and they (often) had limited prior exposure to data structures, with the possible exception of arrays.
Von Kathi Fisler im Konferenz-Band ICER 2014 im Text The recurring rainfall problem (2014)

iconVerwandte Objeke

Verwandte Begriffe
(co-word occurance)

iconRelevante Personen

iconHäufig erwähnende Personen

iconHäufig co-zitierte Personen

Kathi Fisler Kathi
Raymond Lister Raymond
Grace Tan Grace
Anne Venables Anne
Angela Carbone Angela
Chotirat Ann Ratanamahatana Chotirat Ann
John F. Pane John F.
David Ginat David
Elliot Soloway Elliot
Mark Guzdial Mark
Jacqueline L. Whalley Jacqueline L.
Daniel Zingaro Daniel

iconStatistisches Begriffsnetz  Dies ist eine graphische Darstellung derjenigen Begriffe, die häufig gleichzeitig mit dem Hauptbegriff erwähnt werden (Cozitation).

iconVorträge von Beat mit Bezug

iconErwähnungen auf anderen Websites im Umfeld von Beat Döbeli Honegger

Website Webseite Datum
Didaktik der Informatik 2019S4: Was weiss man zum Programmieren?22.08.2019
Didaktik der Informatik 2020S4: Was weiss man zum Programmieren?22.08.2019
Didaktik der Informatik 2021S4: Was weiss man zum Programmieren?22.08.2019
Grundlagen der Informatik 16/17Notizen30.06.2016


Diese Grafik ist nur im SVG-Format verfügbar. Dieses Format wird vom verwendeteten Browser offenbar nicht unterstützt.

Diese Grafik fensterfüllend anzeigen (SVG)


icon26 Erwähnungen  Dies ist eine nach Erscheinungsjahr geordnete Liste aller im Biblionetz vorhandenen Werke, die das ausgewählte Thema behandeln.

iconAnderswo suchen  Auch im Biblionetz finden Sie nicht alles. Aus diesem Grund bietet das Biblionetz bereits ausgefüllte Suchformulare für verschiedene Suchdienste an. Biblionetztreffer werden dabei ausgeschlossen.

iconBiblionetz-History Dies ist eine graphische Darstellung, wann wie viele Verweise von und zu diesem Objekt ins Biblionetz eingetragen wurden und wie oft die Seite abgerufen wurde.