Approach for selecting worked examples for software engineering from the distributed systems domain

  • Breno Farias da Silva Federal University of Technology - Paraná
  • Igor Scaliante Wiese Federal University of Technology - Paraná
  • Rodrigo Campiolo Federal University of Technology - Paraná
  • Marco Aurélio Graciotto Silva Federal University of Technology - Paraná https://orcid.org/0000-0002-1737-8240

Abstract


This study addresses the selection of worked examples for Software Engineering, with a focus on improving code quality in the context of Distributed Systems. An approach is proposed, which employs a metrics-based heuristic to select code examples that demonstrate significant improvements in aspects such as cohesion and coupling. The analysis is performed on widely recognized open source projects, such as Apache Kafka and ZooKeeper, using the CK, PyDriller and RefactoringMiner tools. Our preliminary results suggest that such an approach can assist in the selection of codes for creating worked examples, providing practical resources to educators, applied to complex domains such as Distributed Systems. In this way, it is expected to contribute to a more effective learning of Software Engineering applied in that domain.

Keywords: worked examples, software metrics, code evolution, software engineering, distributed systems

References

Maurício Aniche et al. 2015. Java code metrics calculator (CK). Programa de computador. [link]

Apache Software Foundation. 2008. Zookeeper. Programa de computador. [link]

Apache Software Foundation. 2011. Kafka. Programa de computador. [link]

Robert K. Atkinson, Sharon J. Derry, Alexander Renkl, and Donald Wortham. 2000. Learning from Examples: Instructional Principles from the Worked Examples Research. Review of Educational Research 70, 2 (June 2000), 181–214.

Tiago Piperno Bonetti, Matheus Molina Dias, Williamson Silva, and Thelma Elita Colanzi. 2023. Students’ Perception of Example-Based Learning in Software Modeling Education. In XXXVII Brazilian Symposium on Software Engineering (SBES 2023) (37 ed.) (Campo Grande, MS, Brasil). ACM, New York, NY, EUA, 67–76.

Breno Farias da Silva. 2023. Worked Example Miner. Programa de computador. [link]

Kasia Muldner, Jay Jennings, and Veronica Chiarelli. 2023. A Review of Worked Examples in Programming Activities. Transactions on Computing Education 23, 1 (March 2023), 13:1–13:35.

Sushil K. Prasad, T. Estrada, S. Ghafoor, A. Gupta, K. Kant, C. Stunkel, A. Sussman, R. Vaidyanathan, C. Weems, K. Agrawal, M. Barnas, D. W. Brown, R. Bryant, D. P. Bunde, C. Busch, D. Deb, E. Freudenthal, J. Jaja, M. Parashar, C. Phillips, B. Robey, A. Rosenberg, E. Saule, and Chi Shen. 2020. NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing – Core Topics for Undergraduates. Technical Report. NSF/IEEE-TCPP. 53 pages. [link] v. 2.0 beta.

Rajendra K. Raj and Amruth N. Kumar. 2022. Toward Computer Science Curricular Guidelines 2023 (CS2023). ACM Inroads 13, 4 (nov 2022), 22–25.

Ben Skudder and Andrew Luxton-Reilly. 2014. Worked Examples in Computer Science. In Proceedings of the Sixteenth Australasian Computing Education Conference (6 ed.) (Auckland, Nova Zelandia), Vol. 148. Australian Computer Society, Darlinghurst, Austrália, 59–64.

Davide Spadini, Maurício Aniche, and Alberto Bacchelli. 2018. PyDriller. Programa de computador. [link]

Davide Spadini, Maurício Aniche, and Alberto Bacchelli. 2018. PyDriller: Python framework for mining software repositories. In 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (26 ed.) (Lake Buena Vista, FL, EUA). ACM, New York, NY, EUA, 908–911.

Simone Tonhão, Thelma Colanzi, and Igor Steinmacher. 2021. Using Real Worked Examples to Aid Software Engineering Teaching. In 35th Brazilian Symposium onSoftware Engineering (SBES 2021) (35 ed.) (Joinville, SC, Brasil), Márcio Ribeiro, Marco Túlio Valente, Christina von Flach G. Chavez, Elisa Yumi Nakagawa, Kiev Santos da Gama, Simone do Rocio Senger de Souza, Ingrid Nunes, and Rohit Gheyi (Eds.). ACM, New York, NY, EUA, 133–142.

Simone Tonhão, Williamson Silva, Thelma Colanzi, and Igor Steinmacher. 2022. Uma plataforma gamificada de desafios baseados em worked examples extraídos de projetos de Software Livre para o ensino de Engenharia de Software. In XVII Simpósio Brasileiro de Sistemas Colaborativos (17 ed.) (Rio de Janeiro, RJ, Brasil). SBC, Porto Alegre, RS, Brasil, 33–38.

Nikolaos Tsantalis et al. 2014. RefactoringMiner. Programa de computador. [link]

Nikolaos Tsantalis, Ameya Ketkar, and Danny Dig. 2022. RefactoringMiner 2.0. Transactions on Software Engineering 48, 3 (March 2022), 930–950.

Nikolaos Tsantalis, Matin Mansouri, Laleh M. Eshkevari, Davood Mazinanian, and Danny Dig. 2018. Accurate and Efficient Refactoring Detection in Commit History. In 40th International Conference on Software Engineering (40 ed.) (Gothenburg, Suécia). ACM, New York, NY, EUA, 483–494.
Published
2024-04-22
SILVA, Breno Farias da; WIESE, Igor Scaliante; CAMPIOLO, Rodrigo; GRACIOTTO SILVA, Marco Aurélio. Approach for selecting worked examples for software engineering from the distributed systems domain. In: NEW IDEAS LAB - BRAZILIAN SYMPOSIUM ON COMPUTING EDUCATION (EDUCOMP), 4. , 2024, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 17-18. ISSN 3086-0741. DOI: https://doi.org/10.5753/educomp_estendido.2024.238807.