Teaching Parallel Programming with Active Learning - Kuhail, Mohammad Amin; Cook, Spencer; Neustrom, Joshua W.; Rao, Praveen (2018 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), 2018)
Today parallel computing is essential for the success of many real-world applications and software systems. Nonetheless, most computer science undergraduate courses teach students how to think and program sequentially. Further, software professionals have complained about the computer science curriculum's lag behind industry in their failing to cover modern programming technologies such as parallel programming. The emphasis on parallel programming has become even more important due to the increasing adoption of horizontal scaling approaches to cope with massive datasets. In order to help students coming from a serial curriculum comprehend parallel concepts, we used an innovative approach that utilized active learning, visualizations, examples, discussions, and practical exercises. Further, we conducted an experiment to examine the effect of active learning on students' understanding of parallel programming. Results indicate that the students that were actively engaged with the material performed better in terms of understanding parallel programming concepts than other students.