Teaching concurrent and parallel programming by patterns: An interactive ICT approach - Capel, Manuel I.; Tomeu, Antonio J.; Salguero, Alberto G. (Journal of parallel and distributed computing, 2017)
The use of programming patterns is considered to be a conceptual aid for programmers for developing understandable and testable concurrent and parallel code which is not only well built but also safe. By using programming patterns and their implementations as computer programs, difficult new concepts can be smoothly taught in lectures to students who before trying this teaching approach would have been reluctant to enroll on Parallel and Concurrent Programming courses. The approach presented in this paper consists in changing the traditional programming teaching and learning model to one where students are first introduced to syntactical constructs through selected introductory program code-patterns. In the theory lessons that follow, through the use of laptops with multi-core processors and access to the Virtual Campus services of our university, the students are easily able to implement and master the new concepts as they are taught. This teaching experiment was implemented to teach a concurrent and real-time programming course which is part of the computer engineering (CE) degree and taught during the third semester of the CE curriculum. Evaluation of the students’ academic performance when they had been taught with this approach revealed a 20.6% improvement in the students’ end-of-course grades. •A new teaching model for undergraduate Parallel and Distributed Programming (PDC) courses which uses code-patterns.•Assessment of students’ academic results compared with other courses on the same subject.•More didactic PDC teaching based on “shared resources” from the outset.•Peterson’s mutual exclusion and tumor growth simulation to introduce our approach.•Set the fundamentals for developing our own self-study cloud courses and tools.