Final course project ideas, requirements, and evaluation criteria

Assigned: April 4
Due: May 4, 5:05pm


The following are a list of course projects. Please select one or desgin your own and notify the instructor of the project you plan to purpue by April 8. Detailed schedule of deadlines and evaluation criteria is given below the list of projects.

  1. Modifying and enchancing a functional image-manipulation and -processing library in Haskell.

  2. Build a game using Lua.

  3. Build a web application using the web server, based on continuations, in Dr. Racket (Web Applications in Racket, Continue: Web Applications in Racket). The following two papers are recommended sources of inspiration:

  4. Use first-class continuations in Scheme or Ruby (or any other language with support for first-class continuations) to build a dialogue management system capable of realizing flexible and personal human-computer dialogs such as those common in airport or train kiosks.

  5. Use the Actor model of concurreny in Elixir to build a dialogue management system capable of realizing flexible and personal human-computer dialogs such as those common in airport or train kiosks.

  6. Use pattern-matching in any rule-based language (e.g., PROLOG or ML) to build a dialogue management system based a set of (instructor-provided) rewrite rules capable of realizing flexible and personal human-computer dialogs such as those common in airport or train kiosks.

  7. Use computational reflection (as supportted in Java, Python, Ruby, Smalltalk, or COMMON LISP) to creatively solve a problem that would be complex to solve in a language without reflective capabilites.

  8. Build a web server or some other client-server application in Go.

  9. Apply program slicing to a problem in computer security, using an off-the-shelf program slicer.

  10. Apply partial evaluation to a problem in software engineering or computer security, using an off-the-shelf partial evalator.

  11. Design your own project. The only requirements are that is must be creative and require an effort worth 20% of your final grade.

  12. Build a Racket Scheme (with first-class closures and continuations) to {C,C++,Java,Ruby,Python} compiler using the 90 Scheme-to-Compiler (presentation video, presentation slides, source code, another approach) as a basis for your translator.

  13. Creatively develop an application or solve a problem in software engineering using higher-order functions and partial function application, currying, and partial evaluation in any language. The following paper is recommended as a source of inspiration:
      D. Quan, D. Huynh, D.R. Karger, and R. Miller. 2003. User Interface Continuations. In Proceedings of the Sixteenth Annual ACM Symposium on User Interface Software and Technology (UIST). ACM Press, New York, NY, 145–148.

  14. Do something interesting with monads in Haskell.

  15. Do something interesting with lazy evaluation in Haskell (e.g., tic-tac-toe).

  16. Do something interesting with macros in Racket Scheme.

  17. Implement a suite of graph algorithms in PROLOG (e.g., cycle detection, shortest path).

Papers

Papers must be three pages long and must be written in LaTeX and BibTeX using the ACM SIG Proceedings LaTeX Templates. Each paper must include one figure and one table, and a minimum of three references to publushised ACM or IEEE papers. Use the LaTeX package lstlisting to typeset any code you include in your paper. Source code in the paper does not count toward the page count. Overleaf (recommended by Adam Volk) is a synchronized, split screen (source,PDF) LaTeX IDE.

Deadlines/Evaluation

(use ACM SIG Proceedings LaTeX style for abstract and paper draft as well)

Component Deadline Points
Abstract: April 11 10
Paper draft: April 25 10
Final presentation: May 2 20
Final paper: May 4 65
Source code/running system: May 4 85
Total: 190

Detailed Paper Evaluation

Follow the recommendations and advice given here.

Component Points
Content: 15
Structure: 10
Clarity: 10
Grammar: 10
Cleanly working LaTeX code: 5
Adherence to ACM SIG style (citations, etc): 5
Tables/Figures: 5
Bibliography (BibTeX): 5
Total: 65

Detailed Presentation Evaluation

Component Points
Slides: 7
Clarity: 8
Creativity: 5
Total: 20

Detailed System Evaluation

Component Points
Functionality: 50
Creativity: 15
Depth: 15
Documentation: 5
Total: 85

Return Home