{'fraction_non_alphanumeric': 0.01524390243902439, 'fraction_numerical': 0.0, 'mean_word_length': 4.760233918128655, '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}}
Software Evolution and Profiling in a Competitive Environment

In this paper, we present our experience with software evolution and profiling at Master level of a technical university. We defined a set of tasks to find and solve an issue of an existing open source project on the web, extended by software profiling and improvement. This improvement has to be proved by application of a suitable software metric as well. The main aim of such a task is to emphasise the importance of program comprehension in software evolution. Our teaching approach on software evolution addresses comprehension in three ways: read, measure and use. Reading code is also important when preparing for evolution, measuring gives a second view on the system, but trying it out is the only way to complete comprehension. We also focus on the difference in students’ behaviour that shows a kind of sobriety. We think this modest approach comes from the lack of experience and identify the need for change.