Bluetooth in the Classroom

Activating lecture sessions through participative surveys

and quizzes via Bluetooth enabled cell phones

In order to encourage students to play a more participative role in the classroom, we have developed software both for mobile phones and laptop computers which makes possible for the teacher to readily record student responses to questions. Results are stored on the computer hard disk and contain identification of the Bluetooth device, student user names and numerical or string answers typed on the mobile phone and sent via Bluetooth to the laptop. Several real time graphic charts can be displayed while the server collects the data and may be projected onto a screen in the classroom.

The server side software uses a BlueCove Bluetooth Stack. It keeps record of every connection, grades it (when necessary) and shows a live graphic bar chart on a window that reflects the results of the current activity (fig.1).

server side window

fig. 1

In order to make it work, the teacher must rewrite the class BTGrader that must implement a static function "grade" as follows:

public class BTGrader {

* grades the answer from the student as a function of:
* question_Number: the number representing the position of the question in the form (1,2,..)
* student_Answer: a double resulting from the student response to the question
* student_Number: the number that identifies the student as input in the "matricula" field on the client form
* form_Number: the number that is input in the "formulario" field on the client phone
* service_Choice: the string that represents the service chosen by the student when submitting the form

public static int grade(int question_Number,double student_Answer,int student_Number,int form_Number, String service_Choice){

if (Math.abs(student_Answer-(question_Number))<=0.01*(question_Number)){
return 1;
return 0;

This implementation just compares the answer with the question number and returns 1 if they agree within 1% and 0 if not. The java file must be compiled into a class file every time a new test is generated.

The the teacher must call the class "teacherBT" with a list of arguments representing the choices offered by the server, as in

C:\users\jmdc>java teacherBT Physics1-Test Electromagnetism1-Quizz Mechanics5-Poll

or as in the images below,

C:\users\jmdc>java teacherBT EncuestaBT ExamenFinal ParticipacionActiva ElecciondeDelegados

The code builds on a Sun Java Wireless Toolkit for CLDC example named "BluetoothDemo". The main differences are:

  1. The GUI of the Server has been replaced by a Java application with a Frame where graphical results are presented.
  2. Instead of advertising the names of the downloadable images, the server announces the activities that it is ready to monitor
  3. The server receives the user input to a form in the client (the cell phone) and sends back the marks coded into two bytes.
  4. The client application translates the 2-byte information into a separate bit (wrong or right) for every individual question.
  5. The communication ends and the server updates the bar chart of the session
filling in

How does it work?

On the client side, the user must download a Java application and install it on the cell phone, provided it supports the JSR-82 specification.

The user just has to open the java Midlet (the application), enter the screen shown in the figure at the left of the paragraph and fill out the form as in the figure placed at the right.

The field "Matricula" stands for an identification number of the student. "Opcion" stands for any option such as form identification, or any other choice that the teacher may indicate to the students. Not all the students need to use the same value.

This can be useful when the system is intended to be used as an ingredient in grading the students and a set of several quizz forms is distributed so as to avoid cheating among neighboring users.

The next five fields may contain answers to questions on a quizz.

By clicking the "Inicia" button, the phone begins to scan for any server nearby, as represented in the left figure.

looking for servers

When a server is found, a choice screen appears containig the different possibilities offered by the server. The teacher should tell the students which one they must select. Then the user can either submit the quizz (clicking on "Enviar" ) or return ("Volver") to the form in order to continue filling it out. After submission, the student gets the screen placed to the right, with the marks ("Nota") where a global value (3) is displayed along with its distribution over the 5 questions of the form (0 stands for "wrong" and 1 for "right").

Then the form may be filled again and by choosing "Elegir" the user is sent back to the left screen, from where the student can re-submit the form and wait for new marks as many times as the teacher decides.

You could take a look at the list of JSR 82 enabled devices that support this software. You can also check a Java comprehensive compatibility relation from real tests.

Download (no support, guarantee, responsability, liability and stuff whatsoever) for people within GIEFAI-DFAII-ETSII-UPM

Client(int) (test provisional version #1)

Client(double) (test provisional version #1)

Server (test provisional version #1)

Java (to run server side application)

Bluecove (to run server side application)


Programmer: J.M. Diazdelacruz