Homework #3 - Final Project Description
The exercises and homework assignments we've given you so far have been
mostly small programming problems or brainteasers of our devising. Now
we want to give you an opportunity to work on something a little more
substantial, and we also want you to pick the topic! We hope that this
will give you a chance to use your knowledge of Logic to explore an application area
that is of interest to you and perhaps to build a tool that will be
useful to you in other settings.
General guidelines for the project are as follows:
- Final projects will be due the last week of class; we will use the last class session and
the final exam period as an opportunity for a project showcase. More details to follow.
- One big challenge will be in picking a project that is complicated enough to keep you engaged and busy, but also simple enough that you can reasonably expect to complete it by finals week. Your instructor will be pleased to review project proposals and give you feedback to help with this. It is often a good idea to choose a project that you can scale up or down if you make more or less progress than you'd expected.
- If you have an idea for a project but don't know how to get started, please ask the instructor. We can try to give you pointers to get you started or tell you if the project you're thinking of is too ambitious (or not ambitious enough :-)
- The project should be new work, not something that you wrote previously.
- We want you to have fun!
Some possible strategies for picking a project topic:
- Was there something we talked about in class that you'd like to explore in more depth?
- Is there a tool or utility that you'd like to build, perhaps to help out with some other task or project?
- Is there an algorithm for manipulating logic you'd like to implement. Or perhaps you'd like to
make a more efficient based implementation of one of the algorithms we explored.
- Is there a logic related program that you've written previously in another language that you'd like to try rewriting in Haskell?
- Is there a Haskell-related library/idea/application based upon logic
that you've read about somewhere (in a book, web article, blog entry, mailing list) that you'd like to investigate more deeply?
- Is there a solver you know something about, and would like to try and embed it in Funlog?
- Is there a search based problem you'd like to program in Funlog. If its a large problem
perhaps you could profile Funlog to see how we could speed it up?
What to do
- Decide if you want to work alone, or in a team of 2. If you
decide to work as a team choose a partner.
- On Wednesday, November 12, 2014, you must hand in a 1 page project proposal.
of what you think you might want to do. Be as specific as possible.
- You will get some written comments back on Monday, Nov 17, 2014. You can get
started on your project right away. You need not wait for the feedback, but I hope
it will be useful to you.
- A written project report is due on Wedneday, Dec 3, 2014. It must
include the code, and a presentation about the project. Presentations
should be in the format of a slide show, in Power point or pdf format.
- An Oral presentation will be scheduled for Wednesday Dec 3, or Wednesday
Dec 10 (final exam day for our class).