Supporting the Acquisition of Programming Skills with Program Construction Patterns
The applications of information technology systems are constantly increasing, as is the need for capable programmers. This makes the question of how to better learn programming more important than ever. Also, beginner come into contact with programming environments earlier and thus have different previous experiences. Training must address the different skills of individual programmers. Learning to program and creating software systems is investigated from two areas. Researchers in computer science education strive to understand, support and hierarchically divide the acquisition of basic programming skills. Researchers in software engineering are concerned with the measurement of programming experience. A common feature of research in these areas is to focus on understanding, reading, and mentally executing programs. Although these are important skills in programming, an analysis of the independent creation of new program code is missing. The aim of this thesis is to contribute by analyzing program construction sequences. In a literature summary, the measurement of programming experience and the hierarchy of levels of programming expertise is aggregated. The main research work consists of the identification of strategies and patterns used by programmers with different programming experience to create new program code. The program construction sequences of test subjects from three groups (school students, university students, professional programmers) are collected and analyzed using quantitative and qualitative analysis methods. The identified patterns can be related to the measured programming experience. Finally, the influence of the application of patterns on the acquisition of programming skills is evaluated in an experiment.