The SPLASH Education Symposium (SPLASH-E) replaces the former Educators’ and Trainers’ symposium as a new forum at SPLASH for the discussion of Computer Science education. While many education-focused meetings tend to segregate educators from computer science researchers and practitioners, this symposium has as an explicit goal of bringing together these communities to discuss educational issues. We anticipate that researchers will bring suggestions of ideas percolating in the research community to move their way into the undergraduate curriculum, while educators suggest ways of implementing new approaches to teaching such material. We especially wish to encourage those engaged in both research and teaching to consider this as a forum to discuss their ideas with those with similar interests.

  1. Kim Bruce, Pomona College, USA (chair)

  2. Dan Grossman, U Washington, USA

  3. Doug Lea, SUNY Oswego, USA

  4. Matthias Felleisen, Northeastern U, USA

  5. Richard LeBlanc, Seattle U, USA

  6. Stephen Freund, Williams College, USA

An Education Symposium at SPLASH


Session 1:  8:30 - 10 a.m.

Panel: Curriculum 2013: What’s new and how do we adapt?

     Moderated by Steve Freund

  1. Dan Grossman (U. of Washington),

  2. Doug Lea (SUNY-Oswego), and

  3. Rich LeBlanc (Seattle U.)

Transforming Introductory Computer Science Projects via Real-Time Web Data, acbart.pdf

         Austin Cory Bart, Eli Tilevich, Clifford A. Shaffer, Tony Allevato and Simin Hall (Virginia Tech)


Computing is becoming increasingly distributed. To better prepare students for the challenges of the workplace, computing educators need to introduce issues pertaining to distributed computing. Unfortunately, programming projects in introductory classes are mostly divorced from the students day-to-day computing experiences. These experiences entail interacting with real-time Web-based data from sources including weather reports, news updates, and restaurant recommendations. The disconnect between student experience and the content of their programming projects is known to drive some students away from computing. To address this problem, we have created an architectural framework that makes real-time web data accessible for introductory programming projects. The framework effectively introduces important real-time distributed computing concepts without overwhelming them with the low-level details that working with such data typically requires. Our preliminary results indicate that our approach can be effective in the context of a typical CS 2 data structures class. We are currently working on extending, improving, and fine tuning our toolchain to make our framework accessible to other classes in the curriculum.

Break: 10:00 - 10:30 a.m.

Session 2:  10:30 a.m. - noon

Bootstrap: Programming Games with Algebra, Bootstrap.pdf

         Emmanuel Schanzer (Harvard University), Kathi Fisler (WPI), and Shriram Krishnamurthi (Brown University)


Adding computer science to already-packed middle- and high-school curricula can be difficult; after-school programs offer an enticing alternative to broadening student exposure to computing.  Over the last eight years, we have deployed a content-rich introductory computing course to over a thousand middle-school students through after-school programs nationwide.  Our program, Bootstrap, teaches students to program their own videogames in a way that connects deeply to in-school learning goals for algebra and coordinate geometry. Volunteers (college students or software professionals) teach Bootstrap through established after-school partners. This paper describes both Bootstrap and lessons we have learned about teaching computing effectively in after-school programs using volunteer teachers.

First, Do No Harm: A Curricular Approach to Exceptions, HandlingExceptions.pdf

         Duane Buck (Otterbein University)


This paper advocates the adoption of deferred error coding within computer science curricula.  It argues that it is both a sound development strategy and aligns well pedagogically.  By deferring specific error handling, the student better appreciates its subtleties and its importance as an independent topic, and will tend to create more reliable applications. This paper includes other topics which may increase community awareness of the issues and enhance curricula: taxonomies of exceptions and exception handlers and the relationships between them, subtle pitfalls of exception handling, and factors influencing the selection of error reporting patterns.  Much of the discussion is language independent, but specific attention is given to the Java checked exception controversy, which inspired the curriculum approach.

Teaching Induction with Functional Programming and A Proof Assistant, posera.pdf

         Peter-Michael Osera and Steve Zdancewic(University of Pennsylvania)


Mathematical induction is a difficult subject for beginning students of computer science to fully grasp. In this short paper, we propose using functional programming and proof assistants as an aide in teaching mathematical induction in a traditional discrete mathematics course.  To demonstrate this approach, we created a proof-of-concept web-based tutorial on induction. In this tutorial, students write small functional programs and prove simple properties about them using inductive reasoning. The functional programming language is deliberately designed to be minimalistic so that it can be picked up quickly, especially if the student is already familiar with a functional programming language, and not be a distraction to the ultimate goal of learning induction. Furthermore, the tutorial features an online IDE for entering programs and proofs to minimize the barrier to entry for students and instructors.

Lunch Break

Session 3:  1:30-3:00 p.m.

Panel:  MOOCs:  Early Experience

     Moderated by Kim Bruce

         Panelists include:

  1. Cay Horstmann (San Jose State) Caycs1mooc.pdf

  2. Shriram Krishnamurthi (Brown U.)

  3. Dan Grossman (U. of Washington)

Myths about MOOCs and Software Engineering Education Patterson.pdf

         Armando Fox and David Patterson (UC Berkeley)


This paper describes our experience in trying to transfer our re- vised software engineering curriculum from UC Berkeley to other universities. Our original plan was just to develop an inexpensive electronic textbook, but we were swept up in the first wave of Massive Open Online Course (MOOCs) while we were writing it. Thus, the paper lists the lessons learned about educational tech- nology transfer from writing Ebooks and developing MOOCs. To make it easier for instructors to use MOOC material, EdX offers Small Private Online Course (SPOCs) We argue that SPOCs and Ebooks may become the textbook of the 21st Century.

Session 4:  3:30 - 5 p.m.

Teaching Future Software Developers TeachingDevelopers.pdf

         Václav Rajlich (Wayne State University)


Teaching software developer skills should be a fundamental part of software engineering curriculum. The current industry relies on evolutionary and agile processes that add one feature or property at a time. The main task of these processes is software change. Results of the recent research allow this topic to be taught on both undergraduate and graduate level. Phased model of software change (PMSC) divides the task of software change into phases that are sufficiently well-understood and suitable for teaching in the undergraduate course. Among the phases, concept location finds the module(s) to be changed, impact analysis assesses the full extent and difficulty of the change, prefactoring reorganizes software to make it suitable for the change, actualization implements the new feature, and postfactoring cleans up the aftermath.

Panel: Test-Driven Development

     Moderated by Rich LeBlanc

         Panelists will include

  1. Kevin Buffardi or Stephen Edwards (Virginia Tech) buffardi-TDDpanel.pdf

  2. David Patterson (UC Berkeley)