CSCI 439: project resources

There are two different forms of project available for the course, either a research project+presentation or an applied project+demo.

Option 1: research project+presentation
For this option, the student must:

For grading, the proposal and presentation are each worth 10% of the overall project grade, and the paper itself is worth 80%.

Option 2: applied project+demo
For this option, the student must: develop and implement a compiler or similar tool (interpretter, translator, etc) based on a chosen pair of source/target languages. Either or both languages may be existing languages, variants of existing languages, or entirely new languages created by the student.

As with the research project listed above, the student must submit a one-page proposal by 5pm October 30th. The proposal should clearly outline (the relevant subsets of) both languages and why they were chosen. If only a subset of a language(s) is to be supported then that subset should be clearly described by the proposal.

The student's completed compiler (or other tool) must run on csci's pups/cubs, and is to be submitted through git, as described below, by 5pm December 9th. The submission must include all source code, makefiles, and clear/detailed instructions on how to build/use the tool.

The student will carry out a short (15-20 minute) demo of their product during the final week of labs [exact presentation schedule to be worked out in November].

For grading, the proposal and demo are each worth 10% of the overall project grade, and the project code/makefiles/instructions are worth 80%.


Git project distribution/submission

A git repository has been made available, all relevant materials should be submitted by the usual fork/clone/add/commit/push cycle (recap shown below).

Reminder of git fetch/clone/submit cycle:
To obtain the project repo initially
   ssh  csci  fork  csci439/project  csci439/$USER/project
   git clone csci:csci439/$USER/project

To submit, be sure you are inside your cloned repository and have done a "git add" for each file to be submitted, e.g. git add filename Create a commit for the submission, e.g. git commit -m "final project submission" Push the project git push origin --all (being paranoid here with the --all just in case you've created branches)