655 research outputs found
Recommended from our members
Automated Style Feedback for Advanced Beginner Java Programmers
FrenchPress is an Eclipse plug-in that partially automates the task of giving students feedback on their Java programs. It is designed not for novices but for students taking their second or third Java course: students who know enough Java to write a working program but lack the judgment to recognize bad code when they see it. FrenchPress does not diagnose compile-time or run-time errors, or logical errors that produce incorrect output. It targets silent flaws, flaws the student is unable to identify for himself because nothing in the programming environment alerts him.
FrenchPress diagnoses flaws characteristic of programmers who have not yet assimilated the object-oriented idiom. Such shortcomings include misuse of the public modifier, fields that should have been local variables, and instance variables that should have been class constants. Other rules address the all too common misunderstanding of the boolean data type. FrenchPress delivers explanatory messages in a vocabulary appropriate for advanced beginners. FrenchPress does not fix the problems it detects; the student must decide whether to change the program.
The plug-in has been tested by undergraduates in the UMass data structures and algorithms course, the target audience for FrenchPress diagnostics. A pilot study took place during winter break 2013-2014 and a preliminary classroom trial in Spring 2014. This dissertation reports results from the final classroom trial covering four programming assignments in Fall 2014. Among students whose code triggered one or more of the diagnostic rules, the percentage who modified their program in response to FrenchPress feedback varied from a high of 59% on the first project to a low of 23% on the second and fourth projects. User satisfaction surveys indicate that among students who said FrenchPress gave them suggestions for improvement, the percentage who found the feedback helpful bounced from around 55% on the first and third assignments to 32-40% on the second and fourth assignments. The lower acceptance on the second and fourth projects corresponds to a higher incidence of false positives and other confusing feedback messages. Nevertheless, the percentage of survey respondents who said they were satisfied with FrenchPress performance ranged from 56% to 66% on all four assignments
A graphical programming interface for a children's constructionist learning environment
Thesis (M.Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1998.Includes bibliographical references (p. 41).by Andrew C. Cheng.M.Eng
Functional Baby Talk: Analysis of Code Fragments from Novice Haskell Programmers
What kinds of mistakes are made by novice Haskell developers, as they learn about functional programming? Is it possible to analyze these errors in order to improve the pedagogy of Haskell? In 2016, we delivered a massive open online course which featured an interactive code evaluation environment. We captured and analyzed 161K interactions from learners. We report typical novice developer behavior; for instance, the mean time spent on an interactive tutorial is around eight minutes. Although our environment was restricted, we gain some understanding of Haskell novice errors. Parenthesis mismatches, lexical scoping errors and do block misunderstandings are common. Finally, we make recommendations about how such beginner code evaluation environments might be enhanced
Educational crowdsourcing to support the learning of computer programming
Technology has been used in the last three decades to support teaching and learning. However, educational software has frequently been under investigation to check the validity of their benefits. There is a demand for increasingly intelligent pedagogically-grounded computer technology. In this paper, we discuss adaptive, crowd sourced, and primarily educational technology; targeted at software development students. The proposed technology caters for either individual or group learning. It differentiates itself from other tutoring and programming support technologies as it will continually monitor and assess students’ performance in each phase of the educating process. It will also guide them in their learning through interactive feedback and adaptive curriculum delivery that suits both their current levels of learning and preferred learning styles.
Keywords: Technology and Education; Coding; Teaching and Learning; Computer Programming; Adaptive Software
An Overview of the Current State of the Test-First vs. Test-Last Debate
When it comes to software development, perhaps one of the most important and time consuming processes is that of software testing. In fact, early studies on software testing estimated that it could consume fifty percent or more of development costs for a product. Because of this, the ability to optimize testing to reduce testing costs can be very valuable. In this paper we compare two popular methods, test-last testing, often used in waterfall software development processes, and test-first testing, often used in Agile test driven software development methods, by reviewing recent studies on the subject. In this review we discuss the possible benefits of test-first and test-last testing and possible problems with the current data comparing these two testing methods. After that, we explore other methods in test-first testing besides test driven development, such as behavior driven development, in an attempt to and a better test-first testing model. In the end we discuss our results and potential future studies to help clarify current data
The Example Guru: Suggesting Examples to Novice Programmers in an Artifact-Based Context
Programmers in artifact-based contexts could likely benefit from skills that they do not realize exist. We define artifact-based contexts as contexts where programmers have a goal project, like an application or game, which they must figure out how to accomplish and can change along the way. Artifact-based contexts do not have quantifiable goal states, like the solution to a puzzle or the resolution of a bug in task-based contexts. Currently, programmers in artifact-based contexts have to seek out information, but may be unaware of useful information or choose not to seek out new skills. This is especially problematic for young novice programmers in blocks programming environments. Blocks programming environments often lack even minimal in-context support, such as auto-complete or in-context documentation. Novices programming independently in these blocks-based programming environments often plateau in the programming skills and API methods they use. This work aims to encourage novices in artifact-based programming contexts to explore new API methods and skills. One way to support novices may be with examples, as examples are effective for learning and highly available. In order to better understand how to use examples for supporting novice programmers, I first ran two studies exploring novices\u27 use and focus on example code. I used those results to design a system called the Example Guru. The Example Guru suggests example snippets to novice programmers that contain previously unused API methods or code concepts. Finally, I present an approach for semi-automatically generating content for this type of suggestion system. This approach reduces the amount of expert effort required to create suggestions. This work contains three contributions: 1) a better understanding of difficulties novices have using example code, 2) a system that encourages exploration and use of new programming skills, and 3) an approach for generating content for a suggestion system with less expert effort
Improving Student's Engagement Through the Use of Learning Modules, Instantaneous Feedback and Automated Marking
© 2018 IEEE. This is the accepted manuscript version of an article which has been published in final form at https://doi.org/10.1109/TALE.2018.8615306Assessment is central in effective teaching. This research sets out to discover the impact and effectiveness of timely assessment and feedback on student performance and engagement. Qualitative and quantitative data is collected from two cohorts of students with different levels of engagement. We have shown that more regular feedback and engagement resulted in a significantly improved pass rate and average mark. In conclusion, enabling timely assessment and feedback can improve student performance and give educators tools that make this process more manageable
- …