5,250 research outputs found

    A proposal of recommendation function for element fill-in-Blank problems in java programming learning assistant system

    Get PDF
    Purpose To advance Java programming educations, the authors have developed a Web-based Java programming learning assistant system (JPLAS). It offers the element fill-in-blank problem (EFP) for novice students to study Java grammar and basic programming skills by filling in the missing elements in a source code. An EFP instance can be generated by selecting an appropriate code, and applying the blank element selection algorithm. As it is expected to cover broad grammar topics, a number of EFP instances have been generated. This paper aims to propose a recommendation function to guide a student solving the proper EFP instances among them. Design/methodology/approach This function considers the difficulty level of the EFP instance and the grammar topics that have been correctly answered by the student, and is implemented at the offline answering function of JPLAS using JavaScript so that students can use it even without the Internet connections. Findings To evaluate the effectiveness of the proposal, 85 EFP instances are prepared to cover various grammar topics, and are assigned to a total of 92 students in two universities in Myanmar and Indonesia to solve them using the recommendation function. Their solution results confirmed the effectiveness of the proposal. Originality/value The concept of the difficulty level for an EFP instance is newly defined for the proper recommendation, and the accuracy in terms of the average numbers of answer submission times among the students is verified

    A Proposal of Code Completion Problem for Java Programming Learning Assistant System

    Get PDF
    To enhance Java programming educations in schools, we have developed a Web-based Java Programming Learning Assistant System (JPLAS) that provides a variety of programming assignments to cover different learning stages. For the first stage, JPLAS offers the element fill-in-blank problem where students study the grammar and code reading through filling the blank elements, composed of reserved words, identifiers, and control symbols, in a high-quality code. Unfortunately, it has been observed that students can fill the blanks without reading the code carefully, because the choice is limited for each blank. In this paper, we propose a code completion problem as a generalization of the element fill-in-blank problem. To solve the drawback, it does not explicitly show blank locations in the code, which expects students to carefully read the code to understand the grammar and code structure. The correctness of the answer is verified through string matching of each statement with the filled elements and the corresponding correct one. Besides, to encourage students to study readable code writing, the correct statement satisfies the coding rules including the spaces. For evaluations, we generated six code completion and element fill-in-blank problems respectively, and asked ten students in two universities to solve them. Their solution results show that the code completion problem is much harder than the element fill-in-blank problem, and requires far deeper code reading and understanding of coding rules

    Is comprehension or application the more important skill for first-year computer science students?

    Get PDF
    Time and performance data was collected on a class of 147 Computer Science 1B students, where students carried out a design and programming task based on one that had been seen in a previous examination. Given that students had previously worked through the task, we assessed their comprehension of that material in this assignment. We were then able to collect the performance data and correlate this with the examination marks for the student to determine if there was a relationship between performance in the examination and performance in this practical. We were also able to correlate the performance in this practical with the time taken to complete the practical, and with the student’s statement as to whether they remembered how they had solved it in their previous attempt. By doing this, we discovered that the students who remembered having solved it previously had a significantly higher mean examination mark than those students who claimed not to remember it. Unsurprisingly, students also performed better in this assignment if they had performed better in the examination. The mean time to complete the task was significantly less for those students who claimed to remember the task. In this task, the comprehension of the original material and the ability to recall it was of more importance than the ability to apply knowledge to an unseen problem.Nickolas J. G. Falkne

    Expert-Generated and Auto-Generated Socratic Tutoring Systems For Code Comprehension

    Get PDF
    Programming skills are a vital part of many disciplines but can be challenging to teach and learn. Thus, the programming courses are considered difficult and a major stumbling block. To overcome these challenges, students could benefit from extensive individual support such as tutoring, but there are simply not enough qualified tutors available to meet rising demands.A potential solution is the development of intelligent tutoring systems (ITSs), which offer individualized, one-on-one instruction. Such systems can offer the support to make programming instruction more effective, scalable and reduce existing teachers\u27 workloads.This dissertation demonstrates how conversational ITSs and the Socratic method of teaching can improve a novice\u27s understanding of programming concepts and, in particular, the scaffolding of code comprehension processes. Furthermore, this work provides a novel method to automatically author a Socratic dialogue-based ITS. Indeed, two major outcomes of this work are a Socratic dialogue-based ITS and an automated dialogue authoring tool, which generates full Socratic dialogue from Java source code.The key objectives of this dissertation were, first, to determine whether the Socratic method would be effective at eliciting learners to engage in self-explanations with the help of the Socratic Tutor ITS and, second, to assess the quality of Socratic Author\u27s auto-generated tutorial dialogue. Thus, the work presented here sought to answer two main research questions: (1) can a Socratic ITS lead to improved code comprehension? and (2) to what extent can Socratic dialogue be generated automatically?In sum, this research helps establish a relationship between code comprehension and the use of the Socratic method in learning computer programming. Furthermore, the work introduces a novel approach for generating Socratic dialogue from source code with examples for the Java programming language. The auto-authoring tool could help teachers and ITS developers create tutorial dialogues automatically from Java code without requiring nondomain knowledge. To the best of our knowledge, no such auto-generation of tutorial dialogues from source code has been done before and thus constituting a premiere

    Facilitating WeBWorK Problem Authoring

    Get PDF
    The goal of this project was to create a graphical user interface to simplify the authoring of problems for WeBWorK, an online homework system. Interviews of potential users and research of similar user- interface applications aided in designing the interface. Tutorials for potential users were also created. Professors in the Mathematical Sciences Department at WPI tested the interface and/or the tutorials; improvements to the interface and tutorials were made based off their feedback

    A review of Australasian investigations into problem solving and the novice programmer

    Get PDF
    This Australasian focused review compares a number of recent studies that have identified difficulties encountered by novices while learning programming and problem solving. These studies have shown that novices are not performing at expected levels and many novices have only a fragile knowledge of programming, which may prevent them from learning and applying problem solving strategies. The review goes on to explore proposals for explicitly incorporating problem solving strategy instruction into introductory programming curricula and assessment, in an attempt to produce improved learning outcomes for novices. Finally, directions suggested by the reviewed studies are gathered and some unanswered questions are raised

    Programming Learning Requirements Based on Multi Perspectives

    Get PDF
    Students occasionally find it difficult to learn new programming languages. They often confront unfamiliar programming terms and having difficulty to visualize the processes that happen in computer memory. Weak students find this a burden and end up memorizing the processes without understanding them and their workings. This situation invariably leads students to obtain low grades in their programming subjects. The preliminary investigation of survey was produce in previous work; the results showed that students have experienced ineffective learning, lack of interest towards this course and lack of motivation. Therefore, the main objective of this study is to identify programming learning requirements based on previous work and verified from two perspectives (experts and students). Finally, the result was a group of requirements that should be considered in programming language cours

    A Study of Keystroke Data in Two Contexts : Written Language and Programming Language Influence Predictability of Learning Outcomes

    Get PDF
    We study programming process data from two introductory programming courses. Between the course contexts, the programming languages differ, the teaching approaches differ, and the spoken languages differ. In both courses, students' keystroke data -- timestamps and the pressed keys -- are recorded as students work on programming assignments. We study how the keystroke data differs between the contexts, and whether research on predicting course outcomes using keystroke latencies generalizes to other contexts. Our results show that there are differences between the contexts in terms of frequently used keys, which can be partially explained by the differences between the spoken languages and the programming languages. Further, our results suggest that programming process data that can be collected non-intrusive in-situ can be used for predicting course outcomes in multiple contexts. The predictive power, however, varies between contexts possibly because the frequently used keys differ between programming languages and spoken languages. Thus, context-specific fine-tuning of predictive models may be needed.Peer reviewe
    corecore