Expanding Curricula for Parallel Computing Fundamentals in Computer Architecture and Hardware Courses

From REU@MU
Revision as of 20:57, 1 June 2018 by Blevando (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

As parallel computing has become more common and accessible, the need for teaching concepts in parallel and distributed computing has increased. This need has been met in many universities, but only very recently. Currently, most approaches involve some sort of upper-level course devoted to parallel concepts, but this is also the extent of parallel instruction in many cases.

Pedagogically, it may be more beneficial to teach parallel computing in bursts within core computer science courses. This has been done already to some extent, but usually just to courses such as introductory courses, or maybe data structures courses, for example. As for hardware and computer architecture courses, parallel computing lacks, and its presence may help with foundational understandings of parallel. That way, in more advanced parallel computing courses, students would come in with experience.

Developing parallel computing curriculum for hardware courses would contribute to a model that encourages parallel concepts in almost all computer science offerings. Such a model understands that parallel computing is foundational to computer science practices in industry and academia, so its education should be treated as such.

To study the potential benefits of including parallel curriculum in hardware courses, I will research the development of relevant curriculum to teach parallel computing in Marquette University's Hardware Systems course with the plan to pilot the material this upcoming fall (2018) semester. After the semester, the effectiveness of the curriculum will be measured. To assist teaching parallel concepts, the Embedded Xinu operating system will be employed to develop homeworks and labs in order for students to focus on parallel concepts instead of spending time building an application from the ground up.

Initially, I will seek to develop curriculum involving memory management as "parallelizing" problems is currently better covered in core computing courses. The specifics of the material will be formed after reviewing relevant literature and conducting more research.