TechTalks from event: EduPar 2011

Plenary Talks

  • Using Games to Teach Parallelism to Computer Science 2nd year and 3rd YearCollege Students Authors: Rowena Turner, Deepak Vembar and Amit Jindal (Intel)
    Parallel programming concepts are often introduced in upper-level undergraduate curriculum as a part of OS or other advanced programming courses. With the wide availability and prevalence of multi-core processors, it is imperative that students learn good programming practices to effectively use the increasing number of cores in computing environments. Parallelism concepts must be introduced sooner in the undergraduate curriculum to promote facility with parallelism and keep students competitive in today’s high-tech job markets. We present a novel way to integrate video game based demos into sophomore computer science courses to introduce students to data parallelism and programming concepts. We have two primary objectives: update undergraduate curriculum with a laboratory-based 2nd year course on parallel computation, and introduce some of the parallelism concepts and profiling tools used in the industry.
  • Teaching Parallel and Distributed Computing at Masaryk University Authors: Teaching Parallel and Distributed Computing at Masaryk University
    The Faculty of Informatics at Masaryk University was established in 1994 as a very first university faculty in Central and Eastern Europe specialized entirely on informatics in a broad sense. The faculty is part of a non-engineering university. From a modest beginning of twenty academic staff and less than four hundred students, the faculty has grown rapidly. Today, with more than 2,400 students, it offers a wide range of study programs at Bachelor, Master and Doctoral degree. The three years bachelor program “Parallel and Distributed Computing” has been established in 2007 with the intention to provide students with a systematic curriculum in the topic. The goals of this program are: Get students acquainted with modern parallel and distributed architectures and technologies; Equip students with expertise in advanced methods, tools and techniques for development of parallel software; Enable students to efficiently exploit modern parallel computing systems in scientific and commercial application areas.
  • Parallel Programming in the Computing Curriculum Authors: Ankur Gupta, Rahul Hardikar and Jon Sorenson (Butler University)
    All STEM (science, technology, engineering, and mathematics) students at Butler University are required to take at least one Computer Science (CS) course in their first year. A typical such course is the traditional introductory programming course (taught in C++ at Butler). It is a service course taught to non-CS majors and all CS students without a high school programming course. We have modified this course to include a month-long unit on parallel programming using MPI [1], rather than introducing objects (as is one traditional practice). In this extended abstract, initial results and feedback suggest the approach is working for a number of goals critical to preparing students for the parallel environment. In particular, our approach prepares students early to engage in scientific computing applications and broadens their perspective on the definition of “computing.” Also, we gain great flexibility in designing a CS curriculum that incorporates parallel computing; for instance, we have already added a required capstone course Parallel Algorithm Analysis and Design, which spans theory and practice in a rigorous fashion.
  • PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum Authors: Konstantin Laufer, Chandra Sekharan and George K. Thiruvathukal (Loyola University Chicago)
    We propose to give a half-hour presentation on incorporating PDC topics into our existing undergraduate computer science curriculum. We first describe our experience with single-course and cross-curricular undergraduate PDC education since 1997. We then provide details about our proposed model for incorporating PDC topics into our undergraduate curriculum. To this end, we have distilled a set of consistent, regularly offered and required three-week core and advanced PDC modules from our previously offered PDC content. Keywords-Computer science education, parallel and distributed computing education, concurrency, distributed computing, distributed systems, parallel computing, curriculum design, programming methodology, CSE, PDC
  • Teaching Parallel Computing to Lower-Division Undergraduates Authors: Peter Pacheco (University of San Francisco)
    In the last ten years parallel computers have become ubiquitous. Thus it has become essential for computer scientists to learn how to program these systems. Yet many, if not most, computer science majors graduate with little or no experience in the development of parallel software. It seems clear that the best solution to this problem would be to incorporate parallel computation across the computer science curriculum. However, this would involve a radical change in the current curriculum, and, as a consequence, it is probably feasible only as a long-term solution. At the University of San Francisco we’ve developed a partial solution that can be immediately introduced into the curriculum: a single course that introduces parallel computing to lowerdivision undergraduates. The key idea is that students need to start writing parallel programs near the beginning of their academic careers.
  • Joint UIUC/UMD Parallel Algorithms/Programming Course Authors: David Padua (Urbana), Uzi Vishkin (Maryland) and Je
    This extended abstract reviews an education experiment conducted through shared teleconferencing sessions between a University of Illinois course on Parallel Programming for Science and Engineering Majors and a University of Maryland on Parallel Algorithms in fall 2010, as well as shared programming assignments. The students were given the opportunity to compare OpenMP programming on an 8-processor SMP machine with PRAM-like programming using a 64-processor XMT machine.