F8-COMP7-4 - Enrich a data structures course with parallelism

2. Research-to-Practice Work In Progress
Qiong Cheng1
1 University of North Carolina at Charlotte

This Research to Practice Work in Progress paper develops an adaptive learning module aimed at enriching data structures and algorithms courses (CS2/DS) with introductory parallel computing. We emphasize exploitable shared-memory parallelism with the intention of teaching students to decompose a problem or its underlying big data structure into parts that can execute effectively in many- or multi-core processes. The module can set up conditional mastery paths and differentiate assignments for individual students automatically. The adaptive learning reflects the student-directed learning by doing and so fits naturally into the conventional CS2/DS courses. We conducted a 50-minute learning session in an adaptive learning CS2/DS class for a group of 56 students in the Fall 2019 semester. The experimental results, from two surveys executed before and after the session, was successful in engaging students, instigating students’ interest in parallel computing, and improving the students’ awareness and appreciation. The module can be extended to support other parallel computing concepts, such as critical section, race condition, and multi-thread synchronization and cooperation techniques. As a side benefit, we would like to show that adaptive learning prepares students, gets students to engage, and enhances their  performance.