Capstone Projects

I am offering various capstone projects with short descriptions below. Students who sign up for a capstone project are expected to meet weekly with me. Students will be graded based on code quality, software engineering practice, documentation quality and overall productivity.

In addition to the usual goals for capstone projects -- learning of good software engineering practice by developing a larger piece of software -- the listed projects also always try to satisfy a need for free software as perceived by the instructor. The reason for this is that such a need suggests the potential for the students to experience interactions with real users. Ideally, students will continue to work and maintain these projects long after the capstone project is over, adding to their experience. If these projects are successful, the hope is that they may turn into true capstones in the student's resume.

Project suggestions

RTF parser (C)
Implement a parser for the RTF file format in C with the goal of extracting metadata embedded in the document. The resulting code must be safe, fast and functional. If successful, the project could become part of GNU libextractor. This is a project for a single student.
PDF parser (C)
Implement a parser for the PDF file format in C with the goal of extracting metadata embedded in the document. The resulting code must be safe, fast and functional. If successful, the project could become part of GNU libextractor. This is a project for one or two students.
Fast region algebra for X10 (X10)
Regions are sets of indices, where an index is the domain of an array. Regions are a useful construct in parallel programming. A region algebra is used to specify and manipulate regions. Common operations include union, intersection, shifting, projection and iteration. The goal of this project is to implement a region algebra in X10 with focus on performance and expressiveness (naturally the implementation must also be correct, tested and documented). This is a project for one or two students.

Christian Grothoff
Last modified: Sat Apr 21 18:23:24 MDT 2007