Flipped classroom is one of the important teaching modes among many novel teaching methods in recent years, students watch the video in the pre-class. However, if students cannot focus on the pre-class video learning ...
详细信息
Developing problem solving skills through learningprogramming has become a real challenge. Problem-solving skills are fundamental to learning computer programming and can be developed during learning. Teachers focus ...
详细信息
ISBN:
(纸本)9789897585029
Developing problem solving skills through learningprogramming has become a real challenge. Problem-solving skills are fundamental to learning computer programming and can be developed during learning. Teachers focus more on the syntax of the languages than on the development of problem solving skills. We present a conceptual framework to promote problem-solving skills in learning computer programming. This framework is based on an IDE which integrates two components. The first one is an explicit guidance to support the acquisition of skills related to different stages of a problem-solving method. It consists in explicitly following the steps of the process with activities that develop related skills. The second one is a semantic feedback system to develop problem-solving skills.
In the education of introductory programming, people often adopt block-based visual programming languages such as Scratch and Blockly that allow programmers to construct programs by placing visual blocks. A previous s...
详细信息
ISBN:
(纸本)9783030779429;9783030779436
In the education of introductory programming, people often adopt block-based visual programming languages such as Scratch and Blockly that allow programmers to construct programs by placing visual blocks. A previous study showed that a block-based language was more effective than a text-based language in introductory programming education. However, even with such block-based languages, it is still necessary for novices to learn programming in traditional ways, for example, by hearing lectures, reading textbooks, or watching tutorial videos. In this paper, we propose a video game-like approach to supporting novices in learningprogramming. We introduce two concepts into a block-based programming system: one is a staging mechanism that allows novices to gradually obtain more complex means of programming;the other is an assistant chatbot that helps novices to gain knowledge of programming. We implemented the system by applying our approach to turtle graphics. We present results of the experiment that we conducted to evaluate our approach.
Automatic learning-problem generation saves effort on creating problem banks. It allows creating banks containing thousands problems, which prevents cheating, allows training until mastery, and lets intelligent tutori...
详细信息
Automatic learning-problem generation saves effort on creating problem banks. It allows creating banks containing thousands problems, which prevents cheating, allows training until mastery, and lets intelligent tutoring systems find problems for every learning situation. We present a learning problem generator ToP, designed to generate problems for introductory programming courses from open-source code. It supports teaching determining the order of expression evaluation and program tracing. It was integrated into the CompPrehension tutor to generate initial problem banks problems and update them on the fly. It was used in studies of learning-problem generation that demonstrated that generated problems are indistinguishable from human-authored ones.
This research aims to realize a novel method for learning history analysis based on the learning processes in programming exercise classes. This paper proposes the sequential pattern mining method specialized for anal...
详细信息
ISBN:
(纸本)9781479962488
This research aims to realize a novel method for learning history analysis based on the learning processes in programming exercise classes. This paper proposes the sequential pattern mining method specialized for analysis of learning histories of programing learning. This paper initially describes a data processing method which investigates learning transitions as sequences based on the analyses of learners' source codes and compile errors generated in their exercises. Next, this paper describes an analysis support tool. This tool assists collection of learning histories, generation of sequence based on analysis of the histories, extraction of the noteworthy patterns based on SPADE algorithm and acquisition of findings from the extracted patterns. This tool enables to effectively analyze the relationships between learning processes in programming exercises and learning situations. Such analysis can contribute to practical grasping of learning situations in accordance with learning process and acquisition of advanced findings based on it.
Social dimension plays a crucial role in the learning process. The use of technological resources to stimulate and mediate the interaction between students is known as Computer-supported collaborative learning (CSCL)....
详细信息
ISBN:
(纸本)9781728109305
Social dimension plays a crucial role in the learning process. The use of technological resources to stimulate and mediate the interaction between students is known as Computer-supported collaborative learning (CSCL). Despite being widely used in programming education, the summarization of the academic literature about this topic is scarce. To create that body of knowledge, a systematic literature review was performed. The findings provide an understanding of how collaboration is explored in introductory programming, resources used to stimulate them and challenges in the process. Opportunities for future research are discussed, especially related to motivation, self-efficacy and engagement in CSCL, and the exploitation of learning analytics.
programming is an essential skill in computer science and across a wide range of engineering disciplines. However, errors, often referred to as 'bugs' in code, can be challenging to identify and rectify for bo...
详细信息
programming is an essential skill in computer science and across a wide range of engineering disciplines. However, errors, often referred to as 'bugs' in code, can be challenging to identify and rectify for both students learning to program and experienced professionals. Understanding, identifying, and effectively addressing these errors are critical aspects of programming education and software development. To aid in understanding and classifying these errors, we propose a multi-label error classification approach for source code using fine-tuned BERT models (BERT_Uncased and BERT_Cased). The models achieved average classification accuracies of 90.58% and 90.80%, exact match accuracies of 48.28% and 49.13%, and weighted F1 scores of 0.796 and 0.799, respectively. Precision, Recall, Hamming Loss, and ROC-AUC metrics further evaluate the effectiveness of our models. Additionally, we employed several combinations of large language models (CodeT5, CodeBERT) with machine learning classifiers (Decision Tree, Random Forest, Ensemble learning, ML-KNN), demonstrating the superiority of our proposed approach. These findings highlight the potential of multi-label error classification to advance programming education, software engineering, and related research fields.
The information society is part of modern life, and algorithmic thinking and programming are relevant to everybody, regardless of educational background. Today's world needs professionals with computing competenci...
详细信息
The information society is part of modern life, and algorithmic thinking and programming are relevant to everybody, regardless of educational background. Today's world needs professionals with computing competencies. Higher education programming classes usually use text-based programming languages to develop programming competencies, usually without success for all students. Traditional programming languages consider syntax barriers that complicate their adoption and usefulness for students. Block-based programming languages such as SCRATCH and ALICE permit the development of programming competencies without text coding and syntax restrictions to solve that issue. There are different research works on SCRATCH experiences, but not many experiences on how to use ALICE overall in higher education. This article aims to evaluate the effectiveness of the ALICE programming language in enhancing programming learning outcomes for university students and addressing the limited number of empirical studies of ALICE in higher education contexts. The research involved a literature review to provide a theoretical foundation, followed by an experimental phase that involved two groups: the control group, which followed the traditional programming instruction method with a text-based programming language, and the experimental group, which used the block-based ALICE environment. The experimental group achieved better results with an average score of 80, while the control group scored 65 points on a 100-point scale. The results obtained highlight the effectiveness of the ALICE environment in supporting the programming learning process for first-level Software Engineering university students.
With the rapid development of generative AI technology, programming learning aids have become essential resources for enhancing students' programming capabilities. This study developed an intelligent tutoring syst...
详细信息
With the rapid development of generative AI technology, programming learning aids have become essential resources for enhancing students' programming capabilities. This study developed an intelligent tutoring system, ITS-CAL, powered by a large language model (LLM) to provide students with immediate and hierarchical learning feedback, particularly in scenarios with limited class time and large student populations. The system helps students overcome challenges encountered during the learning process. A mixed-method approach, combining quantitative and qualitative analyses, was employed to investigate the usage patterns of the system's three primary functions-Hint, Debug, and User-defined Question-and their impact on learning outcomes among students with varying knowledge levels. The results indicated that students with high knowledge levels tended to use the Hint and User-defined Question functions moderately, while those with lower knowledge levels heavily relied on the Hint function but did not achieve significant improvements in learning outcomes. Overall, students who used ITS-CAL in moderation achieved the highest pass rate (72.22%), whereas excessive reliance on ITS-CAL appeared to diminish independent problem-solving abilities. Additionally, students generally provided positive feedback on the system's convenience and its role as a learning aid. However, they highlighted areas for improvement, particularly in the Debug function and the quality of Hint content. This study contributes to the field by demonstrating the application potential of LLMs in programming education and offering valuable empirical insights for designing future programming learning assistance systems.
programming is an essential skill in computer science and in a wide range of engineering-related disciplines. However, occurring errors, often referred to as "bugs" in code, can indeed be challenging to iden...
详细信息
programming is an essential skill in computer science and in a wide range of engineering-related disciplines. However, occurring errors, often referred to as "bugs" in code, can indeed be challenging to identify and rectify, both for students who are learning to program and for experienced professionals. These errors can lead to unexpected behaviors in programming. Understanding, finding, and effectively dealing with errors is an integral part of programming learning as well as software development. To classify the errors, we propose a multi-label error classification of source code for dealing with programming data by using the ML-KNN classifier with CodeT5 embeddings. In addition, several deep neural network (DNN) models, including GRU, LSTM, BiLSTM, and BiLSTM-A (attention mechanism) are also employed as baseline models to classify the errors. We trained all the models by using a large-scale dataset (original error labels) as well as modified datasets (summarized error labels) of the source code. The average classification accuracy of the proposed model is 95.91% and 84.77% for the original and summarized error-labeled datasets, respectively. The exact match accuracy is 22.57% and 27.22% respectively for the original and summarized error-labeled datasets. The comprehensive experimental results of the proposed approach are promising for multi-label error classification over the baseline models. Moreover, the findings derived from the proposed approach and data-driven analytical results hold significant promise for error classification, programming education, and related research endeavors.
暂无评论