A Set of Patterns for Concurrent and Parallel Programming Teaching

  • Manuel I. Capel
  • Antonio J. Tomeu
  • Alberto G. Salguero
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10659)


The use of key parallel-programming patterns has proved to be extremely helpful for mastering difficult concurrent and parallel programming concepts and the associated syntactical constructs. The method suggested here consists of a substantial change of more traditional teaching and learning approaches to teach programming. According to our approach, students are first introduced to concurrency problems through a selected set of preliminar program code-patterns. Each pattern also has a series of tests with selected samples to enable students to discover the most common cases that cause problems and then the solutions to be applied. In addition, this paper presents the results obtained from an informal assessment realized by the students of a course on concurrent and real-time programming that belongs to the computer engineering (CE) degree. The obtained results show that students feel now to be more actively involved in lectures, practical lessons, and thus students make better use of their time and gain a better understanding of concurrency topics that would not have been considered possible before the proposed method was implemented at our University.


Parallel design patterns Teaching innovation Blended learning ICT integration lecturing model Concurrent programming Parallel programming Virtual Campus 


  1. 1.
    Capel, M.I., Tomeu, A.J., Salguero, A.G.: Teaching concurrent and parallel programming by patterns: an interactive ICT approach. J. Parallel Distrib. Comput. 105, 42–52 (2017)CrossRefGoogle Scholar
  2. 2.
    Carro, M., Herranz, A., Mario, J.: A model-driven approach to teaching concurrency. ACM Trans. Comput. Educ. 13(1), 1–19 (2013)CrossRefGoogle Scholar
  3. 3.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. ACM/MIT Press, New York/Cambridge (1991)zbMATHGoogle Scholar
  4. 4.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Object-Oriented Software. Addison-Wesley, Reading (1994)zbMATHGoogle Scholar
  5. 5.
    Goetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., Lea, D.: Java Concurrency in Practice. Addison-Wesley, Reading (2006)Google Scholar
  6. 6.
    Grossman, D., Anderson, R.E.: Introducing parallelism and concurrency in the data structures course. In: Proceedings of the 43rd ACM Technical Symposium on Computer Science and Education (SIGCSE 2012), pp. 505–510. ACM, New York (2012)Google Scholar
  7. 7.
    Hadjerrouit, S.: Towards a blended learning model for teaching and learning computer programming: a case of study. Inf. Educ. 7(2), 181–210 (2008)Google Scholar
  8. 8.
    Joshi, R., Lamport, L., et al.: Checking Cache-Coherence Protocols with TLA+. Accessed Sept 2016
  9. 9.
    Law, K., Lee, V., Yu, Y.: Learning motivation in e-learning facilitated computer programming courses. Comput. Educ. 55(1), 218–228 (2010)CrossRefGoogle Scholar
  10. 10.
    Manzano, M.: Extensions of First Order Logic. Cambridge University Press, Cambridge (1996)zbMATHGoogle Scholar
  11. 11.
    Marowka, A.: Think parallel: teaching parallel programming today. IEEE Distrib. Syst. Online 9(8), 1–8 (2008). Article no. 0808-o8002CrossRefGoogle Scholar
  12. 12.
    Mattson, T., Sanders, B., Massingill, B.: Patterns for Parallel Programming. Addison-Wesley, Reading (2004)zbMATHGoogle Scholar
  13. 13.
    Mitchell, R., McKim, J.: Design by Contract, by Example. Addison-Wesley, Reading (2002)Google Scholar
  14. 14.
    Mohorovicic, S., Tijan, E.: New technologies in teaching university level programming. In MIPRO, 2010 Proceedings of the 33rd International Convention, Opatija, Croacia, pp. 1024–1028 (2010)Google Scholar
  15. 15.
    Papp-Varga, Z., Szlavi, P., Zsako, L.: ICT teaching methods-programming languages. In: Annales Mathematicae et Informaticae, vol. 35, pp. 163–172 (2008)Google Scholar
  16. 16.
    Saraswat, V.A., Bruce, K.: Curricula in concurrency and parallelism. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion (SPLASH 2010), pp. 281–282. ACM, New York (2010)Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Manuel I. Capel
    • 1
  • Antonio J. Tomeu
    • 2
  • Alberto G. Salguero
    • 2
  1. 1.College of Informatics and TelecommunicationsUniversity of GranadaGranadaSpain
  2. 2.College of EngineeringUniversity of CádizCádizSpain

Personalised recommendations