Lab 4 Functional Programming 2013, TDA 452, DIT 142

Last updated 22-11-2013

Lab 4 is an open-ended lab in which you can design and implement your own mini project. The idea is to give you the freedom to explore Haskell in a direction of your choosing. The project should take you around 20 hours of work working in a group of two, so it is best not to choose something too big; make sure that if you choose an ambitious project you should be able to demonstrate your progress even if the whole code is not complete.

For those of you who don't like the uncertainty that comes with such freedom, below we have suggested some more traditional labs that you can use as the basis of your project. These come from labs from this course or other courses. You won't be able to assume that we are familiar with all these labs however, but we will help if we can.

Guidelines for your projects

Depending on the level of difficulty of the programming task, it could be good to use of some nontrivial new Haskell libraries, for example

Use quickCheck properties for testing of functional code (if this is at all appropriate for your problem).

Unlike with the other labs we might not be able to help you with the specifics of libraries and tools that you might want to use. Fortunately the online Haskell community is a helpful bunch.

Presentation

Projects will be presented with a 5 minute oral presentation (a projector will be available) explaining what the project is about and giving a quick demo. The code should be uploaded to Fire in advance so we can have it ready to browse during your presentation and can ask questions about the code. Be prepared to highlight and explain the more interesting/challenging parts of the code!

Any code which is imported or adapted from another source must be clearly acknowledged, even if it is your own earlier work.

Important deadlines

Some Project/Lab Suggestions

The following are a list of suggestions -- old labs or labs from other courses -- which you can use as the basis for your "project".


Back to Home Page / To the course group