Projects

Assignment .5: Mini-JavaScript

Technologies

Mini assignment is to build either a browser plugin, or a some other JavaScript app. It must be "interesting" - with "interesting" meaning what you want it to mean.

You are encouraged to * Use jQuery, jQuery-UI, or any other library of your choice to make development go faster and give you experience using libraries. * Incorporate some form of modern tech. The plug-in interacting with the browser counts as modern tech. So does leveraging new parts of HTML5. So do other things, just justify why.

Once done, please zip up the folder with all your files and email to me by end of day Wednesday 9/7. Please include a README.txt file in the zip with your name, and any instructions, and what the app is supposed to do if it works properly. If there are special needs to run the app (API keys for google maps or whatever) please note it in the readme file.

Assignment 1: Delicious Memex

2011-08-29 to 2011-09-21

Technologies

Description

During the first class students saw and later implemented a standalone version that allows users to load bookmarks from any Delicious account and create a new trail. For this assignment, students will create a related implementation that explores the idea of trails as a mechanism for organizing information using Delicious.

Options

Select one of the following as a starting point:

  1. Improvements to Standalone Trail Maker: Building upon the allowing people to create trails from more than one user's bookmarks, search, go through tags.
  2. Trail Browser: Create an interface that displays all of a Delicious user's trails and lets you navigate through them. The navigation interface could be purely textual and display metadata from Delicious. It could also display bookmarked pages themselves within an iframe or by using a screencapture utility like webkit2png or khtml2png
  3. Post to Trail: Build an extension to modify the Delicious Post a Bookmark screen so that a user can add a bookmark to an existing trail or create a new one.
  4. Trail Maker at Delicious: Build an extension to modify the Delicious bookmarks page to allow users to create a trail from their bookmarks within the current Delicious interface.

Notes

The syntax for trails that we will be using on Delicious is to apply 'trail:[trailname]' to an item to indicate that it is part of a trail and 'step:[number]' to indicate where in the trail the item is positioned. Each item in a trail named "Vacation in Paris," for example, has a tag 'trail:vacationin_paris'. The first item in the trail has a tag 'step:1', the second item has the tag 'step:2', and so on.

Assignment 2: Controlled Vocabularies

2011-09-19 to 2011-10-05

Technologies

Description

In Cory Doctorow's "Metacrap" essay he lists seven problems with explicit metadata. Students will build or modify UI as a way to potentially address one of these problems, making it easier to use a controlled and consistent vocabulary.

Students may also run experiments or analyze existing data to document how much of a problem uncontrolled vocabularies are and how much of a difference a simple fix might make.

Options

Select one of the following as a starting point:

  1. People are lazy: Attempt to prove Doctorow wrong and show that ease-of-use will help this problem. Add UI onto Delicious (or some other service) that helpfully suggests tags to make it easy for you to follow the strict tagging principles you defined in 202. Or, investigate automatic tagging using the mSense API, the Times Topics API or some other approach.
  2. People are stupid: There still exist lots of "Plam Treo" listings on eBay. Add UI onto eBay (or some other service) that auto-corrects spelling mistakes. Or, build a UI that suggests similar spellings that are more popular.
  3. Canonical: Create a metric for the dilution experienced when several non-canonical versions of a link are saved on a service like Delicious. What would the effect be if these links were all consolidated? Or, build a extension for Delicious that automatically inserts the canonical version of a URL.
  4. Or: tackle another one of Doctorow's strawmen, or build another project of your own design that uses a controlled vocabulary or otherwise explores the concept.

Assignment 3: IO/IR and Mobile

2011-10-05 to 2011-10-24

Technologies

Description

The majority of access to information organization and retrieval is through a mobile device of some sort. "There are more than 250 million active users currently accessing Facebook through their mobile devices." - and expect things to continue in this direction. Some think of mobile of "we need to make a mobile version of our product" (fail) while others think of mobile in terms of "we need a mobile interface to our product" (decent), while the most recent thinking is "let's make a mobile product, and worry about the web browser folks later" (win).

Mobile offers both advantages of contextual reference (location), various accessible data and metadata (contacts, calendar), proactive messaging (notifications, SMS), and an "always accessible" usage pattern. At the same time, designing for a mobile experience is tough - small screens, varying levels of hardware and interaction methods, and flaky signal (especially if you have AT&T).

Time to dive into Mobile.

Options

Select one of the following as a starting point:

  1. Build an HTML5 mobile-optimized application that uses either the geo-location abilities or local DB abilities of HTML5. Incorporate a centralized information exchange/API either through your own server code or an existing server's API layer. Describe the techniques for, and advantages and disadvantages, of a "Web-App" approach to mobile development. Options: a "ride finder" once people check in at the start/end of their commute, a local RSS reader container that downloads the article to the local DB, or something else!
  2. Build a native phone application for Android AND/OR iPhone using PhoneGap that makes use of the native information access extensions to JavaScript. Describe the techniques for, and advantages and disadvantages, of a native-but-abstracted approach to mobile development. Options: Wide open, but ideally will rely on more than one local-only datasource, or one local and one remote datasource.

Either: You can use UX from jQuery-mobile or any other mobile UX library of your choice.

Assignment 4: Social and Distributed Classification

2011-10-31 to 2011-11-14

Technologies

Description

Analyze existing uses of social classification and attempt to evaluate their usefulness.

Options

Select one of the following as a starting point:

  1. Build a tool to visualize a user's Delicious or Flickr tags. Create a graph of how frequently tags are used to check for a long tail effect. Let users compare their tag distributions to other students in the class or to their friends. What calculations would you like to provide students in 202 who are working on Assignment 6?
  2. For some prominent blogger that you like who classifies their own work, build a tool to analyze how their own author-chosen tags compare to the tags for that link on Delicious (or wherever).
  3. Wikipedia's organization of categories and disambiguation is itself a socially determined classification and may prove very valuable. Build a Chrome Extension that uses Wikipedia disambiguation pages to suggest narrower, less ambiguous search queries. How does your Wikipedia-generated disambiguation compare to Google or Bing's suggested searches? There is a (long) list of Wikipedia disambiguation pages that your project can draw from. You don't necessarily have to extract all the disambiguation pages from Wikipedia to demonstrate this idea.

Assignment 5: Search and Retrieval

2011-11-21 to 2011-12-15

Technologies

Description

Boolean search, tf-idf, stemming, stop words, and natural language processing are all techniques used to improve access to information on the retrieval end. In this project students will create a tool that illustrates the effects of various approaches to search.

Options

Select one of the following as a starting point:

  1. Write a script in Python that automates the work done in assignment 7 for Info 202, "Term Weighting and Ranking Calculations." The tool you write should provide a way to visualize the effects that changes in term frequency in a given document or throughout the corpus have on searches.
  2. Tweet Search. Using a provided framework for Google App Engine or JavaScript, write some search methods to compare the effectiveness of different search queries side-by-side when searching a user’s messages on Twitter. You could use a combination of simple boolean search, a stemming algorithm, td-idf, or a NLP-based method to provide different results. Evaluate what, if any, benefit a vector algorithm has in displaying relevant results for a corpus with very short documents. Implementations of the Porter stemmer or Porter2 stemmer are available in various languages.
  3. Build the worst possible corpus, a modern-day Library of Babel that contains real readable documents and many, many randomized versions of real documents. Can search engines (Google, a search engine that some other group builds) find the real information amongst the noise? You could use Wikipedia (or Twitter) as a starting corpus.
  4. Or build and explore some other topic of information retrieval that you find interesting.