I have a homework assignment where I require students to create a set of pivot charts in Microsoft Excel. I know that I can reduce cheating by changing datasets or chart specifications around, but because of the complexity of the assignments and my practical constraints in not being able to mark more than five or so different versions, this does not prevent students from finding those who have the same specifications as themselves and copying among themselves. (I am coordinating a course with over 700 students, so I can only do so much as far as alternate versions go. The students are well connected to each other by Facebook, so communicating among each is quite feasible for those who want to cheat.)

On one hand, in my situation, creating alternate versions is difficult because of the complexity of the assignment, and its effectiveness is limited because hard-working cheaters can cheat anyways. On the other hand, I believe that if I can effectively detect cheating after the fact, then giving a strong warning to students about this could serve as an effective deterrent that should greatly reduce the incidence of cheating.

Are there features in Microsoft Excel that make it easy to detect cheating by copying between students? I don't expect to easily detect if a student copies elements like pivot tables from one file to another, but perhaps at least I might be able to detect if a student copied someone else's file altogether. I'm not necessarily looking for anything foolproof--I expect that the cheaters in this assignment would be those who don't even know basic things like how to manually change author information in an Excel file.

Speaking of which, unfortunately, as far as I can tell, Excel overwrites author information with the last person to save the file, so I couldn't even use that to tell if someone has copied a file created by someone else.

I would appreciate any suggestions.


Some answers have suggested asking students to submit a written explanation of their reasoning. Although I mentioned that there are over 700 students, let me be more explicit: I do not consider solutions that require reading and marking additional textual submissions to be feasible for my context. On one hand, there are multiple instructors, so any instructor would only have to mark a few dozen assignments. On the other hand, if there is cheating across sections, then reading text submissions is not a feasible verification technique. Thus, I was looking for a solution that could easily indicate that a student's submission contained undeniable traces of some other student's work.

  • 2
    I used to open the files in something like programmers file editor and search for the string with name etc - amazing what is there... Found 1 student who had "created" the file under a different name 2 years prior... And that student was also one of my students... – Solar Mike Dec 7 '18 at 13:07
  • For what it's worth: the traditional way to make sure students understand what they did is to ask them to produce a report where they explain their work in their own words. Alternatively there can be a quick evaluation in lab where they would be asked a few questions to test their understanding. – Erwan Dec 7 '18 at 14:02
  • I seem to be assessing students for similar things in excel, charts etc frequency() etc and I use a quiz with 10 questions, each question having a category of 10 questions... So, questions ask things like ctrl+shift then enter is used for what type of function... Grades seem to be going as i would expect... – Solar Mike Dec 7 '18 at 14:58
  • @Erwan, please see my edit to understand why I don't consider this feasible in my situation. – Tripartio Dec 7 '18 at 16:10
  • Are you giving the students Excel files to work with, or handing them data sets and letting them build their own Excel files? – asgallant Dec 7 '18 at 17:22
  • Figure out a way to generate data sets and results programatically so you can uniquely verify each student's assignment separately. This would imply lots of effort initially but may payoff for later courses.

  • Use a single dataset and a single result set. Ask them for their reasoning behind for achieving the most complex tasks of the assignment. Use this to check for cheating. No one person thinks exactly the same or describes something complex in the same manner.

My recommendation is for the latter. Most jobs that can be done with tools like Excel will be automated in the near future. The best that your students can learn is to reason (and articulate this effectively) and choose the appropriate tool/technique for the job.

  • Your first suggestion is a lot of work, but might fit my situation better. I've edited my question to clarify why the latter recommended solution is not feasible in my situation. – Tripartio Dec 7 '18 at 16:13
  • @Tripartio if you choose the automation path, start building your prototype and post more detailed questions in stackoverflow. On a side note for inspiration you may want to read this paper link.springer.com/chapter/10.1007%2F978-3-030-00761-4_12 of a solution done to automate assessment of software engineering assignments. – Koenig Lear Dec 9 '18 at 12:06
  • I like your second recommendation. OP says it doesn't fit OP's profile, but the instructors can grade the explanations from their group for value, while an automated script can sieve out the textual similarities in the explanantion over the whole class. – bukwyrm Dec 12 '18 at 7:11

I assume you need clues which can be obtained automatically.

It might be an idea to check all the positions and sizes of graphs / diagrams / drawings etc. Those are usually placed by mouse movement and so the positions should differ.

If you are very subtile, you might want to give them individual sheets to start from (maybe containing the initital data set). Those files can be secretly marked in the underlying xml files, e.g. by adding an extra tag per student (I did not test this, but I'm sure no one will detect it) or by adding a personalized "document creator" (but this is visible to the students). You just have zu unzip the .xlsx-file and modify docPros\core.xml

A pure file copy can easily be detected by e.g. calculating a PGP checksum for the files. If two checksums are the same, they are exact copies.

  • I like the idea of programmatically verifying positions and sizes of graphs in Excel. Could you point me towards any sources that might suggest how to do that? – Tripartio Dec 7 '18 at 16:12
  • @Tripartio are you capable of using e.g. python for scripting? Then I could try to build a minimal example code which could be adapted for your needs. – OBu Dec 7 '18 at 16:23
  • I normally use R, but I can read Python and could probably translate it. Example code would be fantastic. – Tripartio Dec 7 '18 at 16:53
  • I think you should expand a bit on the OpenXML format. At least point out it's a zip file. There's an OpenXML SDK that helps generate code and such. Something more obscure might be to set a custom r:id for the worksheet. A quick test shows you only need to update the reference in \_rels\.rels and \xl\workbook.xml and \xl\_rels\workbook.xml.rels – BurnsBA Dec 7 '18 at 17:08

If the revision history is not enabled, you will not be able to glean any information pertaining to the history of the document - maybe make enabling it a rule?

Other recommendations:

  • If the project is based on data, programatically produce or alter the data that each student is given (they download it from some server)
  • Rule that if any two students are found to have identical solutions, both will fail the course. The students giving their solution away usually are aware that the ones they are giving it to are inept, so they will be extremely wary.
  • Have the students install a tracker (something like this: https://www.exceltrainingvideos.com/track-changes-automatically-in-worksheet-with-vba/) - The end result may be similar, but the way to the result will vary between persons. A lot.
  • Your second bullet point should not be used. Students who are not cheating will produce identical solutions, given a large enough class size. The 700 students in this class are more than sufficient to produce identical results without cheating. – asgallant Dec 11 '18 at 16:18
  • That entirely depends on the complexity of the task. You are correct that this might lead to false positives in smaller assignments, but the possibilities grow mighty fast (especially with identifiers that have a lot of wiggle, like positioning of graphs, etc.) which makes the probability of false positives miniscule. – bukwyrm Dec 12 '18 at 7:07

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.