Game playing as a technique for teaching parallel computing concepts
ACM SIGCSE Bulletin
Multicore Challenge in Pervasive Computing Education
GPC-WORKSHOPS '08 Proceedings of the 2008 The 3rd International Conference on Grid and Pervasive Computing - Workshops
Think Parallel: Teaching Parallel Programming Today
IEEE Distributed Systems Online
Teaching parallel computing: new possibilities
Journal of Computing Sciences in Colleges
A breadth-first course in multicore and manycore programming
Proceedings of the 41st ACM technical symposium on Computer science education
IEEE Micro
Programming Massively Parallel Processors: A Hands-on Approach
Programming Massively Parallel Processors: A Hands-on Approach
Practical parallel and concurrent programming
Proceedings of the 42nd ACM technical symposium on Computer science education
Teaching concurrency-oriented programming with Erlang
Proceedings of the 42nd ACM technical symposium on Computer science education
GPU Computing Gems Emerald Edition
GPU Computing Gems Emerald Edition
Hi-index | 0.00 |
Massively parallel Graphics Processing Unit (GPU) hardware has become increasingly powerful, available and affordable. Software tools have also advanced to the point that programmers can write general purpose parallel programs that take advantage of the large number of compute cores available in the hardware. With literally hundreds of compute cores available on a single device, program performance can increase by orders of magnitude. We believe that introducing students to the concepts of parallel programming for massively parallel hardware is of increasing importance in an undergraduate computer science curriculum. Furthermore, we believe that students learn best when given projects that reflect real problems in computer science. This paper describes the experience of integrating two undergraduate computer science courses to enhance student learning in parallel computing concepts. In this cross teaching experience we structured the integration of the courses such that students studying parallel computing worked with students studying advanced rendering for approximately 30% of the quarter long courses. Working in teams on a joint project, both groups of students were able to see the application of parallelization to an existing software project with both the benefits and complications exposed early in the curriculum of both courses. Motivating projects and performance gains are discussed, as well as student survey data on the effectiveness of the learning outcomes. Both performance and survey data indicate a positive gain from the cross teaching experience.