{'fraction_non_alphanumeric': 0.016801493466085875, 'fraction_numerical': 0.008711885500933417, 'mean_word_length': 5.184615384615385, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An empirical study on the impact of introducing a modeling tool in a Requirement Engineering course

In numerous Programming and Software Engineering courses, students are asked to program on paper. This has supporters and detractors. Among its advantages, supporters claim that programming on paper allows students to focus on functionality, avoiding the distractions caused by syntax and without limiting their thinking to a specific programming language or paradigm. Detractors claim that this method lacks advanced capabilities provided by IDEs such as syntax check and auto-completion. More importantly, it does not give the opportunity to execute and test the code, which prevents students from discovering bugs.The state of the art has studied the benefits and disadvantages of programming on paper versus computer for general-purpose languages like Java and C with students of initial courses. Nevertheless, to the best of our knowledge, no study has been done targeting formal languages like OCL, which are taught in advanced courses.In this paper, we present our experience after introducing a modeling tool for the specification of OCL constraints in a Requirements Engineering course. This course is optional and is offered in the third and fourth years of the Computer Engineering degree. Our study covers two academic years, 2019 and 2020, in which there were 136 and 161 students enrolled, respectively. We present the context and design of our experiment, the results obtained from the empirical study we have performed and our conclusions, which support the suitability of the use of tools.