Systematic mapping on problem solving in introductory programming discipline with software testing

Abstract


Software testing is a way of dealing with the difficulties faced in the programming learning process for newer students in Computing undergraduate programs. The objective of this research is to identify studies on this topic with relation to problem solving in introductory programming disciplines. For this, a systematic mapping was done based on the resolution of problems in introductory programming courses with the application of software testing techniques and TDD (Test-Driven Development) as a way to better structure the student’s logical reasoning. Several approaches were identified, with positive results regarding problem solving in introductory programming courses using software testing.
Keywords: Computer Education, TDD, Software Testing

References

Beaubouef, T. e Mason, J. (2005). Why the high attrition rate for computer science students: Some thoughts and observations. SIGCSE Bulletin, 37(2):103–106.

Bell, J., Linn, M., e Clancy, M. (1994). Knowledge Integration in Introductory Programming: CodeProbe and Interactive Case Studies. Interactive Learning Environments, 4(1):75–95.

Bennedsen, J. e Caspersen, M. E. (2019). Failure rates in introductory programming: 12 years later. Inroads, 10(2):30–36.

Brennan, K. e Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. In Annual Meetting 2012 – American Educational Research Association, p. 1–25.

Buffardi, K. e Edwards, S. H. (2012). Exploring influences on student adherence to test-driven development. In Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education, p. 105–110, Haifa, Israel. ACM.

Caspersen, M. e K¨olling, M. (2006). A novice’s process of object-oriented programming. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA, volume 2006, p. 892–900, Portland, OR.

Cohen, J. (1960). A coefficient of agreement for nominal scales. Educational and Psychological Measurement, 20(1):37–46.

De Souza, D., K¨olling, M., e Barbosa, E. (2017). Most common fixes students use to improve the correctness of their programs. In Proceedings - Frontiers in Education Conference, FIE, volume 2017-October, p. 1–9. IEEE. ISSN: 15394565.

Denny, P., Prather, J., Becker, B. A., Albrecht, Z., Loksa, D., e Pettit, R. (2019). A Closer Look at Metacognitive Scaffolding: Solving Test Cases Before Programming. In Proceedings of the 19th Koli Calling International Conference on Computing Education Research, p. 1–10, Koli, Finland. ACM.

Edwards, S. H. (2004). Using software testing to move students from trial-and-error to reflection-in-action. In 35th SIGCSE Technical Symposium on Computer Science Education, p. 26–30, New York, NY, EUA. ACM.

Edwards, S. H., B¨orstler, J., Cassel, L. N., Hall, M. S., e Hollingsworth, J. (2008). Developing a common format for sharing programming assignments. ACM SIGCSE Bulletin, 40(4):167–182.

Garousi, V., Rainer, A., Lauv°as, P., e Arcuri, A. (2020). Software-testing education: A systematic literature mapping. Journal of Systems and Software, 165.

Hilton, A. D., Lipp, G. M., e Rodger, S. H. (2019). Translation from Problem to Code in Seven Steps. In Proceedings of the ACM Conference on Global Computing Education, p. 78–84, Chengdu,Sichuan, China. ACM.

Hsia, P. e Petry, F. (1980). A Framework for Discipline in Programming. IEEE Transactions on Software Engineering, SE-6(2):226–232.

Janzen, D. S., Clements, J., e Hilton, M. (2013). An evaluation of interactive test-driven labs with WebIDE in CS0. In 35th International Conference on Software Engineering, p. 1090–1098, Piscataway, NJ, EUA. IEEE.

Kitchenham, B. A., Budgen, D., e Brereton, O. P. (2010). The value of mapping studies –a participant-observer case study. In 14th International Conference on Evaluation and Assessment in Software Engineering (EASE), p. 1–9, Swinton, Reino Unido. British Computer Society.

Koulouri, T., Lauria, S., e Macredie, R. D. (2015). Teaching introductory programming: A quantitative evaluation of different approaches. Transactions on Computing Education, 14(4):26:1–26:28.

Mendonça, A., Guerrero, D., e Costa, E. (2009). An approach for problem specification and its application in an Introductory Programming Course. In 2009 39th IEEE Frontiers in Education Conference, p. 1–6. ISSN: 2377-634X.

Mourão, A. B. (2017). Uma proposta da eficiência do uso da metodologia ativa baseada em problemas, utilizando dojo de programação, aplicada na disciplina de lógica de programação. (10):667–676.

Pachulski Camara, B. H. e Graciotto Silva, M. A. (2016). A Strategy to Combine Test-Driven Development and Test Criteria to Improve Learning of Programming Skills. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education, p. 443–448, Memphis, Tennessee, USA. ACM.

Petersen, K., Feldt, R., Mujtaba, S., e Mattsson, M. (2008). Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE 2008), p. 68–77, Swindon, Reino Unido. BCS Learning & Development.

Salehi, S., Wang, K. D., Toorawa, R., e Wieman, C. (2020). Can majoring in computer science improve general problem-solving skills? In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, p. 156–161, New York, NY, EUA. ACM.

Scatalon, L. P., Barbosa, E. F., e Garcia, R. E. (2017). Challenges to integrate software testing into introductory programming courses. In 2017 IEEE Frontiers in Education Conference (FIE), p. 1–9, Piscaway, NY, EUA. IEEE.

Scatalon, L. P., Carver, J. C., Garcia, R. E., e Barbosa, E. F. (2019). Software testing in introductory programming courses: A systematic mapping study. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, p. 421–427, New York, NY, EUA. ACM.

Utting, I., Tew, A. E., McCracken, M., Thomas, L., Bouvier, D., Frye, R., Paterson, J., Caspersen, M., Kolikant, Y. B.-D., Sorva, J., e Wilusz, T. (2013). A fresh look at novice programmers’ performance and their teachers’ expectations. In 18th Annual Conference on Innovation and Technology in Computer Science Education, p. 15–32, New York, NY, EUA. ACM.

Valle, P., Barbosa, E. F., e Maldonado, J. (2015). Um mapeamento sistemático sobre ensino de teste de software. In SBC, editor, 26th Brazilian Symposium on Informatics in Education, Porto Alegre, RS,. SBC.

Watson, C. e Li, F. W. B. (2014). Failure rates in introductory programming revisited. In Proceedings of the 2014 Conference on Innovation and Technology in Computer Science Education, p. 39–44, New York, NY, EUA. ACM.
Published
2021-07-20
FEITOSA, Yuri Rafael Grajefe; SILVA, Marco Aurélio Graciotto; FABRI, José Augusto. Systematic mapping on problem solving in introductory programming discipline with software testing. In: WORKSHOP ON COMPUTING EDUCATION (WEI), 29. , 2021, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 358-367. ISSN 2595-6175. DOI: https://doi.org/10.5753/wei.2021.15927.