The Recurring Rainfall Problem

Shriram Krishnamurthi, Brown University

Elliot Soloway’s Rainfall problem is a classic benchmark in computing education research, designed to study plan composition: how students decompose problems into tasks, solve them, and compose the solutions.

Over multiple decades, locations, and languages, students have done poorly at it. However, recent multi-institution studies of students using functional programming and How to Design Programs find very different outcomes.

What do these results tell us? This talk explores relationships between programming languages, program design, curricula, and how students perceive code structure.

The talk assumes no experience with plan composition, functional programming, or having been rained upon. Please come equipped with pen and paper, because the talk will require you to write programs.

Joint work primarily with Kathi Fisler.

Speaker Biography

Shriram Krishnamurthi is a Professor of Computer Science and an Associate Director of the Executive Master in Cybersecurity at Brown University. With collaborators and students, he has created several influential systems: DrRacket and WeScheme (programming environments), Margrave (policy analyzer), FrTime and Flapjax (reactive programming languages), Lambda-JS and TeJaS (semantics and types for JavaScript), and Flowlog (software-defined networking programming language and verifier). He is now working on the Pyret programming language. He is the author of “Programming Languages: Application and Interpretation” and a co-author of “How to Design Programs” and “Programming and Programming Languages”. He co-directs the Bootstrap math-and-computing outreach program. He won SIGPLAN’s Robin Milner Young Researcher Award, SIGSOFT’s Influential Educator Award, and Brown’s Henry Merritt Wriston Fellowship for distinguished contribution to undergraduate education. He has authored over a dozen papers recognized for honors by program committees. He has an honorary doctorate from the Università della Svizzera Italiana.