iPDC: Integrating Parallel and Distributed Computing in Introductory Programming
Tennessee Technological University, Cookeville TN
Investigators
Abstract
The widespread deployments of multicore and manycore based systems in recent years have changed the computing infrastructure landscape. However, most undergraduate computer science (CS) and computer engineering (CE) programs continue to train their undergraduates to think and program sequentially, and do not sufficiently teach parallel and distributed computing concepts. The gap is widening rapidly between the emerging highly parallel computer architectures and the sequential programming approach taught in traditional CS/CE undergraduate curriculums. A few CS/CE programs offer a parallel computing class as an upper division elective, but very few programs introduce Parallel and Distributed Computing (PDC) in the introductory programming classes (CS1 and CS2). The challenges are significant. CS1 and CS2 instructors are typically not trained in PDC, instructors lack resources, and there are only a few templates illustrating how to infuse PDC topics into the already overloaded introductory courses. The overall goal of this project is to prepare CS/CE undergraduate students for their future careers in light of the technological shifts towards parallelism by improving faculty expertise in PDC and providing them templates and resources to integrate PDC topics in introductory programming classes. Many non-CS/CE majors in the broader STEM disciplines also rely on CS1/CS2 or equivalent courses for their computational preparation, and thus will be impacted positively. Moreover, the resulting PDC course modules may be employed in other computational courses of the broader STEM disciplines. The project will conduct a hands-on training workshop on PDC concepts and programming tools for the introductory programming course sequence. The workshop participant pool will be instructors of CS1, CS2 or equivalent courses from CS/CE and other STEM disciplines. The project will follow the PDC curriculum guidelines for undergraduates from IEEE Technical Committee on Parallel Processing (TCPP). Hands-on modules appropriate to CS1 and CS2 will be selected from successful PDC integration efforts (some funded by NSF). The instructors will be provided easy to integrate modules consisting of lecture slides and/or handouts, hands on activities such as programming assignments, and quiz/test questions with answers. The workshop will follow active learning strategies that require less lecture and more hands-on activities. The participants will write programs using parallel programming tools such as OpenMP and Python and Java threads, and work on the PDC modules as their students would be required to do. After the workshop, the participants will integrate those modules into CS1 and CS2 or equivalent classes at their respective institutions.
View original record on NSF Award Search →