Cheating in Online Learning: HS Computer Science

Leland B Nicholson
9 min readJul 16, 2019

--

I’m a high school Computer Science teacher, and I love the advantages of computer based learning (CBL — or whatever your favorite acronym is). It allows kids to work at their own pace (within limits), is hands-on interactive, is engaging relative to “sage on the stage” teacher preaching, lets me “coach” individuals on the specific items they need help with, lets students put extra time in after school, reduces the cost of updated material (vs. five-year-old texts), removes some of the grading tedium, and, significantly, allows advanced students to dig in and go beyond anything I could offer them if I was the main source of knowledge. I suppose I could list more advantages, but that isn’t the point of this article.

My main problem with the CBL here in the high school Computer Science environment is, unfortunately, students abusing the systems and taking “short cuts”. I want them to collaborate as they learn, but I don’t want them to be too dependent on others. I want them to use their online resources, but I don’t want them to copy-paste code found through Internet searches or code given to them via emailed files from their friends. I want the majority of the course grade weight to be based on project work (real coding) as opposed to tests, but I can’t stand it when I have to hand out good grades to students who have received an overabundance of outside assistance from code banks, friends, and, even, parents. I want to reward complex programming projects without rewarding incredibly well done projects that are basically copies of programs from libraries they have found (many of which are highly advertised on the coding web sites — like Scratch programs). I want them to be able to copy-paste like programmers do in the “real world”, but I don’t want to give good grades to those who complete a 40 line program in 30 seconds by pasting someone else’s code. I don’t want them to get frustrated by a tough algorithm, but I don’t want them to let their friends do all of the problem-solving. I need to open the software up to students after hours because some have “extra time” IEPs and others miss class due to a multitude of extra-curricular activities or health issues — but I run the risk of cheaters working in groups after hours when I do this. I want to give students lots of problems and grade their work, but I can’t handle 200 programs per day on manual basis. I want to check for cheating, but documentation of a cheating claim needs to be very thorough (which takes a massive amount of time). If any of this sounds familiar, or if you are a new teacher, I hope some of the observations and ideas below will be of use.

One thing I don’t understand is that almost all of the vendors of these CBL software tools and environments seem to be oblivious to the honor code or “short cut” issue in the high school environment. Tools to flag teachers on possible abuse are almost 100% an afterthought. Almost every one of these vendors, very admirably, got into the business to help kids learn valuable computer and programming skills. It is clear that they set their software up to help those who have a “love of learning” and want to discover and explore this wonderful world of computing. They don’t seem to realize that clever high school students know how to send complete solutions to each other across the room, or across the neighborhood at night, at the speed of light. They don’t seem to care that their “green dot” status indicators can be turned to green by simply clicking on each lesson without ever reading/doing anything. Their videos show completion if students simply drag the play indicator to the right or run the video in the background while they are looking at their email in another browser tab — and there is often no post-quiz to see if anyone even learned anything at all. Screen shots of completion become somewhat useless once certain clever students realize they can alter the CSS to “green” in the Developer Tools of their browser.

I have worked with several prominent CBL vendors over the years to try to get them to focus on this issue — but it hasn’t been an easy sell and the solutions come out slowly. Vendors willing to quickly introduce an entirely new course on another programming language struggle with making changes that would make my life much easier on this front. Recently, CodeHS has made great strides in this area for the “pro” versions of their offerings. Code.org still allows students to quickly tap through lessons and turn status buttons green. CodeAvengers uses a yellow/red flag system based on speedy completions, but it doesn’t have any access control so teachers can block student completion when they aren’t in class. Many of these environments take pride in providing thousands of example programs — making it almost impossible for teachers to determine if work is original at all.

So, what can we, as teachers, do about this rather than just give up on this great CBL learning tool? Have an honor code, of course. Stress that students won’t learn if they take shortcuts. Actively monitor the classroom. Require personalized customization of every project. Require students to walk through their development process — which is very time consuming, of course. Place higher weighting on tests (rather than projects) than you really wanted to. I hope you are already doing all of this to maintain accountability and integrity — and we need to if we aren’t.

I am constantly tempted to cut off copy/paste for programming, but I have decided to leave it turned on during class and turned off outside of class (CodeHS is the only program I use that allows me to do this). I am also tempted to cut off access to the CBL entirely outside of class, but this certainly doesn’t allow slower students to catch up by working longer hours — so I just let it go.

Here, however, are a few of my experience-based ideas that are, possibly, a little more out-of-the-box:

  1. Reserve the right to 1:1 re-creation of any assignment

I have this in my syllabus and stress it in the introduction to my courses. I tell them that, if they were able to complete a program in 30 seconds at home, they should be able to do it in 60 seconds with me here in the classroom. I rarely have to use this because students “come clean” when I tell them that I want them to show me how fast they can complete the work. You need, of course, some logging of the time elapsed in order to make this work. CodeHS “pro” shows the number of runs, number of edits, and some indication of time elapsed (this is even being improved for SY 2019–20). Although the teacher still needs to ferret out the suspects, it can be well worthwhile to find a few cases early in the year to get the word out. CodeAvengers, as mentioned above, also flags super-quick completion. Even for projects that are far superior to student abilities, a sit-down session having the student re-create his/her project can be extremely useful. I had one situation (and this is the truth) where a student actually fainted after my third or fourth question about why he did things the way he did in his professionally-written program.

2. Don’t disclose which projects will get in-depth grading

This is extremely useful when there are massive numbers of programs being completed. With Code.org, for example, students can just click through the lessons without actually doing the work. There are also lots of exercises. I don’t tell students in advance what lessons I am going to open up and grade. I can’t possibly look at every lesson, but not knowing makes it too risky for students to skip any. Similarly, with CodeHS, I will pick certain programs to examine how much time elapsed between start and completion. I can’t look at every one, but I can spot check. Word quickly gets out about which ones I am grading, but I often grade after the due date for the assignments have passed.

3. Access control for selected project assignments during class

To encourage high energy students, I used to let students go through every exercise as fast as they could. In order to make sure students know how to do their own work, however, I have had to reserve completion of select exercises for the classroom. These become “tests” of a sort. I have had to increase the number of these set-aside lessons as time has passed and students seem to get increasingly clever about completing exercises very quickly at home. I schedule these sessions on specific dates. Some CBL, like CodeHS, allows me to block access until the class begins. For others, I just tell students that they aren’t allowed to complete the exercise before class. They can preview the exercise and figure out what they are going to do in advance — but the work has to be blank before we start.

4. Look for CBL software that flags extremely quick completion

This isn’t as easy as it seems. Until recently, the leader with this was CodeAvengers. With CodeAvengers, teachers can see the colors that indicate extremely fast completion. The students also get automatic messages indicating that there may be copy/paste going on. Very few other CBL vendors seemed to be interested in helping with this at all. I would have students complete 4 exercises in four minutes when a normal person would take at least 10 minutes each. CodeHS let me see this via time stamps, but I had to find them “the old fashioned way”. I still don’t know if CodeHS is going to send texts or emails to flag the teacher, but it sure would be nice. At least they have time stamps. Few CBL offerings have this.

5. Look for CBL software that is auto-grading or fast-grading

Again, if teachers were designing these systems, you could bet that auto-graders would be in place. CodeAvengers, CodeHS, and (one I haven’t mentioned yet) SoloLearn seem to lead the pack in this regard. Although some students figure out how to trick the system by altering the completion indication colors in CSS for SoloLearn, the software does a great job of moving students through the material. CodeAvengers does the same. For more extensive programming, CodeHS has very nice auto-graders and a fast-grade system that allows teachers to fly through many assignments. There are probably many others, but I have often found myself in the unenviable position of being the coding grader for, literally, 100’s of programs as they pour in from 170+ students. If you want to keep students honest, they need to know that you have a chance in the world of actually looking at their work!

6. Selectively lock offenders

Very few CBL offerings allow teachers to lock and unlock access to capabilities by individual student. CodeHS is working on this. The idea here is to cut offending students off if I catch them in the act. I know, for example, that students who are far behind will be tempted to take shortcuts if they need to catch up the night before a unit is due. My workaround has been to temporarily move selected students to a temporary section that is “locked” for all students I have placed into this group. This way, I can move suspected offenders and only let them work only during supervised sessions (class or study sessions). I can also cut off copy/paste (with CodeHS) for an entire section. I’m hopeful that I will be able to do this by individual for SY 2019–20.

7. Install workstation monitoring software in your lab

Several vendors offer software that allows a teacher to monitor all student workstations from the teacher workstation. The power of this software to keep students honest is significant. This software has many other advantages in a CBL lab, but having students know that you can see and capture their work at any point is a big deterrent to cheating. You can also block access to certain websites with this software. If students are using laptops, it is even more difficult for teachers to see what is going on. Google “classroom monitoring software” for offerings.

8. Require creative projects that have no resemblance to existing work

I used to be a little more lenient when a student said they wanted to do a “version” of PacMan, a calculator, Pong, etc. for their creative projects. While it is very hard to measure, I have become less and less interested in seeing anything I can recognize as a redo of any known program. One student, for example, “programmed” a PacMan using different icons than the standard PacMan. Many students seem to want to program Pong. As my experience grows, I have had to become increasingly insistent on creative “summative” projects that have a completely fresh look. I would recommend that all teachers do the same.

I hope this was of some use to high school Computer Science teachers — or any teacher trying to leverage CBL in their classroom. CBL is a powerful learning tool and needs to have a solid place in our modern classrooms. We do, however, need to be aware that it may make shortcuts easier and more tempting than the traditional teaching environments. We can do many things to minimize the negatives, however.

PS: I have no monetary connection with any of the CBL software mentioned in this article. I only use them as examples because I am familiar with them.

--

--