JavaFest: Turing Test

In a Turing test a human judge conducts a natural language conversations with a partner. The partner can be either a human or a machine. The judge does not see his partner. Both, the human partner and the machine try to appear human. If the judge cannot distinguish between the human and the machine, the machine passes the test, as it appears indistinguishable from a human, and thus is deemed intelligent.

The motivational goal of this JavaFest is to build a machine (a Java program) that passes the Turing test. It certainly won't be possible to build such an intelligent system in a few hours for a beginning programmer. However, constraining the conversation between the judge and the partner to a specific topic, and limiting it to a small number of questions and answers, makes the judge's task quite challenging.

We use a distributed Java RMI application to enable the competition phase of the Turing Test JavaFest. It consists of a client, used by the judge to ask questions (and projected on the classroom beamer), and a server that gathers the responses from the teaching assistant and from the software responder. The following two screenshots show the GUI of the client and server applications:


You can download our Turing Test RMI application to use it in your own classroom.