Software Evolution Lab Projects for Undergraduate and Graduate Students

I'm looking for energetic people who love to design and build systems. I'm interested in programming tools for understanding and visualizing the (object-oriented) design and software architecture of large systems so they can be evolved. I can often provide financial support for graduate students or exceptionally qualified undergraduates.

There are several kinds of projects (examples are listed at the bottom of this page):

Many of these projects involve object-oriented design and technology, program visualization, compiler technology or software engineering. Projects are for both undergraduates (e.g., CSE 199) and graduates (e.g., CSE 293). Many of these projects could also serve as the basis for a Master's thesis. If you are pursuing a PhD, these projects are only a starting point. Come see me for additional projects. As an example of a recent project that came from this page, see Walter Korman's Elbereth project page.

For more in-depth information about these projects, you may wish to look at my lab's research page, which provides information about current research projects and recent papers. But most importantly, don't hesitate to drop me e-mail or drop by and see me in APM 4210.

Beneficial Skills

Proficiency with Java, C/C++, Tcl/Tk, or Common Lisp programming languages; proficiency with lex/flex, yacc/bison compiler tools.

Beneficial Background

Some background in one or more these areas is useful:

Example Tools Projects

Example Development and Case Study Projects

Example CSE Automation Projects