1
Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE-1226172/1225739/1225796. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. •Even programs of modest means can address many of the PDC curricular recommendations in TCPP and CS2013 at all curricular levels through an incremental, modular approach, given support from TCPP and strategies such as CSinParallel modules. •Although TCPP recommendations refer only to PDC topics and CS2013 spans all undergraduate CS content areas, numerous affirming and intriguing interconnections relate the two recommendations. NSF-TCPP Curriculum Initiative on Parallel and Distributed Computing (TCPP Recommendations) The NSF-TCPP Curriculum Initiative has led not only in providing curriculum recommendations for PDC topics in undergraduate CS majors, with an emphasis on teaching PDC topics in four “core” courses (CS1, CS2, Algorithms/Data Structures, and Architecture), but also in gathering and supporting professors who put these recommendations into practice, through the Early Adopter program. The left side grid below indicates how CSinParallel materials and St. Olaf College’s curriculum relate to the TCPP recommendations for teaching PDC. ACM-IEEE/CS Joint Curricular Recommendations in Computer Science (CS2013) The two professional societies have jointly issued curricular recommendations for undergraduate CS majors approximately every 10 years since 1991. The current recommendations, known as CS2013, feature a sudden and substantial increase in PDC topics in response to factors such as the emergence of multicore processors and the rise of cloud computing. As the spreadsheet below indicates, PDC appears not only in new PD and SF knowledge areas, but also in many other knowledge areas throughout the curriculum. The right side grid below indicates how CSinParallel materials and St. Olaf College’s curriculum relate to the presence of PDC in CS2013. CSinParallel The CSinParallel project calls for teaching PDC concepts should be taught early and often throughout the computer science curriculum, using effective active- learning pedagogy. In order to accomplish this, we produce flexible teaching modules on topics ranging across the spectrum of parallel computing principles and practices, each designed for use in a variety course and institutional contexts. Each module contains: • learning objectives • comments on contexts for its use • expository text • student exercises, and • assessment tools We seek to make it as convenient as possible for an instructor to insert a day or two on parallel computing in a course, even when that instructor may not have taught parallelism in that St. Olaf College St. Olaf is a liberal-arts college in Northfield, Minnesota that recently (2002) expanded to a major program. Still small (17 majors this year, only three full-time faculty), we have nevertheless offered short PDC topics in almost every course from CS1 to the Senior Capstone Seminar in recent years. Examples include: Hadoop computing using the simplified WebMapReduce interface in every section of CS1 since 2010; programming with multiple cores (with race conditions) in Hardware Design, (a “computer organization course”) since 2010; and formal methods of distributed computing using the Pi Calculus in Theory of Computation (since 2011). CS2013 recommendations TCPP recommendations CSinParallel Module Key CDS Concurrent Access to Data Structures (2 versions) DC Distributed Computing Fundamentals DD Exemplar: Drug Design GPU GPU Programming HeteroHeterogeneous Computing Intro Parallel Computing Concepts MR Map-reduce Computing for Introductory Students using WebMapReduce MR2 An Advanced Introduction to Map-reduce using WebMapReduce Pat Patternlets in Parallel Programming PiA Exemplar: Computing Pi using Numerical Integration PiC Pi Calculus: A Theory of Message Passing PL Concurrency and Map-Reduce Strategies in Various Programming Languages PMC Programming with Multiple Cores (3 versions) PS Parallel Sorting Elementary courses PL CS 276, Programming Languages CS1 CS 121, Principles of Computer Science MCA CS 284, Mobile Computing Applications HD CS 241, Hardware Design TOP CS 300, Topics in Computer Science SD CS 251, Software Design and Implementation PDC CS 300, Topics: Parallel and Distributed Computing Intermediate and Advanced courses TC CS 333, Theory of Computation ADS CS 253, Algorithms and Data Structures ATP CS 350, Advanced Team Project ESD CS 263, Ethical Issues in Software Design HPCC IS 201, Power Computing in All Disciplines OS CS 273, Operating Systems Macalester College – St. Paul, MN Libby Shoop Saint Olaf College – Northfield, MN Dick Brown Calvin College – Grand Rapids, MI Joel Adams St. Olaf College CS Course Key Some observations Note: In the mapping at center between TCPP and CS2013, we assert that many different aspects of PDC shed light on “Why and what is parallel/distributed computing”

Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE-1226172/1225739/1225796

Embed Size (px)

Citation preview

Page 1: Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE-1226172/1225739/1225796

Spreading Curricular Change in PDC: Some Practical Tools

This material is based on work supported by the National Science Foundation under Grant Nos. DUE-1226172/1225739/1225796. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

•Even programs of modest means can address many of the PDC curricular recommendations in TCPP and CS2013 at all curricular levels through an incremental, modular approach, given support from TCPP and strategies such as CSinParallel modules.•Although TCPP recommendations refer only to PDC topics and CS2013 spans all undergraduate CS content areas, numerous affirming and intriguing interconnections relate the two recommendations.

NSF-TCPP Curriculum Initiative on Parallel and Distributed Computing (TCPP Recommendations)The NSF-TCPP Curriculum Initiative has led not only in providing curriculum recommendations for PDC topics in undergraduate CS majors, with an emphasis on teaching PDC topics in four “core” courses (CS1, CS2, Algorithms/Data Structures, and Architecture), but also in gathering and supporting professors who put these recommendations into practice, through the Early Adopter program. The left side grid below indicates how CSinParallel materials and St. Olaf College’s curriculum relate to the TCPP recommendations for teaching PDC.

ACM-IEEE/CS Joint Curricular Recommendations in Computer Science (CS2013)The two professional societies have jointly issued curricular recommendations for undergraduate CS majors approximately every 10 years since 1991. The current recommendations, known as CS2013, feature a sudden and substantial increase in PDC topics in response to factors such as the emergence of multicore processors and the rise of cloud computing. As the spreadsheet below indicates, PDC appears not only in new PD and SF knowledge areas, but also in many other knowledge areas throughout the curriculum. The right side grid below indicates how CSinParallel materials and St. Olaf College’s curriculum relate to the presence of PDC in CS2013.

CSinParallel The CSinParallel project calls for teaching PDC concepts should be taught early and often throughout the computer science curriculum, using effective active-learning pedagogy. In order to accomplish this, we produce flexible teaching modules on topics ranging across the spectrum of parallel computing principles and practices, each designed for use in a variety course and institutional contexts. Each module contains:

• learning objectives• comments on contexts for its use • expository text• student exercises, and • assessment tools

We seek to make it as convenient as possible for an instructor to insert a day or two on parallel computing in a course, even when that instructor may not have taught parallelism in that course in the past. Students who see PDC topics in many courses perceive the ubiquity of PDC throughout CS, and experience many aspects of this broad and rich subject area.

St. Olaf CollegeSt. Olaf is a liberal-arts college in Northfield, Minnesota that recently (2002) expanded to a major program. Still small (17 majors this year, only three full-time faculty), we have nevertheless offered short PDC topics in almost every course from CS1 to the Senior Capstone Seminar in recent years. Examples include: Hadoop computing using the simplified WebMapReduce interface in every section of CS1 since 2010; programming with multiple cores (with race conditions) in Hardware Design, (a “computer organization course”) since 2010; and formal methods of distributed computing using the Pi Calculus in Theory of Computation (since 2011).

CS2013 recommendationsTCPP recommendations

CSinParallel Module Key

CDS Concurrent Access to Data Structures (2 versions)

DC Distributed Computing Fundamentals

DD Exemplar: Drug Design

GPU GPU Programming

Hetero Heterogeneous Computing

Intro Parallel Computing Concepts

MRMap-reduce Computing for Introductory Students using WebMapReduce

MR2 An Advanced Introduction to Map-reduce using WebMapReduce

Pat Patternlets in Parallel Programming

PiA Exemplar: Computing Pi using Numerical Integration

PiC Pi Calculus: A Theory of Message Passing

PLConcurrency and Map-Reduce Strategies in Various Programming Languages

PMC Programming with Multiple Cores (3 versions)

PS Parallel Sorting

Elementary coursesPL  CS 276, Programming Languages

CS1  CS 121, Principles of Computer Science MCA  CS 284, Mobile Computing Applications

HD  CS 241, Hardware Design TOP  CS 300, Topics in Computer Science

SD  CS 251, Software Design and Implementation  PDC  CS 300, Topics: Parallel and Distributed Computing 

Intermediate and Advanced courses TC  CS 333, Theory of Computation

ADS  CS 253, Algorithms and Data Structures ATP  CS 350, Advanced Team Project 

ESD  CS 263, Ethical Issues in Software Design HPCC  IS 201, Power Computing in All Disciplines

OS  CS 273, Operating Systems 

Macalester College – St. Paul, MN

Libby ShoopSaint Olaf College – Northfield, MN

Dick BrownCalvin College – Grand Rapids, MI

Joel Adams

St. Olaf College CS Course Key

Some observations

Note: In the mapping at center between TCPP and CS2013, we assert that many different aspects of PDC shed light on “Why and what is parallel/distributed computing”