Parallel from the beginning: The case for multicore programming in the computer science undergraduate curriculum

Yousun Ko, Bernd Burgstaller, Bernhard Scholz

Research output: Chapter in Book/Report/Conference proceedingConference contribution

14 Citations (Scopus)

Abstract

The computing landscape has shifted towards multicore architectures. To learn about software development, it is increasingly important for students to gain hands-on parallel programming experience in multicore environments. This experience will be significantly different from programming for uniprocessors, because it involves a profound understanding of how to write software that is (1) free of concurrency bugs and (2) able to effectively utilize the underlying parallel hardware architecture. We present our work at Yonsei University and The University of Sydney to teach parallel programming to first and second-year undergraduate students. Our objective is to introduce parallelism early on in the curriculum, to instill it as a first principle of computation. We introduce a series of five parallel programming course modules suitable for a one semester introductory programming course. Each module teaches one fundamental concept of parallel programming: parallelism and execution indeterminism, thread-and-lock based programming, performance of parallel programs, hardware acceleration using OpenCL, and stream-parallel programming with StreamIt. We report our experience from four course offerings (2008-2011) at Yonsei University, and two course offerings at The University of Sydney. Over 73%of students surveyed enjoyed this multicore programming experience and preferred exposure to parallelism at this early stage of their CS education. Our course has been awarded an Intel microgrant for "Parallelism in the Classroom", and it is available online at Intel's Multicore Curriculum Initiative Website.

Original languageEnglish
Title of host publicationSIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education
Pages415-420
Number of pages6
Publication statusPublished - 2013
Event44th ACM Technical Symposium on Computer Science Education, SIGCSE 2013 - Denver, CO, United States
Duration: 2013 Mar 62013 Mar 9

Publication series

NameSIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education

Other

Other44th ACM Technical Symposium on Computer Science Education, SIGCSE 2013
CountryUnited States
CityDenver, CO
Period13/3/613/3/9

All Science Journal Classification (ASJC) codes

  • Computer Science (miscellaneous)
  • Education

Fingerprint Dive into the research topics of 'Parallel from the beginning: The case for multicore programming in the computer science undergraduate curriculum'. Together they form a unique fingerprint.

  • Cite this

    Ko, Y., Burgstaller, B., & Scholz, B. (2013). Parallel from the beginning: The case for multicore programming in the computer science undergraduate curriculum. In SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education (pp. 415-420). (SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education).