COS 333: Project Ideas

New item(s) at the front.


The ideas here have come from a variety of friends on campus. I've edited their ideas into a somewhat uniform style and format, but have tried to leave their ideas in their own words. You're welcome to approach the people listed directly, and I would be happy to act as an intermediary if you prefer.

New for the Spring 2011 semester:

The Daily Princetonian [Patrick Wendell '11, Executive Editor for the Web,]

The Daily Princetonian website presents articles and several forms of multimedia content related to campus and local-area news. Completely redesigned in 2007, we have developed a sophisticated web application built on Django and a MySQL/Apache backend that is used by over 100 staff members to publish the paper, and averages 30,000 pageviews from the general public every day. Developed, managed, and maintained entirely by students, the web team of the Daily Princetonian offers unparalleled opportunities to make a significant impact and do highly visible development and design work.

We are looking for students that would be willing to work in collaboration with the web team to develop significant, modular projects that can be integrated with our existing website to make the site more engaging and useful for our readers and present the news in new and interesting ways that are only possible with the innovative use of web technology.

A few reasons why choosing us for a 333 project is a good decision:

IPHONE/ANDROID APP: The Daily Princetonian is looking for a team of developers to produce a mobile phone application (Iphone preferred, other platforms possible as well), that would allow access to all of the content and functionality of the Daily Princetonian web site in an intuitive and powerful mobile interface.

Potential Milestones:

WYSIWYG LAYOUT DESIGNER: The Daily Princetonian is looking for a team of developers to produce a browser-based layout design system that will allow an easy and intuitive way to rearrange the placement and appearance of content on the website. Traditional layout design for the web is very heavy on dynamic content inserted into static HTML templates, styled with static CSS and Javascript. We envision a heavily AJAXified system that can be used to dynamically generate the HTML, CSS and Javascript for creating new layouts and designs for the Daily Princetonian's online content.

Potential Milestones: [Donna Liu, Founder,,] is an experimental news and information platform for the community of Princeton, NJ (both town and gown). AllPrinceton's goal is to provide web-based news-gathering, information organization, and practical distribution of any and all information that the community finds useful. This includes original articles, written both by AllPrinceton and selected authors; a feed aggregator for RSS feeds from the community; a multimedia feature section; a live twitter aggregator; directories, both civic and commercial; free classifieds; aggregated events; the ability to integrate web-based community tools like SeeClickFix, Flickr, AllOurIdeas, and third-party video hosting services. seeks assistance in developing advanced information gathering and distribution systems. Already some former COS 333 students are helping to develop a read-only iPhone app for the site. We are looking for additional help this year in extending our reach into the mobile Web in the following ways:

AllPrinceton is also interested in entertaining suggestions from COS 333 students on ways to improve the user interface of the site. We would be happy to offer the AllPrinceton platform for experimentation in community news solutions.

Virtual Shelves: Creating an Information Visualization Interface to the Library Catalog [Clifford Wulfman, Library Digital Initiatives Coordinator,]

Did you know that less than half of Princeton's 7 million books are in Firestone? That more than 2 million are warehoused miles off campus? What would it be like to browse an alternate-reality Firestone Library, with book stacks that never got full, in a universe where things could be in more than one place at a time?

As Edward Tufte points out in his classic book, /The Visual Display of Quantitative Information/, the lists and tables of traditional catalogs often fail to convey the rich information they contain. The catalog contains a wealth of data about the libary's items, including how big they are, how old they are, and where they would be found if the physical library were actually to be arranged according to a classification scheme, but all that information is difficult to see. If there were a way to tease that information out and present more perspicuously, the library could provide a more servicable browsing interface.

In this project, students would work with the Coordinator of Library Digital Initiatives (a digital humanist with an MS in computer science) to develop a three-tier system:

Frist Campus Center Student Staff Scheduling Application [Thomas Myers, Director of Frist Campus Center, Richardson Auditorium & University Scheduling,]

One idea that comes to mind for the Frist Campus Center is something we’ve struggled with for some years now, and are only able to resolve via a labor intensive manual process which takes hours and hours – that is student staff scheduling application.

In short, the concept be hoping to develop would be the following –

There are retail applications available that do some of these things, but each we have evaluated thus far suffers from ‘square peg in round hole’ syndrome, and if we can create one in-house personalized to Princeton, that would be great.

Ultimately if this is successful, it could scale to other facilities I manage, including Richardson Auditorium and Chancellor Green – both of whom are reliant on student staff to operate


The Commons: A "Serious" Sustainable Computer Game [Sigrid Adriaenssens, Assistant Professor of Civil and Environmental Engineering,, ]

The Commons is a "serious" game that interactively teach players about sustainability and sustainable principles via the multiplayer computer game paradigm, with a rule system based on "The Settlers of Catan". The Commons is unique in that it combines compelling gameplay mechanics with a strong didactic component concerning the important role that sustainability plays in both individual and collective decision making. We are looking for an innovative and creative team (with strong graphic interface skills) to design and develop this game based on a board game prototype that has been extensively test played at Princeton University. The computer game will be Web based and be played by more than 100 players at the time over the course of a couple of weeks.


What is The Commons?

The Commons is an economic and social expansion-based game that teaches sustainable principles to players through the choices they make.

Why create this game?

By playing this game players will become conscious of humanity's impact on the global environment, as well as the issues and challenges that individuals and policymakers face in taking on this increasingly urgent problem.

Where/when does this game take place?

The game takes place in a modern setting on international expansion and development, where developed countries face decisions regarding their choice of infrastructure and their already considerable carbon footprint, and developing countries must balance their desire for economic expansion and increased quality of life with the concomitant potential environmental impact. The game map represents a theoretical distribution of environmental resources that can be exploited by players.

What do I control?

Players represent nations interacting with each other and the global environment. Players control where and when to build cities, and roads, which will affect the resources that they gather and the amount of emissions that they produce. Players also manage the resources that are available to them.

What is the main focus?

Players achieve victory by earning victory points, which can be earned by building cities or by acquiring sustainability points. Development comes at the cost of creating emissions, which take away victory points from players. Players engage in unilateral and multilateral strategies in order to maximize their own ability to earn victory points (i.e. maximize growth while minimizing emissions).

Job Search and Finding Work among Reentering Ex-Prisoners: Utilizing Smartphones for Social Science Research [Naomi F. Sugie,, Ph.D. Student, Office of Population Research, Department of Sociology]

Motivation for the project:

The expansion of the US criminal justice system over the past three decades has made imprisonment a common experience in the lives of low-income, minority males. Virtually all who go to prison eventually return to their communities, where they struggle to avoid re-arrest. Both researchers and ex-prisoners believe that finding employment is the number one priority upon leaving prison; yet, they face numerous barriers to getting a job. The stigma of a criminal record is a well-documented obstacle over and above their already disadvantaged place in the labor market. While a few employment reentry programs have been successful, they are costly. More limited programs have produced null or even negative results.

Even in the face of these barriers, nearly half of ex-prisoners find formal labor market work within the first few months. Largely due to methodological limitations, we know little about the type of work they find and how they find it. The use of smartphones as a data collection tool will help fill this gap, contributing to sociological theory on finding work and to policy interventions supporting ex-prisoners in their job search.

Project Description for COS 333:

Students will develop an open-source Android application, which will be distributed to over 100 reentering prisoners to track their job search experiences. It is also possible that the application will be piloted on a small group of reentering prisoners at the end of the spring 2011 semester. This will be the third smartphone application ever developed for social science researchers and the only application ever developed for a traditionally hard-to-study population. The application will be a three-tier system and will involve the development of:

The application will have multiple, discrete finishing points. These tasks combine the functionality of two previous open-source smartphone applications developed by the MIT Media Lab and Princeton's OPR. These finishing points are listed, in order of importance:

Princeton Panda [Uri Bram '11, Wilson School,]

Princeton Panda aims to become the first port of call for Princeton students looking to answer any university-related question. As such, it will contain original content, organised links to university resources, and easy-to-use interfaces that make previously available information more easily accessible.

Much of the useful information that a Princeton student needs---from library hours of operation, to dinky schedules, to departmental requirement lists---is available somewhere on the internet, but is at least three clicks too far away to be convenient. There is also no central repository of information, such that students can be confident that they'll be able to find what they're looking for, while the information that does exist on various official Princeton sites is not always easily indexed from google. Finally, sometimes students are looking for something (e.g., "what are ALL the important dates to remember during junior spring in COS?") where the question is not well-specified: they don't know what it is they don't know (e.g. when do you apply for internships? When do you find a thesis advisor? When are the main deadlines for competitions they haven't yet heard of?) and so the website needs to organise material based on other people's experiences in order to serve users who don't yet know quite what they're looking for.

There will be a dedicated Panda content team to find and write information for the site--we're registering as a student group in the Spring--but the tech side is clearly key. There are four potential COS 333 projects which would make the website work, and fulfil the vision of a genuinely useful student website.


Self Organising:

----by type

Panda is in the fairly unique position that a lot of its users will be categorisable by type (year group, international status, major) and these interests map well onto the kind of information that will be most relevant to them. As such, it may be possible to make the site "self organising" by student type. This would require categorising every page by its usefulness/relevance to different types of students, and making a website that can re-orgainse itself according to importance for each type.


Perhaps the most exciting option, and probably the hardest to code, is to make the website automatically self-organising on the basis of users' revealed preferences. This would function something like Amazon's "People Who Enjoyed This Book Would Also Like..." function; basically, the website tracks which pages a user has visited (and stayed on), predicts which other pages will be most relevant for her based on the groups of pages that other users have enjoyed, and then makes the right pages most prominent for each user.


The other useful option for a customisable wiki would be one where users themselves could customise the site to suit their purposes. For example, users could 'upvote' pages that they especially liked, and those pages (and other pages "tagged" as similar by Panda editors) could be displayed more prominently for that user.

Complex Search

It's surprisingly difficult to do good search on a wiki. A lot of the same terms come up in multiple searches, and it takes a pretty good search algorithm to know which page is most relevant. Also, a lot of information is not in text form---for example, some of the Hours of Operations pages on the website just use iframes to display content from other websites. I think that a really good search function would combine some kind of 'tagging' of the different pages (inspired by sites such as Flickr, which have done a lot of work on indexing non-text content) with some measure of different pages' popularity, along with the ideas behind more traditional search.

It seems to me that google does a pretty bad job of ranking the importance of different pages within a particular website (try searching on google, for example). OIT often comes top for various Princeton searches (e.g. hours of operation), and I'm not sure that's because people are more interested in that. The ideal Panda search would be able to figure out the relative popularity of different pages and rank search results accordingly. One unique element of this site is that many of the users will be (relatively) similar, so the most popular pages might be almost-universally popular. Taking this to another level, it might be possible to use information about the user (e.g. class year, search history) and situation (e.g. time of day, week or year) to predict which page a person is looking for.

This is the segment I have least idea about if and how it would work in practice. May even be too difficult: search is not easy.

Better Wiki

Current wiki software, while making it relatively easy to edit a page, are still complex enough to stop non-technical people from getting involved. I think there's a lot of space to make an easier wiki-editing interface, especially if we enable contributions to be moderated (so that people can't accidentally or malevolently destroy content). What I'm imagining is an interface for the user similar to "Track Changes" on Microsoft Word: she can click on any piece of text and simply type new content, with her changes appearing on screen for her. These changes could either be submitted to a moderator or could directly affect the site.

Since starting this project I've looked at a lot of the current offerings in this area and, frankly, all of them make it far, far too hard to edit. Even Wikipedia makes it needlessly hard and needlessly intimidating to edit content. First, many people are lazy and the extra ten seconds it takes to enter a separate text editor might stop them from submitting a simple correction or contribution. Second, many people are extremely technophobic and even the appearance of complexity in a text editor will stop them submitting. I know this might sound odd but I truly believe that even a small improvement in simplicity could have a massive impact on people's willingness to contribute. A simple in-screen text editor could make all the difference, perhaps enabling users to perform two or three simple functions such as creating headings and inserting links but basically nothing else.

I actually think this project has decent commercial potential: there could be content-based websites, such as newspapers, universities and businesses, who would benefit from better encouraging users to submit content and, importantly, correct errors.

Niche Project: Smarter Maps

This is a niche part of the Panda project but it could be a lot of fun: it would be great to create a campus map that could tell you where your nearest printer and laundry were. You click or type your location and the map calculates the shortest distance to that utility. It might also be fun to add a more general "shortest route" feature that calculated the shortest/fastest route from any part of campus to another. Neither of these features would be life-changing for students, but I think both would be quite fun and useful.

iPrinceton App Suite [Serge Goldstein, Associate Chief Information Officer and Director, Academic Services, Office of Information Technology,]

I am heading up the team that is developing the iPrinceton app suite (for iPhones, Blackberries and Android; available now). The suite includes an SDK for adding modules to the suite (but, sadly, only for iPhones). The tasks for COS 333 students would be to develop a module for that suite. (Students can download the suite from the App store to see what it currently supports.)

Incidentally, we will shortly add a Help module (contact information), campus tours and a dining services module (menus).

Holdovers from previous semesters, probably still with current interest:

Alcohol Coalition Committee system [Sanjeev Kulkarni, ELE]

Princeton's Alcohol Coalition Committee (ACC) has a working group focused on developing a Princeton specific alternative to AlcoholEdu for College, the online, science-based course that all incoming Princeton students are required to take. Given how often AlcoholEdu has come up during the span of the ACC and how much negative input we've received from students about it, the ACC agreed that it would be worthwhile to have a group work on creating a Princeton-specific alternative.

Roughly, the project would create an interactive and innovative communication tool to enhance campus alcohol educational efforts, a web-based education and information gathering tool for the Alohol Initiative. A web interface would present information in various formats (text, graphics, video, etc.). We would also like to gather information through questions that users would answer, and so a back-end database piece would also be involved. Of course, there might also be interaction between the two -- e.g., answers the user provides might affect subsequent content/questions.

Library data access [Cliff Wulfman, Library]

The library has a large number of potential projects as they make increasing use of digital technology. Here are a few:

The Princeton University Digital Library: PUDL provides access to digital versions of a rich collection of rare books, manuscripts, musical scores, photographs, and engravings. There are large amounts of XML data and several terabytes of digital photographs. Students interested in information retrieval, information visualization, high-resolution image display, workflow management, image processing, and a variety of information-science problems will find many opportunities here.

Daily Princetonian Digital Archives: The Library has begun to digitize the historical run of the Daily Princetonian, from its inception in 1876 through 1997. As with the PUDL, the Prince archive is a trove of complex metadata and digital images currently being served through a commercial digital-library interface. Projects that refine or extend that interface, perform data mining or text analysis, or provide web services for the archive are among many possibilities.

Voyager Locator: Several years ago a Princeton CS student wrote a program that shows users how to find their way to books in the stacks. The library wants to convert this application to work on mobile devices like the iPhone and Blackberry.

Campus info on smart phones [Serge Goldstein, OIT]

OIT has signed an agreement with Terribly Clever (now a part of Blackboard) to develop a set of mobility apps targeted at iPhone, Blackberries, and browser-capable smartphones. OIT provides a data feed (for example, a feed from the events calendar) and Blackboard builds an app that displays the data on various mobile devices. Our contract with Blackboard also allows us to develop our own modules as part of this mobility "suite", and we'd be happy to have students participate. Each such module will typically need to pull from a data feed, process the data, and generate output for various devices.

Campus art collection maps/tours [Sal Rosario, OIT]

There are many pieces of art both outdoors and indoors. It would be nice to be able to locate information quickly when we find a work of art on campus. I know that the art museum has been thinking about this, but a group of motivated students could really put some momentum behind it.

Research project portfolio/catalog/showcases [Sal Rosario, OIT]

Princeton faculty and students are engaged in wonderful research projects. We normally hear about them when they appear on the University homepage, or if we wander to departmental sites. It would be great to have web and mobile interfaces to search and read about the important work going on. This could be a great marketing platform targeting potential donors and potential industry partners for research.

Room / resources reservation system for residential colleges [Lisa Herschbach, Wilson College]

Build a robust, comprehensive room reservation program for the residential colleges, that makes it easy for students to view all of our resources (via photos or videos), reserve spaces, provide account information, etc. Right now each college has their own home-grown version of this, but from the perspective of 'users' (students), it would be great to have a comprehensive portal of sorts, not least since they are often looking for specialized spaces (such as theaters, dance studios, multimedia labs) that not all colleges have -- so it is a lot of work for them to track down where these things exist, who to contact to arrange to use them, etc.

Workflow administrator system for OIT hardware [Martin Harriss, OIT]

The idea is to write a Workflow Administrator. This would be a system that holds a library of templates for tasks that we do around here -- install a new system, move a system from one building to another, decommission an old system -- and a way to instantiate one of these tasks. There would be a part of the system that allowed you to create and edit tasks. The important thing for us, and what would distinguish this from a ticketing system (we already have one of those) is that the proposed system would know, for each step in the overall task, what data would need to be collected at that step (e.g. a computer's MAC address, rack location in the computer room, etc.) The system would also have the ability to run a script at each step that could, for example, populate one of our other databases with the information collected at the various steps. The system would presumably be web based with some kind of database behind it, so it would hopefully have some relevance to today's computing environment. It might present some interesting challenges -- for example, within the part of the system that edits templates, how do you, on a web page, specify steps of the overall task that can be performed in parallel versus those that have to be performed serially?

Systems to support Student Volunteers Council [Kiki Jamieson, Pace Center & Politics]

Here are three ideas from the Pace Center, Princeton's center for civic engagement ( Each of these would help us to improve significantly the effectiveness of public service done by Princeton students. The Pace Center sponsors projects and initiatives that involve more than 1400 participants each year. Programs range from the Student Volunteers Council (SVC -- a student-led organization dedicated to promoting and facilitating student volunteerism in the local communities of Princeton and Trenton ( to Community Action (a pre-orientation program that introduces students to local communities) to Community House (which works with local schools to close the minority achievement gap) to Breakout Princeton (a civic action program) to a lively summer public service internship program.

Community Action Participant Assignment. Each year approximately 150 incoming freshmen participate in a week of service called Community Action (CA). The participants are accepted and assigned to one of 13 groups based on stated preferences, gender, residential college, allergies, and other relevant criteria. Ideally a program could be crafted that would take all these fields from the database and create groups based on them.

Public Service Internship Application Management System. Each year, hundreds of students apply for summer public service internships. We sift through applications in order to select the 160+ who will receive Princeton sponsorship. Ideally we would have a system for processing application information stored in a database. The data from students' completed applications have already been "dumped" into an Access database. We need to be able to sort and manipulate those data into different reports and formats for several colleagues and reviewers. We also need to be able to analyze the data for our evaluative needs.