Spring Semester 2006: January 30, 2006 - May 5, 2006
The following projects are currently available for the Spring 2006 offering of 600.392: Senior Design Project. All of these projects are offered by faculty members, there are no industry projects this semester. The projects are listed in no particular order whatsoever.
Build an open-source graphical tool for exploring directed graphs. Only a small part of the graph is shown at once. The challenge is to build a natural and responsive GUI so that the user can navigate through the graph.
Directed graphs are terrifically useful. They can be used to represent many kinds of relationship data. (Examples: facebook friends, terrorist connections, family trees, proof trees, linguistic sentence diagrams, UML diagrams, program profiles, the food web ...) Several existing systems (e.g. Graphviz) can draw graphs nicely. But their layouts become unreadable with more than a few hundred nodes. This project takes aim at graphs with millions of nodes, via interactive exploration. Nothing like it currently exists. There are many interesting design issues including
We do have a prototype already, and one of the authors of Graphviz is further improving the back-end graph layout for us. However, many design and implementation puzzles remain. Be prepared to work hard, think hard, and garner recognition. The goal this semester is to turn our partial prototype into a complete, solid, open-source system that will be useful to many. The immediate application that is driving our design is to produce a debugger for the Dyna language. (For example, students in Declarative Methods should be able to use it later in the term.) However, the tool has many uses. Ideally we should publish our work in a conference such as Graph Drawing, Information Visualization, or Computer-Human Interaction.
Develop a physically accurate and visually appealing simulation of the Frigits approach to cartoon-style triggering contraptions (think Tom and Jerry). Aside from being fun to play with, the simulation could be used in mathematics and physics education, possibly leading to publication. Extending the simulation into a strategy game is also a possibility.
Build a sensor network testbed deployed on the 4th floor of the Wyman Park building. The testbed consists of 40 Mote Sky "motes" connected to the department's Ethernet network through 20 Tmote Connect devices. Write the software that controls the sensors as well as a number of applications that run on the motes.
Required skills: C/C++, Linux; helpful skills: PHP or other web scripting language, MySQL, Python, Java; skills you will learn: programming sensor networks (TinyOS, nesC), embedded software, web programming, resource allocation, databases.
Develop an adaptive, question-based tutorial to help students learn the basics of imperative programming. The system should only present material that is really needed according to previous solutions entered by the student. There is lots of related work to consider; the system would see use in undergraduate computer science education at JHU, possibly leading to publication.
The project is to integrate a commercially-available medical navigation system with a JHU robot for use in neurosurgery (skull and spine surgery). The navigation system consists of an optical tracking system (camera) that monitors the position of special markers that are attached to the patient and to surgical instruments. It also contains software for visualizing medical images (e.g., CT scans) and for creating a surgical plan. The robot system contains a force sensor and operates on the principle of cooperative control, where the robot and surgeon jointly control the surgical instrument. It will create "virtual fixtures" that help the surgeon execute the surgical plan. The project will require the development of robot software in C++ under RTAI/Linux (RTAI is a Real-Time Application Interface). Testing will be performed at the medical school with foam bones.
Develop a control system to automatically "choreograph" physical devices such as lights, motors, lasers, etc. to a given soundtrack. Although initial prototypes of the system could be simulated, the eventual goal is to actually build a complete system including the physical components; a "dancing fountain" of sorts is most likely at this point.