Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2000, Proceedings of the fifth annual CCSC northeastern …
AI
The paper discusses the use of Java's Reflection API to provide automated feedback for beginning programmers working on GUI applications, specifically Java applets. By leveraging reflection, instructors can create focused tests that enhance both the pedagogical approach and the user experience, addressing common pitfalls in applet development. The study suggests that this method not only improves the feedback process but also helps instructors think critically about potential programming errors.
Lecture Notes in Computer Science, 2003
This paper presents experiments on formal validation of Java applets. It describes a tool that has been developed at the Gemplus Research Labs. This tool allows to formally prove Java classes annotated with JML, an annotation language for Java that provides a framework for specifying class invariants and methods behaviours. The foundations and the main features of the tool are presented. The most innovative part of the tool is that it is tailored to be used by Java programmers, without any particular background in formal methods. To reduce the difficulty of using formal techniques, it aims to provide a user-friendly interface which hides to developers most of the formal features and provides a "Java style view" of lemmas.
Computer Languages, Systems & Structures, 2018
Assessment is an integral part of education often used to evaluate students, but also to provide them with feedback. It is essential to ensure that assessment is fair, objective, and equally applied to all students. This holds, for instance, in multiple-choice tests, but, unfortunately, it is not ensured in the assessment of source code, which is still a manual and error-prone task. In this paper, we present JavAssess, a Java library with an API composed of around 200 methods to automatically inspect, test, mark, and correct Java code. It can be used to produce both black-box (based on output comparison) and white-box (based on the internal properties of the code) assessment tools. This means that it allows for marking the code even if it is only partially correct. We describe the library, how to use it, and we provide a complete example to automatically mark and correct a student's code. We also report the use of this system in a real university context to compare manual and automatic assessment in university courses. The study reports the average error in the marks produced by teachers when assessing source code manually, and it shows that the system automatically assesses around 50% of the work.
The 10th Computer Science Education Research Conference
The problem with manual code review for assignments is that students receive feedback when they are already working on the next assignment. Students have neither the chance nor the mindset to revisit their solutions. In our course on object-oriented programming, a team of teaching assistants reviews student solutions after the deadline and publishes individually tailored feedback based on a grading manual. To make the code review more effective, we implemented automatic checking of a significant part of our evaluation criteria. Students receive this automatic review instantaneously and can improve their solution based on this feedback. This system is not intended to eliminate manual grading. Rather, it helps students through immediate feedback, but also teaching assistants who can build upon the automatically generated feedback. Our system, Personal Prof, inspects the solutions' abstract syntax tree, but more importantly has access to a semantic database of Javaspecific meta-information. This enables us to automate a significant part of the code review. We used the tool during the spring semester of the academic year 2019/2020 to check the assignments of 400 students, for a total of 3800 submissions. Students appreciate and use the automatic feedback. Existing complaints about late reviews reported in the previous course evaluations disappeared with Personal Prof.
2015
In many disciplines in Science, including Computer Science, solving problems is an essential part of learning. Solving problems not only helps improve retention (Farnsworth, 1994), but also provides the practice necessary for students to be able to apply their learning. In this paper, we report on the use of Java applets to automatically generate problems on a given topic. Such applets may be used by students to reinforce their learning by solving problems online. The applets may be used as supplements to textbooks, for administering tests online, and as online resources in distance learning courses. We refer to the Java applets built to automatically generate problems, as problets. In the paper, we will discuss the characteristics and components of problets, and present the design of two problets that we have implemented for static scope in Pascal and nested selection statements in C++.
ACM SIGCSE Bulletin, 2007
AutoGrader is a framework developed at Miami University for the automatic grading of student programming assignments written in the Java programming language. Auto-Grader leverages the abstract concept of interfaces, as implemented by the Java interface language construct, in both the assignment and grading of programming assignments. The use of interfaces reinforces the role of procedural abstraction in object-oriented programming and allows for a common API to all student code. This common API then enables automatic grading of program functionality. AutoGrader provides a simple instructor API and enables the automatic testing of student code through the Java language features of interfaces and reflection 1 . AutoGrader also supports static code analysis using PMD [4] to detect possible bugs, dead code, suboptimal, and overcomplicated code. While AutoGrader is written in and only handles Java programs, this style of automated grading is adaptable to any language that supports (or can mimic) named interfaces and/or abstract functions and that also supports runtime reflection.
2020
The teaching of programming process is essential to prepare students for the development of computer applications and software solutions. During the last decade, a variety of tools facilitating automatic validation of programming code have been developed. In this context, authors start to analyze and studying some tools with this potential and a possible use with pedagogical purposes. For the last three years a study has been carried out related with the implementation of VPL (Virtual Programming Lab) a plug-in developed specifically for Moodle (Modular Object-Oriented Dynamic Learning Environment) on a Java-based programming discipline during the Informatics Engineering degree of the Informatics Engineering Department (DEI) from the School of Engineering of Polytechnic Institute of Porto (ISEP/P.PORTO). This paper will present how VPL was introduced and some results of this experiment before the implementation in the learning process of another tool (Mooshak) as a real-time automat...
ILE, 2007
The work follows on from a successful project which concentrated on the assessment of Numeracy, Mathematics and Statistics (Thelwall, 1998), the resulting product of which has been used extensively in the School, but has now reached retirement only because of technical ...
2017
The demands of an ever changing and complex higher education environment, along with the profile of modern learners challenge current approaches to assessment and feedback. More learners enter the education system every year. The younger generation expects immediate feedback. At the same time, feedback should be meaningful. The assessment of practical activities in programming poses a particular problem, since both lecturers and learners in the information and computer science discipline acknowledge that paper-based assessment for programming subjects lacks meaningful real-life testing. At the same time, feedback lacks promptness, consistency, comprehensiveness and individualisation. Most of these aspects may be addressed by modern, technology-assisted assessment. The focus of this paper is the continuous development of an artefact that is used to assist the lecturer in the assessment and feedback of practical programming activities in a senior database programming class. The artefa...
ACM SIGCSE Bulletin, 2003
Programming in Java can be a daunting task for introductory students, one that is only compounded by the cryptic compiler error messages they see when they first start to write actual code. This article details a project conducted by faculty and advanced students in the creation of an educational tool for Java programming, called Expresso. This paper discusses some existing programming tools, explains their drawbacks, and describes why Expresso is different. We also include a detailed list of typical errors made by novice programmers, used in the construction of the Expresso tool.
Science of Computer Programming, 2004
Most of the Java tutorials found on the Web are more or less well reformatted versions of lecture notes or textbooks. As a consequence these tutorials have just as little interactivity and adaptivity as the printed originals. The tutorial JOSH-online presented in this article enables students to learn Java programming step by step, by interactive trial and error. The tutorial not only provides exercises, but encourages students to consolidate and extend their newly acquired knowledge by means of own hypotheses and their experimental verification. In this paper we describe the design of the tutorial, the underlying interpreter and its integration.
2009
This paper describes the use of clickers in a Java programming course. However, instead of using ordinary hardware clickers, we use software clickers, implemented in Java, that allow for much richer problem types than the traditional multiple-choice question. The problem types we introduce in this paper give students a much higher degree of freedom in solving a problem, and thus more opportunities for making mistakes. We look at mistakes as learning opportunities, and we introduce a pedagogical approach that allows students to learn from mistakes of their peers. We finish with a case study and evaluation of our implementation of these ideas in an undergraduate Java programming course.
Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 1, 2022
We present Jask, a system capable of generating questions about a learner's code written in Java. Given Java code as input, Jask provides a set of meaningful questions formulated in terms of the actual code (using its constructs and identifiers) and the corresponding correct answers. We integrated Jask in a web-based system where students submit their code (e.g., from lab exercises), answer questions about it, and obtain immediate formative feedback with the correct answers. An initial study involving 123 distinct introductory programming students providing 2274 answers revealed that questions pertaining to program dynamics tend to register low scores, possibly evidencing fragile comprehension of programming constructs. Participants were surveyed, revealing a positive view towards the usefulness of Jask, especially with respect to consolidating terminology.
Journal of Intelligent Learning Systems and Applications, 2012
This paper presents a graph-based grading system for Java introductory programming courses, eGrader. This system grades submission both dynamically and statically to ensure a complete and through grading job. While dynamic analysis is based on JUnit framework, the static analysis is based on the graph representation of the program and its quality which is measured by software metrics. The graph representation is based on the Control Dependence Graphs (CDG) and Method Call Dependencies (MCD). eGrader outperforms existing systems in two ways: the ability of grading submission with semantic-errors, effectively, and generating reports for students, as a feedback on their performance, and instructors on the overall performance of the class. eGrader is well received by instructors not only for saving time and effort but also for its high success rate that is measured by four performance indicators which are sensitivity (97.37%), specificity (98.1%), precision (98.04%) and accuracy (97.07%).
Proceedings of the Sixth Program Visualization Workshop, 2011
FRONTIERS IN EDUCATION CONFERENCE, 2000
Games have been a form of entertainment for centuries and used to focus and motivated which is a great feature that can be utilize games as the basis for creating game-based educational applications. Games are part fun and part leisure, trying to educate using games is very interesting, but care must be taken in designing the game interfaces as they should be simple, attractive, usable, and at the same time portray the concept of learning. Many students have found Computer Science as a very challenging subject and some of the most challenging for some new CS1 students is their first programming language. We lose many students to other majors at the level of CS1 and can weed out potential great future computer scientists. In our computing department, Java is the first programming language and many students have problems with it because they do not understand the concepts of classes, objects, encapsulation, inheritance and polymorphism. It has been found that games motivate students and focuses them for long period of time. With long periods of time being required to have basic functional understanding of programming language, games can play an important role for intrinsic motivation. We propose a Java game called " JavaZOO " to demonstrate the concepts of programming by mapping the animal kingdom to the object-oriented design principles.
Individualized feedback is an important factor in fostering effective learning. However, it is often not seen in schools because providing it places a significant additional workload on teachers. One way to solve this problem is to employ critiquing tools, which offer students individualized coaching and just-in-time learning opportunities. This paper describes the Java Critiquer, a critiquing system to teach students how to write clean, maintainable and efficient code. The system uses a framework that can be customized to support educational critiquing in other domains. Preliminary results from a pilot test show that the Java Critiquer is capable of providing useful feedback to students as well as helpful support for teachers.
Drill and practice exercises enable students to master skills needed for more sophisticated programming. A barrier to providing such activities is the effort required to set up the programming environment. Testing is an important component to writing good software, but it is difficult to motivate students to write tests. In this paper we describe and evaluate CodeWrite, a web-based tool that provides drill and practice support for Java programming, and for which testing plays a central role in its use. We describe how we have used CodeWrite in a CS1 course, and demonstrate its effectiveness in providing good coverage of the language features presented in the course.
Computer Applications in Engineering Education, 2020
Continuous assessment is essential in education. It should be an integral part of education that provides immediate feedback to students. Unfortunately, the assessment of programming source code is still a hand-operated and errorprone task, and can take weeks before the student gets feedback. This study presents a semiautomatic code assessment method able to automatically apply black-box assessment (which relies on the comparison of input-output pairs) and white-box assessment (which relies on checking different source code properties). The method proposed is a general-purpose assessment system that was originally designated to be used in engineering education, but that can be used in other educational contexts to assist the assessment of any Java programming assignments or exams. The main advantage of this system is that the assessment made is quicker, exhaustive, and objective; and it does not produce false positives. After the application of this method over two years in several
ACM SIGPLAN Notices, 2013
We present a new method for automatically providing feedback for introductory programming problems. In order to use this method, we need a reference implementation of the assignment, and an error model consisting of potential corrections to errors that students might make. Using this information, the system automatically derives minimal corrections to student's incorrect solutions, providing them with a measure of exactly how incorrect a given solution was, as well as feedback about what they did wrong. We introduce a simple language for describing error models in terms of correction rules, and formally define a rule-directed translation strategy that reduces the problem of finding minimal corrections in an incorrect program to the problem of synthesizing a correct program from a sketch. We have evaluated our system on thousands of real student attempts obtained from the Introduction to Programming course at MIT (6.00) and MITx (6.00x). Our results show that relatively simple er...
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.