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

DEVL (Développement de Logiciel Libre) - 2009

2010-08-30: Exposés écrits pour le rattrapage: les détails sont expliqués ici.

There is a new unofficial mailing list: if you are a DEVL student you are strongly advised to subscribe. the old list on doesn't work any longer.

DEVL is a course introducing the philosophy and practice of free software taught by me at Institut Galilée, Université Paris Nord. This year the course was in French.

Useful resources for the theoretical part

You can find the course slides on the DEVL 2007 page, and other material on the DEVL 2008 page.

I've given a long seminar about free software at the Villetaneuse IUT on the 15th December. The slides I've used can be quite useful also for you; they don't cover all the theoretical topics in our course, but most of them are there. Reading the slides is a particularly good idea for a quick review.

Useful resources for the practical part

I've not personally read it yet, but many people have recommanded this free book conceived for command-line beginners: Introduction to the Command Line.

You are strongly encouraged to use the Guile manual. It's very well-written.

Some students asked me for a tutorial on Scheme. For people having some time to spend (in a useful way) I have recommended the SICP video lectures: it's a full course in video you can freely download, following Structure and Interpretation of Computer Programs (the whole book text is also freely available on the net, here) by the book authors Harold Abelson and Gerald J. Sussman. The course is about programming in general (with some emphasis on computer languages), and it uses Scheme as a tool. Enlightening and surprisingly deep for an introduction.

Matériel du cours en français

Plusieurs étudiants souhaitent du matériel en français. Les sujets du cours sont presque complètement couverts par ces documents.


You can find here all the material that I distribute on paper in class.

Travaux pratiques (Lab exercises)

Big Project

The "Big Project" has its own page now. The big project page also deals with the changes for the rattrapage session.

Use the latest version of guile-network-game! Version 0.0.2 has many changes and improvements, first of all a complete demo game supporting network and simple artificial intelligence. Notice that I have eliminated the function interactive-game, which is now replaced by a new function, about as easy to use (see the demos). Sorry for the incompatibility, but the problems with interactive-game were unfixable, and had particularly nasty effects on slow computers.

The "console" functionality (see scm/console-demo.scm) is completely new.

Read the examples and the README file in scm/big-project/demo. Some old demos also have minor changes. Notice that I have added many new useful functions and macros which you can use, also in already-existing files.

Written exam

Here is the text of last year's exam, with the correct answers marked and some comments.

The written exam will consist of 20 multiple-choice questions, in French. For each question, you will have:

Your written mark will be the sum of the scores for each question.
Some questions will be about Scheme, as this is the only technical topic we have covered in some depth.

Final mark

This is how your final mark will be computed. It's just a more formal way of stating what I've always said in class: what I have promised doesn't change.

Let's define the sum with saturation _⊕_ as a function of two parameters, x and y:

xy = 0 if x+y < 0
xy = 20 if x+y > 20
xy = x+y if 0 ≤ x+y ≤ 20

If b is the sum of all your bonuses (0 if you have none), p is your big project mark (or 0 if you submitted no big project) and w is your written mark (0 if you were not present at the written exam), then your final mark will be (b+p)⊕w. [I've not written "bpw" as _⊕_ is not associative]

Note that b∊(ℚ⁺∪{0}) (I may give fractional bonuses, but no maluses), p∊(ℚ⁺∪{0}) (I may give fractional project marks, but no negative marks), and w∊ℤ (the written mark is integer, possibly zero or negative), hence ((b+p)⊕w)∊(ℚ⁺∪{0}). If your final mark is fractional, I will bring it as it is to the jury, where it will be rounded by excess or by defect.

I think these rules to be very generous: my purpose is only to incite you to spend time thinking about the topics we've covered in the course, and to make you learn some programming. I have no interest in giving you a bad mark.

Back to my home page...

Luca Saiu
Last modified: 2010-08-30
Copyright © 2009 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.