Existing studies in both psychology and software engineering have shown the importance of emotions in complex learning and programming tasks. For students who are learning to program, rich emotions are experienced whi...
详细信息
ISBN:
(纸本)9781665488105
Existing studies in both psychology and software engineering have shown the importance of emotions in complex learning and programming tasks. For students who are learning to program, rich emotions are experienced which can provide valuable feedback to their teachers. To accurately model students' emotions, this paper adopts the well-recognized model of emotions during complex learning that involves four states: engaged, confused, frustrated, and bored. To perform continuous estimation of students' emotions in a non-intrusive manner, this paper proposes to track students' programming behavior and estimate their corresponding emotional states. Compare to the existing approaches on acquiring the students' emotional states with self-reports or bio-sensors, the proposed approach is more feasible in conducting real-world, and large-scale studies for not requiring extensive human interventions or additional devices. Evaluated using data collected from a real-world course project, the proposed approach is showed to be promising for achieving an estimation accuracy of 72.06% for the above four emotional states. As an enabling technology, the proposed is potentially useful in supporting many applications and improve the quality of programming education in computer science.
With the widespread availability of massive amounts of student programming data, we are witnessing a digital gold rush as researchers attempt to make sense of students' programming behaviors. In prior research, we...
详细信息
ISBN:
(纸本)9781450336857
With the widespread availability of massive amounts of student programming data, we are witnessing a digital gold rush as researchers attempt to make sense of students' programming behaviors. In prior research, we incorporated programming data into a statistical model that accounted for a significant amount of a student's course performance. In a separate line of research, we explored how online social networking tools might be leveraged for pedagogical purposes. Rather than treating our explorations of students' programming and social behaviors as separate research spaces, we are next considering the interplay between social behavior, programming behavior, and course performance. As a first step, we incorporated online social participation into our statistical model of programming behaviors. The outcome was quite promising: we witnessed a 30% increase in our model's effect size. This result would seem to indicate that neither programming behavior nor social behavior alone can fully account for student *** by this result, we are now considering how social interaction influences programming decisions and vice versa. In particular: After receiving help on a social network, what changes are made to code? Are these changes more or less likely to move the student closer to a correct solution?How do students address coding problems when their questions are left unanswered?At what points in the programming process are students more likely to pose questions? Similarly, when are students more willing to offer help?How can we use this knowledge to better identify students who are struggling?
programming ability is the core ability for students in computer majors, but current training in programming ability lacks process observation and evaluation. Relying solely on a small number of tests is insufficient ...
详细信息
ISBN:
(纸本)9798350326970
programming ability is the core ability for students in computer majors, but current training in programming ability lacks process observation and evaluation. Relying solely on a small number of tests is insufficient in evaluating students' performance. A system that tracks and evaluates the programming process is needed to estimate students' performance, effort, and emotional states. Teachers can improve courses, identify and assist students who encounter difficulties based on that system. This paper presents a web-based Online programming Training Estimation System (OPTES) that provides an integrated environment for after-class programming assignments, which is designed to track and estimate the students' learning status continuously over a long period, e.g., a whole semester. Beyond normal functions like Online Judge systems, OPTES collects and analyzes students' progress data, estimates students' emotional states based on machine learning technologies, and visualizes these data intuitively. Correlation analysis shows an evident correlation between progress data, emotional states, and performance. This system has been successfully deployed and evaluated empirically for two semesters, used by over 500 sophomores, which also received positive feedback from the teachers who use the system.
In this work we investigate compilation behavior and error resolution time of thousands of novice programmers using two different versions of the BlueJ pedagogical Java programming environment. The two versions featur...
详细信息
ISBN:
(纸本)9781450390705
In this work we investigate compilation behavior and error resolution time of thousands of novice programmers using two different versions of the BlueJ pedagogical Java programming environment. The two versions feature different compilation and error message presentation mechanisms. BlueJ 3 is a click-to-compile environment with enforced first error message presentation whereas BlueJ 4 features automatic compilation and on-demand error message presentation. We provide an overview of compilation activity based on novices' programming time spent in different compilation states and also present differences in the time it takes students to reach successful compilation states in each version. We find that compilation activity differs for each version and that students reach successful compilations faster in BlueJ 4. Based on our findings, we discuss the effectiveness of each version and argue against the constant red underlining of code - an error indicator mechanism present in BlueJ 4 - as this can lead to false positive errors that may mislead novices during their programming tasks.
Various software-engineering problems have been solved by crowdsourcing. In many projects,the software outsourcing process is streamlined on cloud-based platforms. Among software engineering tasks,test-case developmen...
详细信息
Various software-engineering problems have been solved by crowdsourcing. In many projects,the software outsourcing process is streamlined on cloud-based platforms. Among software engineering tasks,test-case development is particularly suitable for crowdsourcing, because a large number of test cases can be generated at little monetary cost. However, the numerous test cases harvested from crowdsourcing can be high-or low-quality. Owing to the large volume, distinguishing the high-quality tests by traditional techniques is computationally expensive. Therefore, crowdsourced testing would benefit from an efficient mechanism distinguishes the qualities of the test cases. This paper introduces an automated approach —TCQA — to evaluate the quality of test cases based on the onsite coding history. Quality assessment by TCQA proceeds through three steps:(1) modeling the code history as a time series,(2) extracting the multiple relevant features from the time series, and(3) building a model that classifies the test cases based on their qualities. Step(3) is accomplished by feature-based machine-learning techniques. By leveraging the onsite coding history, TCQA can assess the test-case quality without performing expensive source-code analysis or executing the test cases. Using the data of nine test-development tasks involving more than 400 participants, we evaluated TCQA from multiple perspectives. The TCQA approach assessed the quality of the test cases with higher precision, faster speed, and lower overhead than conventional test-case qualityassessment techniques. Moreover, TCQA provided yield real-time insights on test-case quality before the assessment was finished.
The quality of software products is closely related to software developers. A good psychological state can improve the quality of software products to a certain extent. More and more researchers are beginning to study...
详细信息
ISBN:
(纸本)9781728173030
The quality of software products is closely related to software developers. A good psychological state can improve the quality of software products to a certain extent. More and more researchers are beginning to study how to effectively identify the psychological state of developers to help their work. However, many of these works have a significant intrusion into developers and are not suitable for long-term deployment in real enterprises. In this paper, we present a tool for IDE-based programming activity data collection for software developers. A conceptual model is presented for raw data collection and hierarchical concept encapsulation. We implement this tool in the form of an IDE plug-in for popular IDEs including IntelliJ IDEA and Android Studio, which can collect and process developers' in-IDE activity data in a non-intrusive and privacy-preserving manner. To demonstrate its usefulness, we deploy the proposed tool in a real enterprise environment. Based on this tool and the data collected in the real enterprise environment, we build applications including programming activity statistics and flow state recognition. The experiment results suggest the proposed approach can effectively capture the detailed programming activities and perform flow state recognition. The recognition accuracy is 80.14%.
This study investigated young children's computational thinking (CT) development by integrating ScratchJr into a programming curriculum. Twelve third graders (six males and six females) voluntarily participated in...
详细信息
This study investigated young children's computational thinking (CT) development by integrating ScratchJr into a programming curriculum. Twelve third graders (six males and six females) voluntarily participated in an experiment-based computer class conducted at a public elementary school in Taiwan. This study adopted a case study methodology to investigate research questions in one specific case (8-week CT educational training). A one-group quasi-experimental pretest and posttest design with the support of qualitative observation was used to examine four research topics: CT competence progress, programming behaviors in a CT framework, factors influencing CT competence, and learning responses to CT training. The quantitative results indicated that students immersing in weekly programming projects significantly improved in terms of their CT competence, which was mostly retained 1 month after completion of the class. The programming behaviors indicated that students' CT concepts (sequence, event, and parallelism) and practice (testing and debugging as well as reusing and remixing) significantly improved. Moreover, parents' active involvement in take-home assignments influenced students' long-term CT competence retention. The qualitative results indicated that students enjoyed using tablet computers to learn ScratchJr programming and demonstrated various leaning behaviors in a three-stage instructional design model.
Many researchers have investigated the difficulties faced by novice programmers. However, these approaches have so far focused primarily on the identification and correction of common syntax errors, or that of topic d...
详细信息
ISBN:
(纸本)9781450358057
Many researchers have investigated the difficulties faced by novice programmers. However, these approaches have so far focused primarily on the identification and correction of common syntax errors, or that of topic difficulty in the CS1 curriculum. Meanwhile, poor coding practices adopted by students have gone mostly unaddressed. While these practices may not necessarily lead to erroneous code, they may nonetheless indicate areas of difficulty and lead to poorly structured programs. To address these issues, our project examines students' coding habits and common errors in CS1 exercises gathered from 77 first-year students. This data was collected in real time so that we may later reconstruct the thought process of the student while solving the programming exercises. To assist our analysis, we built a code visualizer that animates the programming process dynamically and summarizes error metrics simultaneously. Our ultimate goal is to use the code visualizer to help either an instructor or a student to identify poor programming practices during the coding process. With the error metrics gathered, an instructor can inspect potential improvements in coding behaviors for an individual student at a given point in time or over time, and identify bad coding habits common to populations of students.
Observation is important when we teach programming. It can help identify students that struggle, concepts that are not clearly presented during lectures, poor assignments, etc. However, as development tools become mor...
详细信息
ISBN:
(纸本)9781450334402
Observation is important when we teach programming. It can help identify students that struggle, concepts that are not clearly presented during lectures, poor assignments, etc. However, as development tools become more widely available or courses move off-campus and online, we lose our ability to naturally observe students. Online programming environments provide an opportunity to record how students solve assignments and the data recorded allows for in-depth analysis. For example, file activities, mouse movements, text-selections, and text caret movements provide a lot of information on when a programmer collects information and what task is currently worked on. We developed CSQUIZ to allow us to observe students on our online courses through data analysis. Based on our experience with the tool in a course, we find recorded sessions a sufficient replacement for natural observations.
Research over the past fifty years into predictors of programming performance has yielded little improvement in the identification of at-risk students. This is possibly because research to date is based upon using sta...
详细信息
ISBN:
(纸本)9781450326056
Research over the past fifty years into predictors of programming performance has yielded little improvement in the identification of at-risk students. This is possibly because research to date is based upon using static tests, which fail to reflect changes in a student's learning progress over time. In this paper, the effectiveness of 38 traditional predictors of programming performance are compared to 12 new data-driven predictors, that are based upon analyzing directly logged data, describing the programming behavior of students. Whilst few strong correlations were found between the traditional predictors and performance, an abundance of strong significant correlations based upon programming behavior were found. A model based upon two of these metrics (Watwin score and percentage of lab time spent resolving errors) could explain 56.3% of the variance in coursework results. The implication of this study is that a student's programming behavior is one of the strongest indicators of their performance, and future work should continue to explore such predictors in different teaching contexts.
暂无评论