Many techniques have been attempted to encourage students to exercise better time management on class projects, such as staging an assignment into multiple deliverables, requiring students to keep records of the time ...
详细信息
ISBN:
(纸本)9781467352611
Many techniques have been attempted to encourage students to exercise better time management on class projects, such as staging an assignment into multiple deliverables, requiring students to keep records of the time they spend, and offering extra credit for early completion. This paper reports on a study of the effects of offering extra credit for early completion. Students in an introductory course completed four programming assignments throughout the term. For two assignments, no extra credit was offered. For the other two, students were offered a 10% bonus if they finished at least three days before the deadline. While one might expect this incentive to encourage students to shift their work habits, we found that there was no positive change in their time management. In fact, students started on the assignments where extra credit was offered later than on those where it was not offered. This leads us to believe that there were other pressures or concerns that outweigh the possibility of earning a bonus on an assignment, so that this kind of incentive only helps students who already manage their time well.
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.
Automated programming assignment grading tools have become integral to CS courses at introductory as well as advanced levels. However such tools have their own custom approaches to setting up assignments and describin...
详细信息
ISBN:
(纸本)9781450394314
Automated programming assignment grading tools have become integral to CS courses at introductory as well as advanced levels. However such tools have their own custom approaches to setting up assignments and describing how solutions should be tested, requiring instructors to make a significant learning investment to begin using a new tool. In addition, differences between tools mean that initial investment must be repeated when switching tools or adding a new one. Worse still, tool-specific strategies further reduce the ability of educators to share and reuse their assignments. This paper describes an early experiences with PEML, the programming Exercise Markup Language, which provides an easy to use, instructor friendly approach for writing programming assignments. Unlike tool-oriented data interchange formats, PEML is designed to provide a human friendly authoring format that has been developed to be intuitive, expressive and not be a technological or notational barrier to instructors. We describe the design and implementation of PEML, both as a programming library and also a public-access web microservice that provides full parsing and rendering capabilities for easy integration into any tools or scripting libraries. We also describe experiences using PEML to describe a full range of programming assignments, laboratory exercises, and small coding questions of varying complexity in demonstrating the practicality of the notation. The aim is to develop PEML as a community resource to reduce the barriers to entry for automated assignment tools while widening the scope of programming assignment sharing and reuse across courses and institutions.
This work describes our experience in revising one of the major programming assignments for the second-year course Introduction to Computer Systems, in which students implement a version of the malloc memory allocator...
详细信息
ISBN:
(纸本)9781450351034
This work describes our experience in revising one of the major programming assignments for the second-year course Introduction to Computer Systems, in which students implement a version of the malloc memory allocator. The revisions involved fully supporting a 64-bit address space, promoting a more modern programming style, and creating a set of benchmarks and grading standards that provide an appropriate level of challenge. With this revised assignment, students were able to implement more sophisticated allocators than they had in the past, and they also achieved higher performance on the related questions on the final exam.
This paper reports on a quantitative evaluation of five years of data collected in the first three programming courses at Virginia Tech. The dataset involves a total of 89,879 assignment submissions by 1,101 different...
详细信息
ISBN:
(纸本)9781605586151
This paper reports on a quantitative evaluation of five years of data collected in the first three programming courses at Virginia Tech. The dataset involves a total of 89,879 assignment submissions by 1,101 different students. assignment results were partitioned into two groups: scores above 80% (A/B) and scores below 80% (C/D/F). To investigate student behaviors that result in differing levels of achievement, all students who consistently received A/B scores and all students who consistently received C/D/F scores were removed from the dataset. A within-subjects comparison of the scores received by the remaining individuals was performed. Further, time and code-size data that is difficult to compare directly between different courses was normalized. This study revealed several significant results. When students received A/B scores, they started earlier and finished earlier than when the same students received C/D/F scores. They also wrote slightly more program code. They did not appear to spend any more time on their work, however. Approximately two-thirds of the A/B scores were received by individuals who started more than a day in advance of the deadline, while approximately two-thirds of the C/D/F scores were received by individuals who started on the last day or later. One possible explanation is that students who start earlier simply have more time to seek assistance when they get stuck.
Microworlds are visual, 2D grid-based worlds with programmable actors that help ease students into programming. Microworlds have been used as a pedagogical tool for teaching students to program in an object-oriented p...
详细信息
Microworlds are visual, 2D grid-based worlds with programmable actors that help ease students into programming. Microworlds have been used as a pedagogical tool for teaching students to program in an object-oriented paradigm for several years now. With the popularity of Android smart phones, creating a pedagogical microworld for Android can help students learn not just Java, OO and event-driven concepts, but also learn to use the Android framework to create concrete, real-world applications. This thesis presents ***, an Android-based pedagogical microworld framework that not only allows Greenfoot-style microworld programs to run on Android, but also adds additional functionalities to microworlds that have not been previously explored, such as built-in shape and physics support, event-driven programming in a microworld context, and allowing for both Greenfoot-style actors and Karel-style actors in the same world.
This nifty assignment challenges CS 2 students to implement the backend for a variation on the Hex board game. In a typical Hex game the winner is the player connecting a continuous series of their playing pieces from...
详细信息
ISBN:
(纸本)9781450394338
This nifty assignment challenges CS 2 students to implement the backend for a variation on the Hex board game. In a typical Hex game the winner is the player connecting a continuous series of their playing pieces from a specific side of the board to the other. In this variation, we add the concept of a score, which is the number of connected components of a given color. The students are provided with the front end of the game, various board sizes, unit-tests and a game simulator. They are tasked with keeping track of the state of the game. The assignment is nifty because students are interested in the game aspect and there are a number of possible solutions for the disjoint set tracking required in the backend. This leads to engaging in-class discussions that are elevated above coding specific details and focused on design and performance leading to strong learning opportunities. The unit-tests provide debugging and software development skills for students and automatic grading of some functional aspects of the work. Students could easily be tasked with creating their own unit-tests in a variant on this original. In the end students end up with a working game that is fun to play and interesting to thinking about algorithmically.
暂无评论