In computer science education, various teaching and learning methods exist to teach novice students programming. However, students' source code primarily serves as the basis for grading. Usually, it is not conside...
详细信息
ISBN:
(纸本)9783031543265;9783031543272
In computer science education, various teaching and learning methods exist to teach novice students programming. However, students' source code primarily serves as the basis for grading. Usually, it is not considered to identify key concepts and skills required to complete the course and understand the student's learning process. This paper presents a system that automatically analyzes source code and identifies the most relevant concepts for first-semester students to pass a university-level programming course. This system uses different tools to detect errors and vulnerabilities, calculate metrics, and generate 55 code-related features from the students' source codes. The source code submissions of 1,346 students in two cohorts have been considered. Further, an expert study evaluated which of those features can be assigned to concrete programming concepts and how relevant these concepts are for programming education. Furthermore, we used machine learning methods to analyze the most challenging concepts, where students tend to produce the highest number of errors during their learning process. Our findings indicate that understanding and applying dynamic memory significantly impacts the students' course success. This study provides empirical evidence of the most important programming concepts in C within the CS1 course. Educators can use these results to optimize teaching materials and increase assistance for challenging and crucial concepts, which might reduce the student dropout rate. Our approach further shows how a code-driven approach can be used to analyze a university-level programming course and get insights into its academic success.
The development of automated Production Systems (aPS) is an interdisciplinary process, where an increasing part of the system's functionality is realized in the respective control software. Such software projects ...
详细信息
ISBN:
(纸本)9781728148786
The development of automated Production Systems (aPS) is an interdisciplinary process, where an increasing part of the system's functionality is realized in the respective control software. Such software projects commonly utilize programming languages standardized in IEC 61131-3. To measure, improve, and maintain source code while also promoting trust in its capabilities, an objective assessment of its characteristics is necessary. Software metrics are a means for such an evaluation. While there is an abundance of metrics available from the classical software engineering domain, these metrics focus on textual programming languages. IEC 61131-3, however, defines graphical languages, which are not targeted by renowned concepts in computer science. Besides, former research demonstrates that software engineering metrics for textual languages need adaption to be applicable in the aPS domain. Thus, this paper introduces a metrics suite consisting of adapted and newly developed measures, which focus on the graphical IEC 61131-3 language Function Block Diagram. The results are prototypically implemented in one of the leading integrated development environments for IEC 61131-3 and then evaluated regarding their understandability and applicability by practitioners at a German aPS manufacturer.
暂无评论