Tablet PC Capstone Project Ideas

This quarter we are focusing our attentions on the "killer" Tablet PC application of personal notetaking. Lots of people take notes, but most of those notes are done on paper. The Tablet PC provides a convenient way for those notes to be recorded. Many people have written applications that mimic the way people takes notes on paper. Unfortunately, beyond the benefit of using less paper these applications do not benefit much from using the Tablet PC. The challenge is not to change how people take notes (something that is not likely to happen), but to harness the potential of digital notes once they have been taken. Hopefully, the projects this quarter will do this. The following are the four projects for this quarter.

Personal Note Publishing Infrastructure

The basic idea is to provide a service that allows for personal notes taken on a Tablet PC to be automatically captured, organized, and published to the web. The resulting website would then allow the notes to be accessed remotely from any machine, not just other Tablets.

The main aspects of this project would be to develop a mechanism to detect when new note files are created. Then to parse the notes files and convert them to a web-readable form (e.g. images). And finally to automatically publish the notes as HTML on a website.

The system should be completely automatic -- requiring no intervention from the user after the initial setup. Another important aspect is that the notes be accessable for anywhere (e.g. via a web-browser as opposed to a stand-alone application) and that the application be applicable to a wide audience (e.g. only allowing hardcoded publishing to a CS website is a good first step, but not a viable final solution).

One interesting extensions to this project would be to allow for access controls so that subsets of notes could be shared amongst a group of people (e.g. collaborators in a group project). It would also be interesting to provide a mechanism allowing users to tag and organize their notes after they have been published. A final extension would be to allow editing of the ink from the browser after it has been created (perhaps using the ActiveX Ink Control).

Personal Note Information Extraction and Search

The basic idea is to add value to digital notes by automatically extracting useful information from the digital ink. Besides simple handwriting recognition and text search, there are a number of items common to notes that would be particularly useful to extract from them. These include but are not limited to:

In this project the first step would be to extract all the text and drawing from a persons notes. Then detect the specific pieces of data described above and extract them. And finally build a search mechanism to quickly allow a user to find these items and display them. Being able to detect and search over higher level properties of the ink would be a good extension -- for example, detecting math formulae, diagrams, doodling, etc.

Personal Note Editing and Cleanup

People's notes are usually drawn hastily and without regard for layout or format. In addition, notes often contain doodles and other unimportant information. Cleaning up notes would make them more useful for sharing and for reviewing them.

This project would attempt to both automatically and manually allow cleanup of notes in a number of ways. One potential task would be to identify and remove "doodles". Second, allowing ink to be scaled, transformed, split into pieces, or rewritten would be useful. Another form of cleanup/editing might be to identify headings and titles and changing their ink properties to make them bold/colored/etc. Still another idea might be to detect different shapes redraw them more clearly -- e.g. make lines straight, make circles and ovals round, etc.

For this project try to tackle useful editing features that go beyond what is available with current note-taking applications like OneNote and Journal. Also, we encourage you to include automatic, manual, and semi-automatic ways of cleaning and editing the ink.

Personal Note Visualization

With a pad of paper, it is difficult to see more than one page at a time. Also, when reviewing notes it is difficult to browse quickly because notebooks are very linear. The idea behing this project is to create an interesting interface to ones notes that enables quick browsing and visualization.

There are number of potential directions to take this project. First, browsing should be easy so having some high level view of a set of notes seems like a good idea. Also, notes are very different than other types of images so you may be able to use this to your advantage. Another decision you'll have to make is whether you want to display entire pages preserving layout or display only portions of a page -- perhaps eliminating ink that is not very recognizable and highlighting ink that is different from the ink in the rest of the notes. Another option is to use hierarchy in your visualization by extracing headings and titles and other cues that signal a switch from one topic to another.

This is the most open-ended of the projects, with the main requirement being to escape the limitations of flipping through a notebook when reviewing ones notes.


All of the above projects are related to the over-arching theme of notetaking. As such there is a lot of overlap in the projects. While it is not required, you may choose to integrate your work with other groups in order to create a larger more advanced single project.

The benefit of working with other groups is that you will have a larger and potentially more useful final project. Also, there may be some work that can be shared between the groups.

The risk of working with other groups is that your fate may in part lie with the success of the other group(s). Ask yourself, if they do a poor job on something then is your project going to suffer?

The level of interoperability is also up to you. The projects could be tightly integrated into a single entity or they may just share common data types. If you do work with others be sure that the responsibilities of each group and each member are clearly defined to make our job easier when we evaluate the final product.