SynchEduca: Edukacijski alat za mehanizme sinkronizacije u programskom jeziku Java
Article (on mapub.org)
Full Paper (PDF)

Keywords

software engineer education
concurrent program synchronization
synchronization in Java environment

How to Cite

Popovic, M. (2024). SynchEduca: Edukacijski alat za mehanizme sinkronizacije u programskom jeziku Java. MAP Education and Humanities, 5, 28–36. https://doi.org/10.53880/2744-2373.2024.5.28

Abstract

A strong ICT sector enables economic growth in almost every business sector. Therefore, the quality of education provided to software engineers is an extremely important factor in fostering innovation and having a positive impact on society. Industry applications present challenges of effectively implementing programs comprising interdependent tasks which compete for computational resources. The concepts of building optimal synchronization of program execution are challenging for many students studying software engineering. This paper provides an overview of projects and guidelines for improving the education of software engineers in respect to learning synchronization mechanisms, particularly focusing on usage of synchronization mechanisms from the Java package java.util.concurrent. The paper introduces the tool SynchEduca, which uses a visual interface to introduce students to synchronization concepts in the Java programming language in a more interactive and enjoyable way, without overshadowing the synchronization concepts with implementation details.

https://doi.org/10.53880/2744-2373.2024.5.28
Article (on mapub.org)
Full Paper (PDF)

References

Ben-Ari, M., Myller, N., Sutinen, E., & Tarhio, J. (2002). Perspectives on program animation with Jeliot. In S. Diehl (Eds.), Lecture Notes in Computer Science, vol 2269. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45875-1_3

Carr, S., Mayo, J., & Shene, C. (2003). ThreadMentor: a pedagogical tool for multithreaded programming. ACM J. Educ. Resour. Comput., 3, 1.

Cooper, S., Dann, W., & Pausch, R. (2000). Alice: A 3-D tool for introductory programming concepts. Journal of Computing Sciences in Colleges, 15(5), 107-116.

Gagne, G., Silberschatz, A., & Galvin, P. B., (2018). Operating System Concepts (10th ed.). Wiley

Halim, S. (2015). VisuAlgo - Visualising Data Structures and Algorithms Through Animation. Retrieved June 19, 2024 from https://visualgo.net/en

Henriksen, P., & Kölling, M. (2004). Greenfoot: combining object visualisation with interaction. Conference on Object-oriented programming systems, languages, and applications (OOPSLA '04), 73–82. https://doi.org/10.1145/1028664.1028701

Hoare, C. A. R. (1974). Monitors: An operating system structuring concept. Communications of the ACM, 17(10), 549-557.

Jakobovic, D., Budin, L., Jelenkovic, L., & Golub, M. Operacijski sustavi (4. izdanje). (2018). Element: Zagreb

Järvinen, H., Tiusanen, M., & Virtanen, A. (2005). Convit , a Tool for Learning Concurrent Programming.

Joint Task Force on Computing Curricula, Association for Computing Machinery (ACM) and IEEE Computer Society. Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science; 2013; ACM; New York (NY), USA.

Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ System and its Pedagogy. Computer Science Education, 13(4), 249–268. https://doi.org/10.1076/csed.13.4.249.17496

Oracle Inc. () CountDownLatch documentation, a part of java.util.concurrent package. Retrieved June 17, 2024 from https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html

Oracle Inc. CyclicBarrier documentation, a part of java.util.concurrent package. Retrieved June 17, 2024 from https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CyclicBarrier.html

Oracle Inc. Semaphore documentation, a part of java.util.concurrent package. Retrieved June 17, 2024 from https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Semaphore.html

Oracle Inc. Phaser documentation, a part of java.util.concurrent package. Retrieved June 17, 2024 from https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Phaser.html

Popovic, M. (2018). SynchEduca. Retreived June 17, 2024 from https://gitlab.com/popmir/synch_educa_plumb

Popović, M., Vladimir, K., & Šilić, M. (2018). Application of social game context to teaching mutual exclusion. Automatika, 59(2), 208–219. https://doi.org/10.1080/00051144.2018.1522462

Popovic, M. (2011). Sinkronizacija potrošačkih programa [Doktorska disertacija, Fakultet elektrotehnike i računarstva: Sveučilište u Zagrebu]. 540821. https://www.bib.irb.hr:8443/540821

Prasad, S. K., Chtchelkanova, A., Das, S., Dehne, F., Gouda, M., Gupta, A., ... & Wu, J. (2011, March). NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates. In Proceedings of the 42nd ACM technical symposium on Computer science education (pp. 617-618).

Scott, M. L. (2009, March). Don’t start with Dekker’s algorithm: Top-down introduction of concurrency. In Workshop on Multicore Programming Education.