How I Dealt with Student Plagiarism
Panos Ipeirotis, a colleague at the NYU Stern School of Business, received considerable media attention when, in a blog post he subsequently removed, he discussed how his aggressive use of plagiarism detection software on student assignments poisoned the classroom atmosphere and tanked his teaching evaluations. As detailed in a story posted on the Chronicle of Higher Education blog, Mr. Ipeirotis proposes instead that professors should design assignments that cannot be plagiarized. Along these lines here are two methods I've used in the past.
Randomized Programming Assignments
A few years ago, challenged to provide meaningful assignments and grade the work of 240 students of a programming course I taught, I implemented Jarpeb. The Jarpeb system creates individually randomized assignments, grades the students’ programs by utilizing Java’s class loader and reflective evaluation capabilities, and allows students to submit their grade through the web by signing their grade with a cryptographically strong verification code. Jarpeb currently contains 14 assignment templates, which I gave out roughly every week. Each template creates an assignment by randomly perturbing various parts of a program specification that the student is asked to implement. The randomization process is deterministic and depends on the student's registry number. Therefore, each student is given a unique personalized assignment. The varying parts include variable, class, and method names, various constants, the order of execution, and so on. Doubtless a student can read the program of another student and convert it to correspond to his specification. But even this task will help students understand part of the assignment. I started programming by keying in BASIC programs from a book; I don't think this harmed me.
In an empirical evaluation outlined in a paper two colleagues and I published in 2007 we found that Jarpeb contributes to the reduction of plagiarism, increases the understanding and learning of the course subject while also increasing the perceived fairness, fun and interest of the learners.
Contributing to Open Source Software Projects
For a course on advanced topics in software engineering I chose another method. Students had to form teams and contribute to an open source project. The course's grade was based on numerous factors:
- Understanding and documentation of the existing system (10%)
- Breadth of changes (20%)
- Design quality (10%)
- Implementation quality (10%)
- Integration (10%)
- Testing (10%)
- Coordination with the development team (10%)
- Presentation (10%)
- Documentation and quality of the deliverables (10%)
- Blog (10%)
Each team had to select a unique project and a novel contribution. Therefore plagiarism was not on the table. Three presentations, on the existing project, the contribution's design, and its implementation, allowed me to judge whether the students had received any outside help.
The students' evaluation of the course was very positive. A short summary of the course appears in a letter published in the Communications of the ACM.Read and post comments