CSE 505 Projects
Autumn 1999

The 505 project should involve writing a paper (approximately 10-15 pages) on a topic related to programming language design and implementation, and may also involve a programming project. Students can work individually or in pairs on the project and paper. (More work will be expected of a pair than an individual.) Optionally, students can give a presentation in class on their work.

A brief project proposal is due on November 15 (by e-mail). The project is due Dec 13.

There is quite a bit of flexibility regarding the topic -- it could be to discuss a particular programming language, to compare two different languages, to discuss a programming language feature. You can also do an implementation project. One possible implementation project is to write a program in a novel language. In this case your paper should discuss not just the particulars of the project, but also what the relevant special features of the language are, and how they helped and hindered the development. Perhaps better, implement it in two different languages and compare. You can also implement an interpreter for a novel language. Yet another possibility is a historical analysis and discussion of the evoluation of a language or set of languages. (See "Simula and Smalltalk" for an example of this type of paper, written for an earlier 505 offering.)

If you have still a different idea for a topic, please talk with the instructor -- we can probably work something out.

There are some pointers to external sources of information on the main class web page. In addition, some relevant ACM conference proceedings are POPL (tends to have more theoretical papers), PLDI (more implementation-oriented, especially compilers), OOPSLA (for object-oriented stuff), and others. The principal ACM journal in the area is Transactions on Programming Languages and Systems. Other conferences include ECOOP (the European Conference on Object-Oriented Programming), Constraint Programming, International Symposium on Logic Programming. Please also feel free to ask for suggestions as to where to find information!

Finally, here are a few specific suggestions. I may add to this list if more ideas occur to me.