Saturday, May 24, 2008

Wanted: An Open Source Electric Blue Book

In an earlier post I suggested a low cost way of making it possible for students to take exams on computers. An alternative suggested in the comments was to have students boot their laptops under a stripped down version of Linux configured to make it impossible for the student to access anything on his computer other than the exam taking software. That would provide a very low cost alternative to the commercial software now used for the purpose.

This looks like an obvious idea for an open source project. I am happy to contribute the name: Electric Blue Book. If anyone is interested, I can probably dig up my old notes on how a test taking program might be designed to make things easier for both the students taking the test and the teacher grading it. I have no experience with the sort of programming that would be involved, however, so somebody else would have to take charge of the project.

Ideally, it would make it possible to put the OS and the program on either a flash disk or a CD. A laptop booted off of it would provide access only to the test taking program. The file representing the test would be saved to the flash disk, if there was one, or to the hard disk of the computer in some easily identifiable form, to be transferred to the teacher's computer when the exam ended. Ideally there would be versions for Mac, Windows and Linux.



Joe said...

David, it appears such projects already exist (google "open source exam software"), albeit not entirely as specified, but since they're open source they could be the foundation for your Electric Blue Book. For an example of one, see

Seth said...

If they use a test server, the laptop could be configured so that it connects to the test server only, and everything is done there.

Depending on how paranoid you want to be, the boot disk should check that it's really running on the raw hardware (otherwise someone could run it in a virtual machine and still have Internet access).

Anonymous said...

Ideally, there would be versions that addressed accessibility concerns (screen readers, large type, etc.).

coba said...

Unfortunately, the problem of reliably checking whether a program is running in an emulator or on raw hardware is an open problem in computer engineering. The idea that any computer can emulate any other is known as the Church-Turing thesis and although it is hard to give a proof of it without defining the details of what a "computer" is, so far it seems that nobody has built a computer that cannot be thought of as a Turing machine with a limited size tape. The solution that has been proposed involves something called "trusted computing." The idea is that there is a tamperproof chip (i.e. it breaks when you try to replace it or take it apart) in the physical machine that contains some cryptographic authentication mechanism. Trusted computing hardware is now included in some consumer systems, so it might be possible to use Trusted Computing to do the electric blue book thing.

Another option would be to give up on solving the problem by technological means entirely, and try to create a culture where peer pressure does the trick. I got my undergraduate education at Caltech where all exams were take-home, and usually with limits on time spent and literature consulted. If you went over time on an exam, you were supposed to draw a line in your bluebook and write something like "this is how far I got in three hours." People actually did that. Believe it or not, that system more or less worked.

Anonymous said...

I do not approve of the idea of trying to take hostage someone's hardware in order to prevent him from using it in the way that he likes. A computer ought to do what its owner commands, instead of, like in "Trusted" Computing, an owner not being able to trust his hardware.

Furthermore, for something like this to work, you need support from the operating system. That would mean I have to give hostile software ring0 on my computer. I would definitely give preference to doing the exam by hand in such a case. The same objection applies to having to boot into the exam software.

The best solution, as mentioned in the other thread, is to provide students with a terminal (with no processing power of its own) and then running all of the software on school server. Since it's your hardware, you can apply any restrictions you like.

coba said...

I would agree with anonymous that providing the students with a terminal is definitely a better solution. Trying to lock down software that runs on a student's PC is definitely not something that I would recommend as a feasible approach. I wast just trying to come up with how one would do it if one were absolutely committed to doing it that way.

And the reason for trying to do it that way is of course obvious. Any kind of "terminal" that you can come up with is going to cost money. If you want to do this in a standard classroom, you're going to need something portable. That pretty much reduces you to using (cheap) laptops, maybe of the newish low-cost education strain (OLPC XO, Intel Classmate, ASUS EEE PC). But even those can easily run you $300 apiece.

Unknown said...

Here is a discussion from the Donation Coder forum:

It links to two different projects and could be a good place to start. Also links to a directory.