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

12 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 Apr 22
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

Fingerprint

Multicore programming
Parallel programming
computer science
Curricula
Computer science
programming
curriculum
Students
Robot programming
Computer programming
hardware
Computer hardware
experience
Websites
Software engineering
Education
Hardware
student
software development
semester

All Science Journal Classification (ASJC) codes

  • Computer Science (miscellaneous)
  • Education

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).
Ko, Yousun ; Burgstaller, Bernd ; Scholz, Bernhard. / Parallel from the beginning : The case for multicore programming in the computer science undergraduate curriculum. SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education. 2013. pp. 415-420 (SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education).
@inproceedings{e93748fe53f641739d260185b0c981ef,
title = "Parallel from the beginning: The case for multicore programming in the computer science undergraduate curriculum",
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.",
author = "Yousun Ko and Bernd Burgstaller and Bernhard Scholz",
year = "2013",
month = "4",
day = "22",
language = "English",
isbn = "9781450320306",
series = "SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education",
pages = "415--420",
booktitle = "SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education",

}

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. SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education, pp. 415-420, 44th ACM Technical Symposium on Computer Science Education, SIGCSE 2013, Denver, CO, United States, 13/3/6.

Parallel from the beginning : The case for multicore programming in the computer science undergraduate curriculum. / Ko, Yousun; Burgstaller, Bernd; Scholz, Bernhard.

SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education. 2013. p. 415-420 (SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education).

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

TY - GEN

T1 - Parallel from the beginning

T2 - The case for multicore programming in the computer science undergraduate curriculum

AU - Ko, Yousun

AU - Burgstaller, Bernd

AU - Scholz, Bernhard

PY - 2013/4/22

Y1 - 2013/4/22

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=84876234932&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84876234932&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:84876234932

SN - 9781450320306

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

SP - 415

EP - 420

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

ER -

Ko Y, Burgstaller B, Scholz B. 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. 2013. p. 415-420. (SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education).