Final project
What to submit?
Upload a zipfile to the course website named project.zip
containing:
A
README
file. Give your names, pennkeys, and an overview of the files in your project. Briefly describe each of the main components and the order that they should be read. Also list any additional libraries that your project depends on. (i.e. what should wecabal install
.)Main.hs
. We should be able to compile it viaghc --make Main.hs
(if not, theREADME
should explain.)All other
.hs
or.lhs
source filesA directory called
extra/
containing any other files that you need
What to expect at the DEMO
Bring your laptop with your project ready to go to the demo.
After you demonstrate the functionality of your project, expect to give answers to the following questions:
What are the main modules of your program? Why did you divide them up in this way?
Are there any parts of the code that you are particularly proud of? Where did you spend the most time polishing your implementation? What did it look like before? (In preparation for this question, you may want to have the the old version in comments available for comparison.)
What parts of your project correspond to something that we talked about in class?
Was there any part of your project that you had to scrap and redesign? What didn't work the first time? What was the hardest part to get correct? Why?
What sort of testing did you do to verify the correctness of your code? (Unit tests, quickcheck properties, etc.)
What is something you would like your program to do but it doesn't do yet? How would you do this extensions?
If you reimplemented this project in another language, what language would you choose? What would be easier? What would be more difficult?
What did you learn from this project?
Grading
Projects will be graded subjectively, along the axes described in the project rubric, based on the demo and code review. One purpose of the project is to demonstrate how well you learned the course material; so we are not just concerned with whether your project does something cool, but whether it shows off what you have learned this semester.