TechTalks from event: EduPar 2011

EduPar-11 Keynote

Early Adopter Session

  • Integrating Parallel and Distributed Computing Into Undergraduate Courses at All Levels Authors: Steven Bogaerts (Wittenberg University), Kyle Burke (Wittenberg University) and Eric Stahlberg (National Cancer Institute)
    Since 1989, all Calvin College computer science students have learned about concurrency constructs and distributed systems, and they have had the option of learning about parallelism since 1997. In 2006, manufacturers began releasing processors with multiple cores instead of faster clock speeds, making knowledge of shared-memory parallelism a necessity for all computer science students. In 2008, the department began integrating shared-memory parallel topics into its Data Structures course (aka CS2) and the Operating Systems and Networking course. Thanks to the NSF/IEEE TCCP 2011 Early Adopters Program, additional parallel topics are now being integrated into the Algorithms and Data Structures course, the Intro to Computer Architecture course, the Programming Language Concepts course, and the High Performance Computing course. This work provides an overview of the department’s curriculum, and the precise courses in which specific parallel topics and technologies are covered.
  • Experiences of an Undergraduate Parallel Computing Course Authors: Bo Hong (Georgia Tech)
    This article presents experiences in teaching an undergraduate parallel computing course. This is a new parallel computing course (Introduction to Parallel Computing) for senior ECE students at Georgia Tech. This is for the first time that parallel computing is systematically exposed to undergraduate ECE students at Georgia Tech. Students coming to the course have been prepared with knowledge of programming and computer architectures, but such preparation is almost exclusively limited to uni-processors and sequential programming. On the other hand, to provide a comprehensive overview of the field of parallel computing, the course expands over a rather broad range of topics including parallel computer architectures, parallel programming models, and parallel algorithms. The gap between the students’ background and the course requirement makes the course challenging for both the students and the instructor. This article presents my teaching experience of the course, and my thoughts on how to make parallel computing friendly and accessible for undergraduate students.
  • Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Authors: Eileen Kraemer (University of Georgia)
    Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum
  • Integration of Parallel Topics in the Undergraduate Curriculum, 2011 Authors: Joel Adams (Calvin College)
    Since 1989, all Calvin College computer science students have learned about concurrency constructs and distributed systems, and they have had the option of learning about parallelism since 1997. In 2006, manufacturers began releasing processors with multiple cores instead of faster clock speeds, making knowledge of shared-memory parallelism a necessity for all computer science students. In 2008, the department began integrating shared-memory parallel topics into its Data Structures course (aka CS2) and the Operating Systems and Networking course. Thanks to the NSF/IEEE TCCP 2011 Early Adopters Program, additional parallel topics are now being integrated into the Algorithms and Data Structures course, the Intro to Computer Architecture course, the Programming Language Concepts course, and the High Performance Computing course. This work provides an overview of the department’s curriculum, and the precise courses in which specific parallel topics and technologies are covered.
  • ASU and Intel Collaboration in Parallel and Distributed Computation. Authors: Violet Syrotiuk, Yinong Chen, Eric Kostelich, Yann-Hang Lee, Alex Mahalov and Gil Speyer (Arizona State)
    Arizona State University (ASU) is working with Intel and the Intel Academic Community to integrate topics in Parallel and Distributed Computing (PDC) into the Computer Science (CS), the Computer Systems Engineering (CSE), and the Mathematics and Statistical Sciences (MAT) programs at the Undergraduate and Master's degree levels, leveraging ASU’s initiative in high performance computing (HPC) in the Advanced Computing Center.
  • Parallel Computing: Keys to a Future in Computing Authors: Stephen Providence (Hampton University)
    The triuvirate: parallel programming, parallel ar- chitecture and parallel algorithms is the mantra for education and research in parallel computing [2]. These three are necessary subareas that will prepare an undergraduate srudent to pursue studies in computational science or to develop software systems that exploit parallelism to solve NP-hard problems. We have been developing a curriculum that will take UG students in their freshmen year up through the masters level in parallel computing. The goal is to prepare students for the future of computing and to eventually institute a doctoral program in computational science or computer science.

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.