Having been a teaching assistant a first year coding class, I can tell you why I personally like written tests over open computer tests.
The course I was a TA for started off being 100% written exams, but later changed to have the final split up between a written part and a computer part.
So my personal arguments for this written tests over open computer tests (in no particular order):
- Written exams are better for testing a students knowledge of a concept. There are certain concepts that we want students to know, not know how to copy and paste. With an open computer test, we really have no way of knowing if they understand what they put in the code. We only know that they can tweak code and make it work (hopefully).
- Written exams make students stop and think about the problem we are asking them to solve. Many times the idea to get it compiling and running gets in the way of actually solving the problem we have put forth.
- Written exams prove that students know the basics. Do they know how to write a loop, an if-statement, and how to use variables? Do they know how to write a method signature? IDE's have a nasty habit of letting them shoot in the dark with these concepts. Should a someone be able to pass a programming class if they can't write a loop? I don't think so.
- It lets us give students part marks. One thing I always taught my students was to write out what they do know. If they know how to do the problem, but can't remember the syntax on how to do it, write pseudo-code. After they have written out the pseudo-code, go back and fill in the actual lines that they do know.
In my experience, the open computer exam couldn't show us the students who really knew the material and those who were coasting. The open computer exam could show us the students who really just didn't get it. Normally students who failed the open computer test were the ones who were paying someone to do their assignments, or were the ones who just grouped with stronger people and had no clue as to what was really going on.
Those are the type of students you can't save, no matter how hard you try, b/c they don't care.
The written exams showed me the students who sort of knew what was going on, but were struggling so I could go to them during lab time and give them some more attention. It gave the students the feed back as to what they did and didn't know.
Computer exams, to me, are a test in hacking a solution with a time limit. Passing assignments let's us know if students can hack a solution together, what I'm interested in is if they actually understand that solution.