Undergraduate Projects
My main requirements from people who do projects with me are
-
A weekly report by email (could be two lines long), telling me what
they have done during the past week, and what they expect to
accomplish the following week. I don't care if there is no progress
on a specific week (e.g., during a holiday or exam week, etc), I
appreciate the fact that you have other responsibilities, and may
also have a life, and I will not rush you. But I do insist on
receiving weekly emails, so that I know the status of the
project. Here is an example of a perfect report:
Hello: I have done absolutely nothing last week, and I expect to do absolutely nothing next week. Have a nice day!
- A love of programming. If you occasionally [or more!] write programs that are not part of a homework assignment or course project, then you qualify.
- Independence, creativity & pro-activeness. If you don't know something, that's fine – there are many things that I don't know. I do expect you to realize what you don't know, and actively search for answers. If you are unable to find answers, then I expect you to notify me immediately, so that we can pursue the answers together.
If you wish to participate in any of these projects, please contact me by email.
Table of Contents
1 Open Projects
1.1 A library for manipulating PDF objects
I'm interested in a library for creating, working with, & manipulating PDF objects. In fact, I'm interested in two libraries – one for Scheme and the other for ML.
- Pre-requisites: Compiler construction
- Languages: Scheme, ML
1.2 A PDF analysis tool
I'm interested in a utility that can analyse and collect information from PDF files. This project involves creating a simple GUI-based application that will take one of several requests, perform a search, and synthesize a report. For a number of reasons this is not as trivial a project as this description might lead you to believe, and currently, this functionality is not provided by any available tool, either open source or commercial.
- Pre-requisites: Being a hacker
- Languages: Java or Python
1.3 A Scheme interface to gnuplot
Gnuplot is a powerful, open-source package for plotting data. It has a nasty syntax, though, and lots of options. I would like to be able to generate correct gnuplot scripts from within Scheme, using a more reasonable syntax, that is less prone to errors. This will enable me to generate correct scripts faster. I have a basic idea for the syntax, and I would like someone to help me implement it.
- Pre-requisites: Compiler construction
- Languages: Scheme, gnuplot (you can learn it while on the project)
1.4 DRM/VM
Digital Rights Management (DRM) is a technology used to enforce contractual & legal aspects of software sale & ownership. DRM is typically implemented as a hardware solution. In this project, we shall investigate how best to incorporate DRM capabilities into a virtual machine, to achieve flexibility, speed, and platform-independence.
- Pre-requisites: Compiler construction, APL (Advanced Programming Languages), or equivalents, or willingness to learn about threaded code.
- Languages: C
Take Projects
1.5 A [commercial] social networking application for the iOS platform (iPhone, iPod, iPad)
A friend of mine is interested in a group of students who would like to implement a social networking application that combines realistic geographical information with game-like qualities, to create a captivating social environment that is fun & useful. My friend has experience in graphical design, product management, and the group will need to work closely with him. More specific details, by appointment.
- Pre-requisites: Experience with Objective-C or willingness to learn it
- Languages: Objective-C
Date: 2011-08-15 13:36:16 IDT