Infusing Parallelism into Introductory Computer Science Curriculum using MapReduce

Matthew Johnson, Robert H. Liao, Alexander Rasmussen, Ramesh Sridharan, Dan Garcia, Brian K. Harvey · 2008

We have incorporated cluster computing fundamentals into the introductory computer science curriculum at UC Berkeley. For the first course, we have developed coursework and programming problems in Scheme centered around Google’s MapReduce. To allow students only familiar with Scheme to write and run MapReduce programs, we designed a functional interface in Scheme and implemented software to allow tasks to be run in parallel on a cluster. The streamlined interface enables students to focus on programming to the essence of the MapReduce model and avoid the potentially cumbersome details in the MapReduce implementation, and so it delivers a clear pedagogical advantage. We have also developed cluster computing curriculum for the other two courses, including a direct use of the Hadoop API in our Java-based second course, and a performance and benchmarking analysis using MPI in our third course, which is about low-level machine organization. This treatment of parallelism in the introductory courses follows the “high-to-low ” abstraction progression already present in the courses, and together the courses provide a deep introduction to cluster parallelism.

Read the paper · More papers on PaperTik