Abstract

Undergraduate or novice programmers are often challenged by higher-level and abstract concepts in programming courses. Compared to constructing a sequential program, parallel and concurrent programming requires a different and more complex mental model of control flow. Now that multi-core processors have become the norm for computers and mobile devices, the responsibility of developing software to take advantage of this extra computing power now rests with the modern software developer. In recognition of this new era, curricula guidelines have been proposed specifically targeting the complex world of parallel and distributed computing. CS2013 also recognizes this with a dedicated Parallel and Distributed Computing knowledge area with core hours, as well as dispersing parallelism concepts across other fundamental knowledge areas. Parallel programming was once considered an advanced area of computing, and only taught to students by experts in graduate-level elective courses. However, it is now expected that all undergraduate computing students will become familiar with the fundamentals of parallelism. Concurrency and parallelism concepts are undoubtedly difficult for students to learn. This can even be daunting for teachers that are inexperienced with all elements of the underlying parallelism concepts, but even more daunting is devising pedagogically-sound materials that will allow undergraduate students to grasp the concepts. This is especially challenging for early undergraduate courses where students are often novice programmers, barely confident in sequential programming let alone parallel programming. This session will provide an opportunity for instructors to discuss and share ideas and experiences in this area, as well as explore potential collaboration opportunities.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call