The current situation with the spread of a serious disease worldwide has caused a number of universities and schools to move courses to an online model where students don't meet face to face in large groups.

The problem of evaluating students then arises, and traditional tests are ill suited for an online model as it is much harder to monitor them or assure validity.

Ideally, any evaluation method should foster learning, not just memorization, so traditional testing has its own downside. Perhaps the current emergency can result in finding better evaluation methods that are also amenable to use online, as well as in traditional classrooms.

Have you used innovative evaluation methods - beyond testing - that foster good learning and proper student habits but which can be adapted to courses that don't meet face to face for instruction or testing? Can you describe what you do.

My own preference has long been to replace traditional tests in ordinary classrooms, and especially high risk, anxiety inducing, tests with small group and pair projects. This was combined with peer evaluation. In the current situation, it might be acceptable for students to meet in pairs or small groups with less risk than meeting in larger groups. But, it would probably have to be done in a way that meeting face to face is optional.


As part of an algorithms module (first-year undergraduate level), I got students to choose a computational problem from a list of options I provided, write an algorithm to solve it, and write a 750-word report explaining:

  • The problem in their own words,
  • How their algorithm works (with code), and
  • How they tested it.

Students had a few weeks to complete this task, worked in their own time, and then submitted their report to the university's Moodle site; so this kind of assessment could work equally well in a non-face-to-face course.

The idea behind asking students to explain their algorithm came from the fact that interviewees for software jobs often have to solve a problem during the interview and explain how their solution works. Being able to explain how one's code works is also important for many other things a programmer might do, like rubber-duck debugging, code review, or writing good answers on Stack Overflow.

Your question doesn't dwell on it, but one of the key differences between in-person and online assessments is the opportunity for cheating and the difficulty of detecting it. As a convenient side-effect of having students explain the problem and their solution in their own words, suspected cheaters can be identified in two ways:

  • A student who is unable to write the code themselves is usually also unable to adequately explain how the code works.
  • A student who also copies the explanation (or parts of it) can be detected by standard tools such as TurnItIn, so you don't need a more sophisticated tool for comparing code similarity.

In the former case, a poor explanation deserves a low grade anyway, whether or not they cheated. In the latter case, my experience of running the assessment over two years with ~250 students each year is that TurnItIn works well enough for catching students who copy from an online source or from each other. With fewer students, you can group the assessment submissions by which problem they attempted, and probably notice any collusion yourself even without a tool like TurnItIn.


I agree with kaya3. You can assign open-ended projects where students apply techniques from the course. Or you can give them more structured projects, e.g., from this book by Havill (the website includes skeleton code): http://discovercs.denison.edu/ or inspired by these data science projects by Nolan and Temple Lang: http://rdatasciencecases.org/Data.html

You could build up to the projects with more and more complex problem-solving done in an online system, where the grading is automatic, like CodingBat. Students can go to Preferences and "Share To" so that their instructor can see a report on their progress. You could assign them 4-5 problems a week, and a project after a couple of weeks of building up their problem solving ability. A zillion exercises in Python can be found on my various pages on there: https://codingbat.com/home/david.white@denison.edu/


If your main concern is related to cheating in tests, there are some ways to somehow minimize it (not 100%, though).

I am in "forced" quarantine since March 4th, so, almost all the 2nd semester is held online (I haven't returned to the uni since, so haven't the students). :)

I and all the CS teachers at my Uni rely mostly on small quizzes, oral presentations, small assignments or larger individual ou group projects. Traditional tests will still take place, but their weight in the final grade was reduced. In any case, it is almost always assumed that the tests are open-book tests, so the students are asked to give their opinion or apply some concepts and not simply give definitions.

  • $\begingroup$ No, it isn't my main concern. But these are good suggestions. $\endgroup$ – Buffy Apr 16 '20 at 22:47

One excellent resource to introduce students to Python programming remotely is CMU CS Academy (with which I am affiliated). CMU CS Academy is a free online, interactive high school computer science curriculum. The curriculum includes notes, exercises with an autograder, creative tasks at the end of each unit to apply what they have learned so far, as well as quizzes.

They are currently providing daily webinars for educators interested in learning more. You can sign up at https://academy.cs.cmu.edu/r/12103?fbclid=IwAR0b7O9En6dRqFp6p8a2cik62GAXlHyiWqnXK3oELM3afHReZQf-lrakBrk

  • $\begingroup$ Sorry, but this isn't an answer and it is technically spam by the rules here since you don't give your affiliation with CMU. $\endgroup$ – Buffy Mar 22 '20 at 23:46
  • $\begingroup$ @Buffy I'm puzzled by your assertion that it's not an answer, since it's about education without testing (or at least without testing that has stakes. The "testing" there is aboue creating recall opportunities, no?) I agree that it's in violation of the rule about disclosing the author's affiliation, though. (Seeing as the user is unregistered, I will edit.) $\endgroup$ – Ben I. Mar 24 '20 at 2:01
  • $\begingroup$ @BenI. The question was about evaluation without testing. $\endgroup$ – Buffy Mar 24 '20 at 11:34
  • $\begingroup$ @Buffy That's... a good point. Somehow I had misunderstood the question to be about education without testing, but looking at it, it is plainly not. Sometimes I look back at something I have misunderstood and absolutely cannot figure out what I didn't see. The question is perfectly clear. $\endgroup$ – Ben I. Mar 24 '20 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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