Thanks for sending this in, we’ll do our best to get it taken down. I’m going to outline some strategies that I use to catch cheating.
You’re going to want to start at your Roster Page for a class.
Click on the ‘More’ tab, then ‘Labs’, and then click on Code Timeline. Code timeline will give us some info about when students worked on a program, and how long they have worked on it for. You can use the dropdowns to select a module and exercise.
What we see here is every student with some information about how long it took them to complete an exercise, and when they did it. Time spent will be most instructive for catching cheating. For example, if most students here take 20+ minutes but Student A only took 4, that would be a sign to check out his exercise.
To confirm, we can look at the history of a student’s program, from the first time that they opened it up until the last time they worked on it, tracking all of the changes. Navigate to a student’s exercise and click on the More tab, and then select History.
Every time a student on CodeHS hits ‘Run Code’, we save snapshot of their work. This is a great way to catch cheating – if a student exercise goes from Starter Code to completed in a single snapshot, that is likely a copy paste. If we think about the way we develop on CodeHS, we are usually hitting ‘run code’ quite often to test small pieces of functionality – it is rare to wait to run a program until it is totally written. If you see large jumps in the size or content of a program, that is a sign that you should speak with that student.
Additionally, it is possible to turn of Copy + Paste functionality for a class from that class’ settings page if you feel like it’s becoming a huge problem.