Post Project Ideas

From CS260Wiki
Jump to: navigation, search

Due: Friday, Oct 1, 2010


For the second half of the semester, you will conduct a research project in pairs (more detailed info is on the Research Project page.)

Use this optional assignment to advertise your project ideas. This is your chance to advertise your project to the rest of the class!

We also have another list of suitable project ideas from the course staff (private page, use same login/password as for readings). If you are interested in one of those ideas, post a note saying so below.

Submission Instructions

  • Create a section below with the following wiki syntax: ==Firstname Lastname==.
  • In the section, briefly state, for each idea:
    • What is the research question you are interested in?
    • What methodology would you use? (What would you build? What/how would you evaluate? -- All projects require some study or analysis.)
  • What are your strengths? What are you looking for in a project partner?
  • You can post as many ideas as you like.

Post your Ideas Here

Bjoern Hartmann (Example)

Idea 1: iPad Code Editor

  • Research Question: How can we improve text input on direct touch screens for specific tasks?
  • Summary: Direct touch tablet devices have mainly been considered as consumption devices. However, as they become more prevalent, there will be a need to effectively create and edit content on such devices. Dynamic, adaptable soft keyboards can be optimized for specific tasks, such as code entry. How can novel text entry / interaction techniques improve performance for writing code on such a device?
  • Methodology: Develop a code editor with code-specific input mechanisms. Compare against a standard soft keyboard for two small programming tasks in a with-subjects lab study.
  • Partnering: I am looking for someone with expertise in Objective-C/iOS development. I already have the required hardware (iPad).

Anand Kulkarni

Idea 1: Recursive Task Design for MTurk

  • Research Question: How can we automatically break down complex, high-level work into tasks that can be crowdsourced on MTurk?
  • Summary: Designing effective tasks on crowdsourcing systems like Mechanical Turk is currently something of a black art. It is presently unknown how to convert the kind of general, high-level tasks we do every day ("write a paper about ____; build a webpage containing ____") into tasks that can be solved effectively on crowdsourcing systems. Much of the value added by companies in the crowdsourcing space comes from converting high-level tasks into a format that can be crowdsourced. We propose that the problem of high-level task design can be solved recursively on Mechanical Turk. We can generate HITs that ask Turkers to decompose complex tasks into simpler ones, solve these tasks in parallel, then ask other users to edit together the results.
  • Methodology: Implement a HIT-generating algorithm asking Turkers to decompose high-level work into simpler tasks and or recombine the solutions from low-level tasks into high-level solutions. Build a simple web interface accepting high-level descriptions of tasks and producing usable solutions via this method. Experiment with content creation tasks to verify the effectiveness of this system and determine what kinds of interesting high-level tasks can be solved.
  • Partnering: I am looking for someone equally enthusiastic about crowdsourcing and pushing the envelope of its possibilities. I already have experience with Mechanical Turk.

Pablo Paredes

1) Use the multi-touch system from the lab to develop a mental health interactive system that allows patients and doctors to work in a common surface to enhance communication doctor-patient and to be able to work subjective therapies such as exposure therapy and others.

2) Develop a wearable device to provide positive feedback to people with depression or other mental problems in order to promote their self-esteem recovery. The systems should be a new simple device that provides haptic feedback and that is tied to a smartphone to complement with more subjective (language-based) feedback.

3) Develop a telecommunications collaborative system to promote doctor-patient interaction in low-income countries. The system should account for minimum interactivity constraints needed to deliver effective psychological therapy, as well as account for economic constraints from low-income countries.

Kurtis Heimerl

(In Abstract Prose) contact:

Network Intermittency Study

Despite claims of "ubiquitous networks", intermittent connections are common and pervasive. However, little research has been done on how users react to network failures and understand network properties. To resolve this, we will build an intermittent network simulator (using "airplane mode" to simulate disconnection) and distribute these to a number of users. We will then gather case studies of individual users and their reactions to network failure.

I've already built a rough draft of the simulator, and we have many Nokia n900s lying around as test hand sets. Hopefully you can bring good field experience and a data gathering mindset.

Mechanical Turk Vending Machine

Mechanical Turk has been hailed as a massive shift in the way computation can be done. However, it has yet to realize this potential. We believe there are a number of reasons for this: Firstly, by using a traditional "open-network" system, it is extremely difficult to determine the quality or location of turkers. Secondly, by paying users in cash the system encourages full-time professional turkers rather than part-time temporary turkers. Both of these drive the cost and value of turkers down until the system is unusable for higher-level, valuable tasks.

To resolve this, we hope to build a Mechanical Turk Kiosk that distributes goods rather than money, and deploy it into a number of different communities. This kiosk would allow for job owners to dictate the exact communities they wish to answer their questions (college age english majors, drunk 21+ bar-goers) and elicit responses from these communities. This means that the community of turkers would be more diverse, yet more focused, allowing for better statistical analysis of the results and significantly higher value for answers. Some example kiosks would be mechanical turk vending machines, drink dispensers, or movie rental machines.

This project has been in development for a while and includes faculty and researchers outside of the class. However, no software or hardware has been built, so it would benefit from help at any level. We're currently planning on submitting the design to an upcoming entrepreneurial competition in mid-october, so there are likely commercial avenues as well, if interested.

Dan Lynch

Mathematical Turk as Collaborative Authoring and Information Codification

Think of project 3 but extended to include real-time LaTex editing and graph plotting, etc., in addition to writing helpful documentation. This could be used for mathematicians, physicists, researchers, scientists, technologists, etc., to work collaboratively and share ideas and help tackle problems.

Many solutions will reference well-known theorems, proofs, etc. Hence, using a wikipedia model, we can store and categorize this information enabling authoring of content. Then, people could additionally download content based on categories of math or other subjects that they are interested in.

  • Questions
    • What is the quality of a collaborative authoring system who's content is a result of asking questions? Can a system like this provide scholarly material?
  • Graphics
    • I think a web interface would be appropriate. However, C or C++ would also be a good candidate since graphics processing isn't quite there yet with html5 (unless there are some super hackers in this class?). This is totally up in the air right now though.
  • Categorization and storage and communication
    • I think enabling users to create their own content types would be great. So XML and MySQL combined would make a good "mixed-signal" approach to information codification.
    • All interaction stored as packets to enable collaborative graphics and user interaction as a realization of network traffic.
  • Strengths
    • My strengths are in C, C++, OpenGL, MySQL, BSD Sockets, PHP, Perl, JavaScript, CSS, XML. I also know quite a bit about Python, Java, and others, however, I tend to lean towards lower-level programming whenever possible.
  • Partner
    • Looking for somebody extremely driven and technically inclined. I typically work long and hard on projects (that I am interested in) and would like to work with someone equally driven (and interested).

Thejo Kote

  • Research question: Is it possible to reduce the time wasted waiting for water to arrive in developing countries by crowdsourcing information?
  • Summary: In much of the developing world, a lot of time is wasted waiting for the water to arrive which is a big social cost. I'm involved in a project which is trying to provide more timely information about water delivery in regions with intermittent water supply. The goal is to crowdsource information about when water starts flowing in a valve area (an urban area is usually sub-divided into multiple valve areas) which is then shared with everyone else in the valve area. We plan to incentivize users in the Mechanical Turk form for this information. As you can imagine, there are challenges of verifying this information and preventing collusion. The team has been working on the project for a year. We currently have a pilot underway in south India with about 200 families across 5 valve areas. I built an SMS based system for the pilot over the summer, but we learnt that it is not the best solution. Voice works much better. The goal of the project is to build an IVR system which does the following:
    • Allow users to sign up for the service (designing it in a way that allows the user to easily determine their valve area is challenging)
    • Allow users to notify the system that water is flowing in their valve area
    • Verify notifications while ensuring that there is no collusion (at least in a naive way for now) by calling other users in the valve area
    • Once verified, broadcast message to everyone else in the valve area

There are some other interesting things that can be studied if time permits. For example, is it even a right assumption to make that people are motivated by money to notify the system when water starts flowing? Is it more important to users that people they care about know this information and enable that? How can we collect that information through an IVR system?

Once developed there is an opportunity to deploy it in the field immediately and test for effectiveness. The main measure of effectiveness is reduction in time spent waiting for water (before and after survey data) and willingness to pay for the service.

  • Partnering: Experience hacking on Freeswitch / Asterisk would be useful.

Aditi Muralidharan

1. Search User Interfaces for Linked Data

What is linked data?

Large collections of "linked data" are becoming available. These are structured stores of knowledge about places, events, people, and other types of entities, each with information about various standardized attributes, and linked to each other with different kinds of meaningful links. Some recent examples are FreeBase (, which was acquired by Google in July '10, the New York Times linked open data set of people, places, topics, and organizations (, and DBPedia (, which extracts structured representations and relationships from Wikipedia pages.

What's the problem?

As of now, users explore these rich networked structures with standard browse, filter, and keyword search tools - but these are designed for documents. The document model is of bags of keywords with no real relationship structure and little annotation, but this is not true of the networked, structured information of linked data.

What do I propose to do about it?

I propose to work off my graph-based interface prototype for the New York Times linked data set (which you can play with at to build an search-and-browse interface to the linked data collection Freebase ( that explicitly displays relationship information using graph visualization (instead of implicitly, the way Freebase does right now). We will then run user tests to check if the new interface helps Freebase users perform information gathering tasks relative to its existing interface.

Who am I looking for?

I'm hoping to find someone with experience (or no fear of) developing in HTML/JavaScript/JQuery, because that's where I'm most comfortable, but any web development experience really. Interest in search user interfaces, linked data, or graph visualization definitely a plus.

2. Separating Noise from Signal in your Professional Twitter Life

Professional Twitter Life, Really? Yes.

There are a large number of people who use twitter or to keep track of developments in their professional lives. They follow along on conference hash tags, listen for keywords e.g. "text mining", "information visualization", or just keep ears on other people in the same field for new publications, related projects, talks, blog posts, jobs, etc. They often follow hundreds of other users, each of whom is relevant in some way, but may also tweet about other uninteresting topics and personal news.

What's the problem?

The problem is separating the signal from the noise. A user following hundreds of people is inundated with thousands of tweets a day, some relevant, but some repetitive or irrelevant. Current tools like TweetDeck, Seesmic, and Brizzly, which allow users to have multiple columns of tweets simultaneously, each associated with a different set of keywords (instead of the single stream offered by's interface) are very usable, but don't lend themselves to easy scanning for signal/noise. Neither is it easy to spot the source of a piece of interesting news - a user has to scroll down the list and infer the person who tweeted it first.

What do I propose to do about it?

Dynamically create a stacked area graph, augmented with other cool features, of a tweet stream, that shows the relative prominence of different topics over a chosen time frame.

Drawing from my background in NLP, I propose to segment a users's (or a keyword's) tweet stream into topics based on association rule mining on the words the tweets contain. This is very fast, and identifies words that tend to co-occur, and is a decent substitute for topic. But just a graph is not enough, TwitterStreamGraph ( has a stacked area graph (but it segments a tweet stream based on single words, and is therefore not very useful for identifying topics). We will build:

  • Stacked area graph of topics over time - this will allow users to see at a glance whether there has been any big news.
  • Detailed view of the tweet stream on a particular topic, displaying the tweet stream, the top tweeters on that topic, and diagrams of links and nodes showing conversations between users if any.
  • Information about retweets, tracing through them, and displaying them on the timeline, so that the earliest tweet becomes immediately visible. This has the added benefit of showing how fresh the information from a particular user is.

We'll then find some heavy twitter users who use TweetDeck or Brizzly to manage their large tweet volume, and see how they like using our interface for a few days.

Who am I looking for?

Someone with any kind of visualization-building / web development experience. I would like to use the Adobe Air Framework for this, so experience with that would be helpful too, because I don't have any.

Brandon Liu

Idea 1: Crowdsourcing animation tasks

  • Research Question How does the crowdsourcing framework in Soylent generalize to a creative visual task?
  • Summary: Create an easy way to crowdsource good animations of simple 2D character actions: for example, walking, sitting down. These tasks are time consuming to animate by hand, but by distributing the task among Turks, an animator can put into an editor the starting frame and ending frame and have the crowd fill in the intermediates. The hard part would be in breaking down the task into reasonable subproblems.
  • Methodology: Build some simple manipulatable characters in Processing and a crowdsourcing framework: evaluate the results.
  • Partnering: Someone interested in working with Processing and Mechanical Turk.

Idea 1: Search engine code snippets

  • Research Question How do users evaluate 'snippets' in search engines for helpful code samples?
  • Summary: Help users distinguish between good sites (tutorials, Stack Overflow questions), bad ones (Experts Exchange), mailing lists (deep technical detail, etc), and anything related to code on the web.
  • Methodology: Build a new interface for presenting code snippets. Evaluate how helpful users find the results vs. results from Google.
  • Partnering: Anyone interested in programming languages / search engines.

Bryan Trinh

Idea 1: Bimanual Sketching with Steering Law Evaluation

  • Research Question: How can we improve the ability for drawing accurate lines?
  • Summary:Pen/touch tablets are not direct manipulation input devices, thus are inherently harder to draw accurate lines on than their surface computing counter-parts. They do however have the advantage of not occluding the working surface. This is especially true for digital painting or sketching, getting a view of the whole composition is important. This project focuses on creating better digital representations of the paper drawing surface, free hand, and drawing hand to increase the directness of the interaction.
    • Hypothesis 1: Using Guiard's Bimanual Control Model as a starting point, a more direct interaction can be created with a tablet. The act of quickly rotating a piece of paper with the free hand to execute a line is very intuitive for many artists, yet most drawing applications do not allow this. The free-hand will act to translate and rotate the digital paper synchronously. A simple dynamics engine will also be implemented to further the directness of the interaction. This creates the effect of directly moving the paper to the perfect orientation.
    • Hypothesis 2: By creating a transparent yet large outline of the hand we can better create the interaction digitally. When artists attempt to draw a straight line, the eyes focus on the end point, and the drawing hand is tracked using peripheral vision. Several hovering strokes are gestured before actually drawing the line and it is important that the artist be able to see the motion of his hovering strokes(aka ghosting). This is exceptionally hard on a digital canvas because the drawing cursor is a tiny point.
    • Hypothesis 3: Creating a digital representation of the freehand will help orient the physical space onto the digital space, thereby providing the artists with rotational accuracy and improve line accuracy.
  • Methodology:

The interactions will be created as described above in the summary. The particular language to write the software and input device are still open for discussion, but an emphasis will be put on executing the interactions fluidly and speed of development. Extending the multi-touch interface from hw2 is one possibility and using a wacom tablet is another. The interactions will be evaluated vs existing sketching applications using the steering law. The steering law is a derivative of Fitt's law extended to two dimensions. Basically it is just another quick check method that evaluates how close one can trace some path.

  • Partnering: Anyone interested in this project.

Matthew K Chan

1. Speech Pronunciation via Games

Kam et al. has proven the success of using games to teach English literacy on mobile devices in India, but how well will games and mobile devices work for learning English pronunciation? This is considered to be in the realm of education and technology.

  • Methodology: This project already finished one phase and will be conducting user studies at Berkeley Middle School soon. Games will be made using Macromedia Flash and a speech recognizer merged together.
  • Partnering: Anyone interested in this project.

2. M.Health - Detecting mental disorders such as depression via cell phones

The World Health Organization already predicts that depression will be one of the top/leading mental health disorders by 2020 yet there are insufficient resources for those at-risk groups. Moreover, is it possible to assist the patients and health practitioners with cell phones that can monitor mental health via voice and provide feedback? This is considered to be in the realm of ubiquitous computing and preventative health care.

  • Methodology: This project already has a model that can reasonably predict a person's mental status, but not enough to replace a health practitioner. Next step is to put it on the Google Nexus One and run user studies.
  • Partnering: Anyone interested in this project.

3. MultiTouch tables and group collaboration

No real research question, but the multitouch table is currently an endless pit of research opportunities. Slap widgets are very interesting, especially when a multitouch table is combined with memory of some sort.

Thomas Schluchter

Collaborative Tool for Developing User Research Insights

In theory, the generation of concepts in a user-centered design process should be anchored in a deep knowledge of and empathy for the future users' needs. The insights from ethnographic user research are a proven way to identify and surface these needs. But how do designers commit to a shared vision of these insights, and how do they keep these insights present as they get more deeply involved in concept generation and selection? How do they counteract the effect that the more work they put into something, the more attached they get to that work, rather than always focusing on user needs?

In reality, there is often a process gap between ethnographic research and concept generation that only continues to widen as the design process progresses. Consider a typical scenario: The person doing the research presents insights out to the group. The other team members receive a second-hand account of things that happened in the field. There are artifacts that compress the massive amount of field data into consumable length.

There is an experiential distance between the person using the research and the knowledge embodied in these artifacts. (This only gets worse when the researcher just hands off a slide deck and isn't part of the design team). Consequently, research, from the designer's view, is often just words. There are two problems coming out of this: lack of adoption and lack of presence. Lack of adoption means limited buy-in (and limited empathy) for the insights. Lack of presence means that the bits and pieces of insights are buried in Powerpoint presentations or Word documents, and are never looked at again.

Both problems, how to create a shared understanding of research and how to represent that understanding in a lasting, engaging and accessible way, are interesting. However, I will concentrate on the first one. My question is: Will collaborative sense-making address the lack of adoption problem and increase the utilization of research insights in the concept-generation and selection phase of the design process?

In terms of a project, I would like to explore that question using video as an example. The idea is to prototype a system that allows multiple people to watch a video in a shared space and annotating it while watching. The annotations generate awareness of each other's thoughts and serve as a way of storing initial insights as close to the medium as possible. In a second stage, it should be possible to extract the annotations and create a meaningful representation that abstracts from the temporal nature of the video (the team can't watch it over and over again to remind themselves of the content), yet stays close to the original experience of watching.

There's recent research on collaborative sensemaking (, as well as on information sharing in the design process using technology ( and on collaboration/sharing of time-based media ( to start from.

Drew Fisher


Robots have more limited range of motion and different degrees of freedom than humans do. People are bad at handling things with more, less, or different degrees of freedom and range of motion than they have, particularly when teleoperating or directly manipulating robots


With a motion capture system and skeletal modelling, observe how people demonstrate actions (say, picking up an object, transferring it between hands, and putting it down in a new place). Map these onto the robot's range of motion, and if the robot can't mimic a pose, give feedback to the user. Hopefully, observe different feedback mechanics producing demonstrations of differing quality.

Backup Proposal

(If we can't obtain access to a motion capture system in a reasonable timeframe): The PR2 robot presently has two teleoperation modes, each of which has issues. It can keep its joints rigid, and you can control the joints with a PS3 controller, or you can have the joints float and move the arms themselves, but then it takes both human arms to effectively manipulate one robot arm, making two-handed tasks impossible. Project: design software to let the demonstrator lock certain degrees of freedom, allowing the manipulator to focus on interesting degrees of freedom.

Useful skills if you think this either of these interesting:

  • Familiarity with Linux, C, and Python (the PR2 uses each of these)
  • A good understanding of linear algebra