3i Logo


3i (Individualized Interactive Instruction) is a research project initiated by Professor William J. Kaiser, director of the ASCENT Lab at the University of California, Los Angeles, and Rick Ainsworth, director of the Center for Excellence in Engineering and Diversity (CEED). 3i is an NSF funded project that is aimed at enhancing the classroom experience for both the students and instructor. It's an educational system that allows students to anonymously communicate with the instructor in real time via the student application, while the instructor is able to monitor and assess all of the students via the instructor application. This system will prove to be extremely beneficial to all of those involved as it will provide students an innovative and fun learning experience, while providing the instructor a thorough assessment of the students' understanding of the material being covered. Please note that this system is very similar to the ETS Discourse tool created by ETS, but our system has the perks of being completely open-source and cross-platform giving it a configurability aspect that the ETS Discourse tool lacks. For a more concrete explanation of the system, please refer to the Decription section of the website.

Please note that all this material is based upon work supported by the National Science Foundation (under Grant No. 0342049). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. The authors also wish to acknowledge the support of Hewlett-Packard Corporation for mobile computing equipment used in instruction.



System Architecture

The 3i system employs a very simple client-server architecture, where the student applications act as clients and the instructor application acts as the only server. Students are then able to connect directly to the instructor via the student application, while the instructor is able to monitor all of the currently connected students via the instructor application. For those not familiar with a client-server architecture, here's a simple visual demonstrating the setup:

System Architecture

System Description

The basic idea is that students will be able to use their application to connect to the instructor application via the instructor's IP address. Once this connection has been established, the student has currently engaged in a 3i session with the instructor. From the instructor's perspective, a 3i session is a lecture composed of various queries that can be sent to connected students. Each of these queries consist of a question, visual, and answer. From the student's perspective, a 3i session is a series of queries (without the answers, of course) where the student is prompted to answer a thought-provoking question with an accompanied visual. Once all students are engaged in a 3i session, the instructor will be able to navigate through previously-created queries, sending selected queries to the students. The students will then be able to solve the sent query while the instructor monitors the progress of the students keystroke-by-keystroke through the instructor application. This allows the instructor to be fully engaged with the entire thought process of each individual student in the class, while students are able to receive instant verbal feedback based on their responses. It's all so simple, yet so very effective!!

System Application

The student application consists of a very simple and user-friendly GUI that won't discourage even the most non-computer-savvy students. Here's a screenshot of the student application:

Student Application User Interface

The student application consists of three main parts that come into play only when the student has properly connected to the instructor application. This can be done by going to File --> Connect To.. and specifying the instructor's IP address. Once the connection has been established, the student has been engaged in the 3i session and should await for incoming queries at the instructor's command. The student can then use the following to interact with the instructor:

Instructor Application

The instructor application is a bit more involved that the student application since it provides means to monitor and analyze all connected students. Here is a screenshot of the GUI:

Instructor Application User Interface

The instructor application consists of four main parts:

Design and Implementation

All of our code is written in C++ using the wxWidgets cross-platform GUI library. This means that our applications can run on practically any platform (Windows, Mac, Linux), but we recommend using a Windows machine due to some stylistic design decisions we made.

As for some implementation issues, the system runs over TCP/IP even though it relies on real-time communication between students and instructor. The reason for choosing TCP over UDP or another real-time internet protocol is because require reliable data transfer (especially for updating changes in the student's answer box) and TCP provides us with this. Also, TCP has proven to be very effective, especially when the system is used in an ad-hoc setting (with no outside network traffic). This is the ideal environment from 3i, although it has been very succesful in environments with heavy traffic as well.

Lecture File Format (version 2)

Information about the lecture file's file format.

Results and Publications

Our paper that documented the design and implementation, as well as the effectiveness of 3i, was accepted for publication in the 2007 American Society of Engineering Education (ASEE) Conference: Andre Encarnacao, Paul Espinosa, Lawrence Au, Greg K. W. Chung, Lianna M. Johnson, William Kaiser, "Individualized, Interactive Instruction (3i): An Online Formative Assessment and Instructional Tool"

One of our team members, Dr. Greg Chung (researcher with CRESST), has compiled together both data and results for the various 3i sessions we've held throughout the past year. This data is currently being used to promote 3i and will be used in the future for publications. Please refer back to this site in the future to see these results.

We do have a publication from use of the ETS Discourse tool in the Electrical Engineering 10 course at UCLA - an introductory circuits course. Dr. Greg Chung and Professor William Kaiser collaborated on this paper and also put together a PowerPoint presentation with the gathered data.


Our current software system package includes the following:

  1. Student application (version 1.5.2 build date Dec. 19, 2007) – student.exe
  2. Instructor application (version 1.5.2 build date Dec. 19, 2007) – instructor.exe (TCP Port 2500 is the default port# used for the TCP/IP connections from students. Please unblock this port on the instructor machine.)
  3. Source code for both applications - please contact us (see below) if you'd like to contribute to the 3i system!
  4. 3i PowerPoint 2007 Add-In (build date Feb. 19, 2008) 30MB – 3i PowerPoint 2007 Add-In.zip **NOTE** If you installed the Add-In before Feb. 19, 2008, uninstall it using Add/Remove Programs in the Control Panel BEFORE you install this version! **END NOTE**. Add-In for Windows version of PowerPoint 2007 that lets you generate 3i lecture files and images. This download is pretty large because it includes some supplemental files just in case your system doesn't already have them. After you unzip the file, please read "README FOR INSTALL INSTRUCTIONS.txt" or see this website about the 3i PowerPoint 2007 Add-In.
  5. Instructional video of system - coming soon
  6. LS4 and EE10 sample 3i lecture (Note: each lecture consists of a *.lec file and images, all zipped together)


Contact: For now, contact Andre Encarnacao with any questions/regards/concerns.