ETH Lecture Communicator is a tool intended to encourage and facilitate interactivity in the classroom. A steadily increasing number of students own portable computers, and colleges and universities equip their classrooms and lecture halls with wireless networks. ETH Lecture Communicator uses these opportunities to enable organized, two-way communication between instructors and students.

The two main applications of the tool are:

  • The instructor can send questions of different types (multiple choice quizzes, item matching, item rating, free text) to students. The answers are processed automatically whenever possible and the result statistics or overview are displayed on the instructor's screen.

  • The students can ask questions. These questions are automatically forwarded to all other students of the class, who in turn have the possibility to rate the question, indicating if they are also interested or not. The lecturer sees the student questions in order of interest, which enables him to answer the most urgent ones first.

Document structure

Installation describes the minimal system requirements to run ETH Lecture Communicator, details the installation steps of the software and explains how the client component is deployed as an applet. Example session is a step-by-step tutorial, demonstrating the most important functions of the software. Creating and modifying questions covers aspects about the preparation of questions for your class not discussed in the previous section and Activities during class treats more advanced functionality used during or after class. Finally, Security considerations discusses some security-related aspects that you should be aware of before using the ETH Lecture Communicator system in a class.

Legal notice

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


System requirements

A working Java Runtime Environment, Version 1.4 or newer is needed to run the ETH Lecture Communicator server and client applications.

Students download the client application as a Java applet from a web server during class. As a consequence you also need access to a web server where you can install new web pages. The web server can either be on the same computer where you want to use the ETH Lecture Communicator server application or on another machine (the web server of your department or institute for example).

The software was tested under Mac OS X 10.3, Windows XP and Redhat Linux, but should run on any operating system for which the required Java runtime is available.

Mac OS X comes with Java installed per default. Mac OS X 10.4 (Tiger) is shipped with version 1.4.2. Mac OS X 10.3 (Panther) is shipped with version 1.4.1; we recommend to update to version 10.4.2 or later through Software Update. Mac OS X 10.2 (Jaguar) initially shipped with version 1.3.1 only. You need to update to Java 1.4.1 or later, which is also available through Software Update.

Windows does not come with Java installed. We recommend to install the Java 5.0 JRE (Java Runtime Environment) provided by Sun. You can find it at (as of this writing, September 2005, the current version is JRE 5.0 Update 4).

Most Linux distributions provide Java as an installable package. Please refer to the documentation of your distribution's package manager if you are unsure how to install additional packages.

Server component

First, you need to install the ETH Lecture Communicator server component on the computer that you will be using during class. There are several distribution files, depending on the operating system that you are using. The different options are discussed below.

A Mac OS X disk image is provided for use under these operating systems (lectcomm-X.Y.dmg). Copy the contents of the disk image to a new folder (somewhere under your Applications folder for example).

Doubleclick on the LectComm Server application icon to start the server application or on LectComm Client to start the client.

If the program should not start as expected, you can check if there is diagnostic output on the system console. You can view console output using the utility Console which is located in folder Utilities under Applications.

Use the archive lectcomm-X.Y.tar.gz under Linux. Extract the archive's content to a directory on either the command line (tar -xzf lectcomm-X.Y.tar.gz) or using an appropriate tool with a graphical user interface.

Type ./lectcomm-server or ./lectcomm-client on the command line (from the directory where the extracted files were placed in the previous step) to start the server or client GUI, respectively.

An installation program for Windows is provided as file LectComm-X.Y-Installer.exe. It lets you choose the installation location and the components to install. A new program group is created in the Start Menu from where you can start the server and client applications.

This distribution includes a small add-in for PowerPoint showing the number of student questions during presentations. You can launch the installer for the add-in from the program group that was created in the Start Menu. The add-in can then be enabled or disabled by clicking on menu item ETH Lecture Communicator Add-in, located in the Tools menu of PowerPoint.

Alternatively, there is also a ZIP archive containing Windows executable(file This distribution does not contain the PowerPoint add-in.

Extract the ZIP-archive to a location of your choice and double click on the LectComm Server or LectComm Client application icon to start ETH Lecture Communicator.

If you use a personal firewall on the computer where you intend to run the ETH Lecture Communicator server application, which we highly recommended (see Security considerations for more information on this topic), you must ensure that connections to TCP port 1981 are not rejected. This is the port used by ETH Lecture Communicator clients to initiate a connection to the server.

The server component creates and maintains a log file where it logs all network activity and other relevant information. The log file is named lectcomm_utf8.log and is created in the folder or directory from where the server application is started. The file uses the UTF-8 encoding for non ASCII characters (only used for languages other than English).

Client applet

The ETH Lecture Communicator client application is normally started from a web browser as a Java applet. You therefore need to put the applet on a web server. The web server can either reside on the same computer where the ETH Lecture Communicator server component is used or on an external server.

There is also non-applet version of the client, which can be started by double clicking an icon or from the command line, as mentionend in the previous section. This client version is intended solely for testing the software on the same computer where the server component is running (it cannot connect over the network) and is not suited for productive use.

The file index.html (located under web-client in all distribution packages) is a template for deploying the client applet. Copy the two files in this directory (index.html and lectcomm-client.jar) to a new web-content directory of your web server. Consult the documentation of your web server if you are not sure how to do this. Examples of widespread web servers are Apache on Mac OS X and Linux, and Internet Information Services (IIS) on Windows.

If you deploy the client applet on another computer than where the ETH Lecture Communicator server application is used, you must edit the applet file index.html and indicate the hostname or IP address of the computer where you intend to run the server application (so the client application knows to what computer it has to connect during class). This information must be entered in the value attribute of the server parameter element (e.g., if your host name is you would have the line <param name="server" value=""/>).

If the web server is located on the same computer as the ETH Lecture Communicator server application you don't need to edit the index.html file. The client applet automatically connects to the computer from where it was downloaded if the server parameter is unspecified.

If you are running the ETH Lecture Communicator server application on a portable computer that you bring to class and that is connected to a wired or wireless network, you most probably get a new (dynamic) IP address every time you connect to the network. There are services that enable you to have a static host name even for computers with dynamic IP addresses. A static host name is necessary if the web server is running on an external computer and if you want to avoid editing the applet's HTML file remotely every time you get a new IP address. Having a static host name is even convenient if web server and ETH Lecture Communicator server are both running on your portable computer, because otherwise you have to determine your current IP address during class and communicate it to your students. () is a good example for a dynamic DNS service. It is free for up to five host names and there are many clients for all major operating systems. We successfully use this service in our own courses at ETH Zurich.

Please see Security considerations for some security considerations with regard to dynamic DNS services and ETH Lecture Communicator in general.

The user interface language and format of numbers and dates for the client applet can be configured using the language and country parameters in index.html. To provide a German interface with date and number formats commonly used in Switzerland, you would for example specify the options <param name="language" value="de"/> and <param name="country" value="CH"/>. The set of two-letter codes for the available languages is indicated as a comment in the provided index.html.

If you want your students to be able to choose among various languages, you can have multiple instances - one per language/country pair that you want to provide - of the applet-tag in your HTML file index.html (i.e., you need to copy everything between and including <applet> and </applet>).

Example session

The ETH Lecture Communicator server's user interface is divided into two panes: the Edit pane to create and modify questions and the Use pane to manage these questions during class (send them to students, visualize the results, etc.). You can switch between the two panes by clicking on the corresponding tab in the upper part of the user interface.

Lecture preparation

We will first create a question to collect an overall quality rating for your class on a scale from 1 to 10.

  1. Switch to the Edit pane by clicking on the corresponding tab.

  2. Choose Lickert Scale from the list of questions types in the lower left part and click the New button to create a new question of that type.

  3. Enter a name for the question under General Settings. The name is used to identify a question and to help you finding it again.

  4. Enter the question or comment text and specify range of the rating under Type-specific settings.

You can check how questions are visualized on the students' computers by switching to the use pane and then selecting it in the list of available questions.

Congratulations, you have created your first assessment. Next, let us create a multiple choice quiz.

  1. Select Multiple Choice from the drop-down list of possible question types and click the New button.

  2. Enter a name for the question.

  3. Enter the question text in the corresponding text area and specify if students can give only one or many answers.

  4. Enter the text for all possible answers (up to five) and tick the correct one(s).

You can save the two questions to a file by selecting Save As from the File menu.

Sending questions

The Use pane is used during class. It allows you to send questions to students and to visualize the collected answers.

You now also act as a student that connects to the server. This enables you to see how a typical question-answer cycle works during class.

  1. Start the ETH Lecture Communicator client, either as a stand-alone application or as an applet from a web browser. Click the Connect button to connect to the server (the server application must of course still be running for this to work).

  2. Switch to the server application. Select the multiple choice quiz we just created, located under Available questions in the use pane.

  3. Click Send to send the selected question to all connected clients (at the moment this is most probably only the single client that we have started in the first step).

    If you click on Send w/Resend instead of Send the selected question will be resent when a new client connects to the server later on.

    The question appears under Sent questions, along with the number of answers that were already received (0) and the number of clients the question was sent to (1).

  4. The question automatically shows up below the main window of the client application.

    Choose the answer(s) you want to give and click Send to return them to the server.

  5. Select the question that was sent in the server application under Sent questions. This shows the automatically generated overview of all received answers in the Result area.

  6. Repeat the steps above with the lickert scale question that you have prepared earlier.

If you want to stop the reception of further answers for a question (and, for questions sent out using Send w/Resend, stop the automatic resend to newly connected clients), you can select the question under Sent questions and click Stop. The students that haven not yet sent back an answer are informed that the question has expired and no more answers are accepted by the server application.

You can see the number of students that are currently connected to the server in the status bar at the bottom of the window.

Student questions

Now you will once again act as a student and send a question from the client application to the instructor (the server application). All other students that are connected to the server receive such questions and they can rate the question by indicating if they are also interested or not.

  1. Open the application preferences dialog ( LectComm Server Preferences under Mac OS X or Edit Preferences for other operating systems).

  2. Enable the first option (Allow multiple connections from the same IP address) to be able to run two client applications on your computer that connect simultaneously to the server.

  3. Start a second instance of the ETH Lecture Communicator client application.

    If you are working under Mac OS X and want to use the stand-alone application (and not the applet) you must first create a copy of the application to be able to start two client instances. You can do so by going to the folder where the ETH Lecture Communicator applications are located, selecting the client application icon, and typing Command-C (copy item) and Command-V (paste item).

  4. Connect both clients to the server by clicking the Connect button in each one.

  5. Click Student Questions in one of the client applications and then Ask Question in the window that opened.

  6. Enter a question and click Send.

  7. When the other client application receives the question, the Student Questions dialog automatically opens and comes to the foreground. Select the newly arrived question and click on either I'm Interested or I'm Not Interested.

  8. Switch to the server application and open the student questions window by clicking on the N student questions text in the status bar or by selecting Student Question List from the Window menu.

  9. The student question window on the server shows the questions in descending order of the number of interested students. Most demanded questions appear first, less demanded ones towards the end of the list.


If you have followed the examples in this section you are now familiar with the most important functionality of the ETH Lecture Communicator server and client applications. The following sections discuss some aspects in more detail and cover remaining functionality of the software.

Creating and modifying questions

Question types

The edit pane enables you to create and edit questions, as was shown in Example session. When a new questions is created, a type has to be chosen. If you followed the example session you are already familiar with multiple choice quizzes and lickert scale questions. The following types are currently available in addition to these two: matching questions, item rating, and short answer. All available types are shortly explained in the following sections. Screenshots of an example edit view, the student view and result view are shown for each type.

Multiple choice

A multiple choice quiz consists of a question and up to 5 answers. You can choose if students can tick one or many questions as correct. You can indicate the correct answer(s) by ticking the box in front of the corresponding answer text. This information is used to visualize the result statistics.

The result statistics for multiple choice quizzes shows by how many students each answer was chosen. If you have indicated the correct answers in the edit view, the chart bars for those are visualized in green and for the other answers in red. If you have not indicated any correct answers, all bars of the chart are visualized in blue.

Lickert scale

A lickert scale quiz enables students to give a rating for a single question or item on a configurable range. In the edit view you can enter the question and choose a range for the rating.

Similar to multiple choice quizzes, the result statistics for lickert scale questions indicates how many times each value was chosen. Additionally, the mean value and the standard deviation are given below the bar chart.

Item rating

Item ratings are an extension of lickert scale questions. They enable the students to rate more than one item in a single run. The edit view lets you give a comment or question text, a scale to be used for the ratings and up to five comment texts for the ratings that you want to collect.

In the result statistics for a rating type question you can see a bar for each item. It indicates the mean value and the fine line the standard deviation. The numbers for mean value and standard deviation are also given in the box below the chart.


A matching question contains items on the left side that must be matched with corresponding items on the right side. In the edit view you enter items that match on the same line. When a matching question is sent to students, the items on the right are automatically and randomly reordered, so you don't need to take care of that.

The result statistics for a matching type question shows a pie chart. It visualizes how many time a certain number of correct matchings were made. You can get a list of incorrect matches that were made by students by clicking on the Show Wrong Matches button.

Short answer

Short answer questions allow students to reply with a free text. In the edit view you enter the question and the number of characters an answer can have at most.

The result view for a short answer question lists all answers that have been received in tabular form. By clicking on a line the whole text for the corresponding answer is displayed in the text area underneath the list.

Working with question files

You can save questions (those that are currently shown in the edit pane or in the Available questions area of the use pane) to a file by selecting Save or Save As from the File menu. The window title always shows the name of the file that is currently open or untitled if no file is open.

The other items of the File menu are:

  • New File - clears the currently active (editable) questions and lets you start over with an empty file. If there are unsaved changes you are given the possibility to save them.

  • Open File - replaces the currently open question file by a new one.

  • Open Recent File - this submenu contains a list of recently used question files. Select one of them to open it.

  • Append File - appends the questions contained in a file to the currently active questions.

It is important to note that editable questions (i.e. those shown in the edit pane) are completely independent of questions that have been sent to students. When a question is sent over the network and shown under Sent questions, a copy is made of the original question. If you change the original or remove it (e.g. by deleting it or by opening a new questions file), the sent question is not affected.

Activities during class

During class you mostly work with the use pane of the ETH Lecture Communicator server application. From the examples in Example session you are already familiar with sending questions to students, visualizing collected results and displaying student questions. In this section we are going to explore some aspects that have not been discussed there.

Managing sent questions

During the example session in Example session you might have noticed the check box labeled Show solution in preview area in the use pane. If you want to avoid that the correct solution of a selected question is displayed in the preview area, you can deactivate this check box. This feature is useful if your computer display is projected on the wall during class (if you are using a presentation application to display slides) to avoid that students can see the solution when you switch to the ETH Lecture Communicator application to send out a question.

The setting of the check box affects only questions that have a correct solution (like matching questions and multiple choice quizzes) and only those selected under Available question. If you select an already sent question (under Sent questions) the correct solution is always displayed.

To remove a sent question from the table, you have to select it and then click Remove Question (you will no longer be able to receive answers for the question or to display result statistics). The button Clear Table removes all sent questions in the table.

By double-clicking on a sent question or by choosing Presentation View from the Window menu you get to a (almost) full-screen window that displays a sent question and the corresponding result in magnified format. This view is helpful to show the outcome of a question to your class by means of a projector. The default fonts of the user interface are in most cases too small for this purpose. The zoom buttons in the lower right corner let you change the magnification. The displayed question/result pair can be chosen from the drop-down box in the lower left part of the window. Close the window to get back to the main user interface.

Student questions

The fastest way to get to the student questions window is by clicking on the label in the status bar that indicates the number of received student questions. Alternatively you can open it from menu Window Student Question List,

If you want to be notified whenever you receive a new student question you can enable an automatic pop-up dialog. To enable the pop-up, open the preferences dialog (from the Edit menu on Windows and Linux or the application menu on Mac OS X) and enable the the first check box under User interface.

The Remove Question and Clear Table have the same functionality as their counterparts in the use pane. Once a student question was removed, ratings that are received for that question are ignored and cannot be taken into account anymore.

Session backups

You might have noticed the Session menu or the section labeled Automatic session backups in the preferences dialog that were not mentioned so far.

A session consists of the sent questions, the student questions and the name of the currently open questions file. The current session can be saved automatically from time to time. This feature helps to avoid or at least minimize data-loss in critical situations (in the middle of your class, for example) due to program or computer crashes. You can set the backup directory, the backup interval and choose if the session is to be stored/restored every time you quit/start the application in the preferences dialog.

The items in the Session enable you to save and restore the session manually, for example to create incremental status backups from time to time. By resetting the session (Session Reset Session) all sent questions and student questions will be removed from the corresponding tables.

The session backup and restore facility is intended for short-time storage and is not suited to store sent- or student question data over a long period. If you update your Java installation, install a new version of ETH Lecture Communicator, or change your operating system, you will most probably not be able to use the session files created before the change.

PDF export

The menu item Session Export To PDF brings you to a dialog that lets you export sent questions, results statistics and student questions to a PDF document. This is the best way to archive your session-related information for later reuse, to distribute them to students or other instructors, etc. The best way to archive session data for later reference is by exporting it to a PDF document, as will be explained in the following section.

The items displayed in the right half of the window are those that will be added to the PDF. You can add items by selecting them in the list on the left and clicking the > button. To remove items, select them on the right side and click the < button. The remaining two buttons lets you add or remove all items, respectively. By clicking on Export you can choose a file name. A PDF containings the selected items is then created. The questions in the PDF appear in the same order as in the list of the export window.

Security considerations

While using ETH Lecture Communicator in your classes, students can determine the IP address or hostname of your computer. And it is certainly tempting to try to break into the instructor's computer or even to bring it down for the more mischievous among the students.

We recommend some minimal measures of precaution to mimimize such risks:

  • Use a firewall. A firewall that is properly configured ensures that no connections can be made to not needed TCP ports (e.g., a web server usually listens on port 80 for incoming requests). Most operating systems provide built-in firewalls that are easily configurable. Examples are Mac OS X (under Sharing in System Preferences), Windows XP (in the Advanced tab of a network connection's properties pane) and Redhat Linux (Firewall Configuration). Port 1981 must be left open to ensure that ETH Lecture Communicator clients can connect to the server application.

  • If you use a dynamic DNS service, as was suggested in Client applet, we recommend that you register a host name which is only used during class when you actually work with the ETH Lecture Communicator system and that you ensure that your dynamic DNS service client does not update the IP address for that hostname outside the class. This avoids that students can determine the IP of your computer once the class is over and you after have obtained a new one.

Since ETH Lecture Communicator is open source software, it is possible for anyone with programming and Java experience to look for weaknesses in the source code of the server and to write a modified version of the client or a separate program to exploit them. Altough security and protection against such exploits were major concerns during development of ETH Lecture Communicator, bugs might still exist or we might have overseen potential security holes.

If you think that you are or have been the target of such an attack, a good starting point to look for more information is the server component's log file. It is created in the directory from where the application is started (the name of the log file is lectcomm_utf8.log). All incoming and outgoing network traffic and other potentially interesting information is logged in this file and it might lead you to the origin of attackts and show the cause of problems observed in the server application.