This page is kept for historical purposes only. Please see the home page for my current situation. —Luca Saiu.

DLL rattrapage Project

Notice that I have changed some rules for the rattrapage: be sure to read them all before starting.

All text added since the first publication of this page is written in green (like this), in order to help you quickly find it.

Make sure you correctly deal with legal issues such as copyright and license notices; you can reuse any piece of published free software you like, as long as you respect its license. (This means that you cannot take any random piece of code from the net where no license is specified, and of course you can never pretend you wrote anything you didn't write: that's cheating and makes me very angry). The finished combined software must be a clean source tarball, with clear authorship, copyright and license information. You can omit the actual license and refer to a dummy "license file" if you don't want to really release your code as free software, but legal notices must be there.

You must subscribe to the mailing list. If you only have Internet access at the university lab, that will be enough.

Even if that's not realistic for large free software projects, for simplicity I allow you to write mailing list messages in French rather than in English (if you want). Variable names, comments and documentation must be in English; I'm not asking you to write great literature; let's say that your English should be at least as good as my French.

In collaborative mode you have to use bzr for getting the latest sources -- unless a volunteer comes forward I'll manage the central repository for you, but you can maintain your branches is you want. I'll try not to participate too much in development; I can help you, but you have to write the code.

A mark of 10/20 is very easy to get: any fourth-year student should be able to satisfy the minimum requirements.

But you can do much more. Do a glorious hack. Surprise me.


Project description

The project must be implemented in Scheme and run on Guile, on GNU/Linux systems. If you submit something different I will ignore it. You can use Guile version 1.8.x or 2.0.x, as you prefer. It shouldn't make a lot of difference for the tasks you have to work on.

This project is about text analysis: frequency analysis, substitution ciphers, Huffman coding, substring search, regular expressions and simple automatic translation.

Clarification: you have to support all 8-bit iso-8859-1 7-bit ASCII characters (not only lower-case letters as in some examples you can find on the Net), including for example every character you find in the corpora below. Support for all 8-bit characters in iso-8859-1, a superset of ASCII, is optional and worth more points. Still more points if your 8-bit solution correctly supports both Guile 1.8.x and Guile 2.0.x.

Specific tasks are on our bugzilla installation; you can do as many of them as you want. Bugzilla entries contain some links to additional information you will need, and and indicative "value" of each task in points (over a total of 20). I didn't add a lot of taks since I expect most students will choose solo developing, but If you have more (on topic) ideas, ask me. If they are reasonable I will add them as new tasks.



Possibly the hardest part in this project is to familiarize yourself with the software we use. You have an opportunity of learning something you will use again in the future; or if not, you will at least learn to learn quickly, and to use the documentation -- this is really important.


Here are some suggestions:

Frequently-Asked Questions

Most of these questions were frequently asked during the project which ended in February.

Back to my home page...

Luca Saiu
Last modified: 2012-05-31
Copyright © 2011, 2012 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.