FCE Mini Projects

Mini Projects are projects which may take between 3 hours and 3 quarters to complete. They all relate to the the main projects, and are marked with our estimates of how much effort is needed to complete them. They all need to be done, if they interest you, please contact the person listed next to the project, or show up at a HackFest (Thursdays, 7:30-9pm, CoC 102)! If you have suggestions for additional mini projects, please send mail to Jen Mankoff, or, if you're an FCE group member, just modify this file yourself. Note that the time-periods are estimates only.

Check out the Mini-Projects Page in educational technology...

Ordered by size

Ordered by topic

Classroom 2000

A hardware voting device.
Estimated time: three hackfests.
Contact: Jen Mankoff
This is to get practice in building simple physical devices which can hang off of computer serial ports. It should be buildable with, eg, radio-shack parts, and possible to reproduce one per student in classroom 102.

 

Setting up Projectors
Estimated time: one-three hackfests.
Contact: Gregory Abowd
Better than a liveboard, more interactive than a whiteboard.
Colored Markers and Erasers for the Liveboard
Estimated time: Three hackfests
Contact: Jason Hong Jason Brotherton
Currently we have three "markers" for the LiveBoard, but they all have the same functionality. In other words, these three "markers" do exactly the same thing. What if we could have each marker represent a separate color for ZenPad? We have the specs for the markers and for the LiveBoard (or we can get them).

Also, what if we could also "hack" an eraser together? After all, it looks like a white board and quacks like a whiteboard...

 

Data Library and C2000
Estimated time: Multi-quarter and beyond
Contact: Jason Hong

CyberGuide

Characterize and set up motion capture system for use as a positioning system
Estimated time: One Quarter
Contact: Anind Dey or Jeff Dempsey
This project involves determining the characteristics of the IMTC motion capture system that we have, and building a S/W library and tools that will support using the system to perform tracking. The system uses stationary cameras to gather data about infrared sources in the environment. For more information on the system, see Jeff's work on the project, see the positioning system "manual", or see any of the other related mini-projects: reading position data or mounting cameras.

 

Writing Java code to read position data off a network socket
Estimated time: One Hackfest
Contact: Anind Dey
This involves looking at the data format of the position information being written to a socket and writing code that connects to the socket, reads the data and makes it available to other applications.

 

Mount positioning system cameras in room 102
Estimated time: One Hackfest
Contact: Anind Dey or Joe Bayes
4 cameras have to be mounted in room 102. The positions and orientations should optimize the area covered by the cameras, keeping in mind that 2 cameras are required for triangulation.

 

Collect and display Stinger bus locations via the Web.
Estimated time: One quarter
Contact: Anind Dey
Mount GPS receivers on Stinger buses and send data to a central location. Then write a web application that can access the data and display the information textually and graphically.

CyberDesk

Add context types to CyberDesk.
Estimated time: Two Hackfests
Contact: Anind Dey
Using existing code as an example, add interesting information types to CyberDesk. Existing types include Food, String, Name, URL, Email Addresses, Phone Numbers.

LlamaShare

Flesh out the Notes/Names viewers for CyberDesk
Estimated time: Two Hackfests
Contact: Mike Pinkerton
The two Java applications/applets for viewing Names/Notes from the Newton w/in CyberDesk need to be fleshed out so that they look nice and operate like the Newton version (such as being able to expand and collapse topics in an outline note).

 

Create new information (notes, names, etc) in CyberDesk and save it to the Newton
Estimated time: Two Hackfests
Contact: Mike Pinkerton
Once the Notes/Names viewers are fleshed out, it would be nice to be able to create or modify content on the desktop and have the information updated on the Newton. The infrastructure to do this is already in place, we just need the UI to actually do it.

 

Write a Calendar applet for Dates information for CyberDesk
Estimated time: Two Hackfests
Contact: Mike Pinkerton
Write a calendar applet/application in Java to be able to view or edit calendar information taken from the Newton. Integration with the existing CyberDesk calendar would be preferred.

 

Add support for all CyberDesk types (existing and proposed)
Estimated time: Two Hackfests
Contact: Mike Pinkerton
Currently, the LlamaShare CyberDesk services only support names and plain text. We would like to add support for dates (calendar), phone numbers, and any new types added by the project above.

Domisilica (formerly CyberFridge)

Installing the large pen-based display in the refridgerator door
Estimated time: Three Hackfests
Contact: Jen Mankoff
This involves cutting open the door and embedding the display in it. We have a door (seperate from a refridgerator) to experiment on.

 

Better Semi-Natural Language Interface to Domisilica
Estimated time: Three Hackfests to 1 quarter (up to the person working)
Contact: Jen Mankoff
Muds present a semi-natural language interface to users. For example, users can type commands like "get ball" or "pick up ball" to get a ball, and "throw ball" or "drop ball" to drop a ball. Although this mechanism can take a noun like "ball" and find the object in the mud that most closely matches it, or take a verb like "get" or "throw" and find the function that most closely matches it, the interpreter has no sense of history. For example, if you said "throw ball" and then "get it", the system would not know what "it" referred to. This project involves adding a history mechanism to the mud, so that it can match up pronouns to the most recent noun. There are other interesting extensions which could be added as well.

 

Visualizing the presence of people in Domisilica based on Location
Estimated time: In-Class project
Contact: Jen Mankoff or Joe Bayes
Joe Bayes is currently working on adding position information to the mud so that people virtually connected to the mud are in the same room they are physically located in. Currently, the mud has a special "map" room which is displayed in the graphical user interface as a map. Add a visualization of the location of people in the mud to the map. This project needs to address security concerns as to whether people want anyone to be able to see where they are. A simple visualization might involve simply displaying dots where people are, without identifying them, and printing their name if they allow it, when the mouse is over a dot.

 

Automatically log people into the right location in the mud based on their machine name
Estimated time: 2 HackFests
Contact: Joe Bayes
Joe Bayes is currently working on digging a map corresponding to the CoC in the mud. Once this exists, when people log in, there should be a function which, based on the machine from which people are connecting to the mud, places them in the corresponding room in the mud.

Savoir

Reading DTMF off a serial port
Estimated time: three hackfests.
Contact: Jen Mankoff,Anind Dey or Rob Orr
Write a program to read DTMF codes produced by hardware and being fed into a serial port of a computer. If possible, write one that works on Unix and under Windows95.

 

Turning DTMF signals into XWindows KeySim events
Estimated time: three hackfests.
Contact: Jen Mankoff,Anind Dey or Rob Orr
Write a program to read DTMF codes produced by the DTMF serial-port reader, and to read in a table of corresponding DTMF->key information, and generate X Keysim events. Ideally, new key layouts should be able to be swapped in on the fly, and the format should be sophisticated enough to allow prefix key type stuff. For an example of how to generate X Keysim events, see the source code for xdvorak (/usr/local/public/src/xdvorak.c.gz)

 

Use a known dictionary to guess what someone's typing on a dtmf keyborad
Estimated time: COMPLETED
Contact: Anind Dey
Completion Details:There is C code available to do this written for a Unix workstation, written by Eric Burhke of Motorola. It's located at ~anind/Savoir/DTMF/train.c. I've ported the code to Java, and the files are located in ~anind/Savoir/DTMF.
 
This is a slightly different version of the previous program: given the key layout on a standard phone, when someone presses a key, it could be any of three different letters. If you have a known dictionary, after two keypresses, there are only collisions (situations when more than one letter could be right) 3.8% of the time. It goes down to less than 1% after three keypresses, and webster's 9th collegiate dictionary had only one collision for words of 6 letters in length. Write an interpreter that will take DTMF signals and a dictionary and present it's best guess as to which word the user intended after each keypress. Jen Mankoff has a paper about this technique (invented by Chris Schmandt and others at MIT) which interested parties can read.

 

Access Atlanta highway traffic information
Estimated time: 3 HackFests
Contact: Anind Dey
Place a modem at the Traffic Headquarters that runs the Georgia DOT Traveller Info web site. Then write an application that connects to that modem and accesses the traffic information, so the information can be used in other applications.
Send GPS data using DTMF on a cell phone
Estimated time: Quarter long project
Contact: Anind Dey or Rob Orr
Using one of the GPS receivers we have, take the output, feed it into a cell phone data port, and automatically transmit the data using DTMF.

CyberJeeves

CyberShadow

CyberNet

CyberMake

CyberNag

Other Projects

Getting Face-Recognition Working
Estimated time: Three Hackfests
Contact: Irfan Essa
This involves getting Irfan's work from MIT up and running here. The next step is to integrate it with one or more of the FCE projects (eg, anything using a positioning system).

Comments or suggestions? Email them to fce-webmaster
Last updated: 1/13/97