Teaching Parallel Thinking to the Next Generation of Programmers

Brian Rague

Abstract


Most collegiate programs in Computer Science offer an introductory course in programming, primarily devoted to communicating the foundational principles of software design and development. Methodologies for solving problems within a discrete computational context are presented. Logical thinking is highlighted, guided primarily by a sequential approach to algorithm development and made manifest by typically using the latest, commercially successful programming language. In response to the most recent developments in accessible multi-core computers, instructors of these introductory classes may wish to include training on how to design workable parallel code. Novel issues arise when programming concurrent applications which can make teaching these concepts to beginning programmers a seemingly formidable task. This paper presents a classroom strategy for introducing the core skills that reinforce parallel thinking. A computerized visualization tool is described that immediately connects the student with the unique challenges associated with parallel program conceptualization. This instructional approach has the potential to make parallel code design principles available to students at the very beginning of their Computer Science education.


Keywords


parallel; programming; computer science; computational; instruction

Full Text: PDF

Journal of Education, Informatics and Cybernetics, 2009, ISSN: 1943-7978