COS 126/226 Course Development
Department of Computer Science
The Department of Computer Science runs a summer program for students to
work on projects that have the potential to evolve into course materials for
the introductory computer science curriculum at Princeton and beyond.
We seek talented students in all fields,
not just computer science majors.
Non-COS majors bring to the table not only knowledge in their field that we
might not have, but also can help us decide what we can add
to the course that could make it more valuable to students in their
There are a huge number of potential tasks for people to take on; our
preference is for everyone to work on things close to their level of
expertise and interest, so the "job description" will be tailored accordingly.
To give you an idea of what we have in mind, here is a list of some ideas,
though we expect that people will bring their own ideas into the process.
In fact, some of our most successful projects in the past have been
student-generated, so do not feel limited by this list of ideas.
- Infrastructure for MOOCs.
Blockchain, Merkle trees, or cryptocurrencies.
Git version control DAG.
- A programming assignment version of 20q.net, using
either binary search, minimax, or neural networks.
- Rank members of congress by ideology (SVD) and leadership (PageRank)
using matrix/digraph of bill cosponsorships.
Ideology Analysis of Members of Congress
- Song database using freedb.
- Analyze government databased from
- Interactive graphics for scientific visualizations.
Geographic information systems using
Census data visualizations such as
Age and Sex Composition.
Census dotmap of every person
in 2010 Census.
Small Area Income and Poverty Estimate
Census microdata for social and economic research from
- A medical project using The Visible Human Project.
- 3D graphics / wireframe applications using
- Astrophysics assignment using
the Sloan Digital Sky survey.
- Text mining and topic analysis of
The Congressional Record.
- Analyze social networks from
UC Irvine Network Data Repository.
- Web graphs from
Laboratory for Web Algorithmics or
Stanford WebBase project.
- Analyze ingredients in grocery items at Walmart.
See this article.
- Estimating race/ethnicity using
Bayesian Improved Surname Geocding (BISG)
and publicly available data.
- Real-world graphs from Stanford Large Network Dataset Collection,
such as the Wikipedia digraph.
- How to tell someone's age when all you know is her name
by Nate Silver
(combining baby name database
and actuarial tables
- Use TST to implement dictionary autolookup tool for students learning machine stenography.
A stenography keyboard only has 22 keys, and produces English words or phrases by playing "chords" of keys - of which there are hundreds of thousands of combinations.
- Artificial intelligence assignment (students programs competing
against each other in some game).
- Analyze large scale datasets from the
Machine Learning Repository,
for clustering, topic modeling, document classification and other machine learning tasks.
- Use ML to identify handwriting recognition of numbers
or latex symbols
or Unicode characters.
- Use OpenStreetMap data.
- Real-world data from Data is Plural.
The program runs from June to August, but the dates are somewhat flexible.
and you need not work continuously or for the entire period
(though you do need to be on campus while working).
You will be paid on a hourly basis (about $13 per hour), up to 40 hours per week.
Housing is not included, although you
can apply for Princeton summer housing through MacMillan.
Also, we expect you to be able to attend weekly group meetings.
The 2013 application
deadline is Friday, April 19. We'll make admission decisions
approximately two weeks after the deadline.