Luca Saiu - Teaching - DEVL (Développement de logiciel libre) - 2008
DEVL is a course introducing the philosophy and practice of free software taught by me at
Institut Galilée,
Université Paris Nord.
The course is mostly in English.
News
-
2009-02-24: The rattrapage project is ready.
Please notice that I will not accept group projects for the rattrapage session. You will
have to work alone.
-
2009-01-07: Added the written exam solution.
-
2008-11-09: Added exam modalities. There is no difference with everything I've always said, of
course: it's just a more formal statement of what I have already promised in advance.
-
2008-10-11: I've just added some links to resources in French.
-
2008-10-06: the final project page is
available (the original project is now expired: you'll have to work (alone!) on the rattrapage project).
Material
You can access slides and other course material from
last year's course page. Just note that this year the exam rules are different,
and the final project (the original project is now expired: you'll have to work (alone!) on the rattrapage project) is also completely new.
This year I didn't use
my slides
in class, but I still mostly followed them; they can be
good for a quick review.
If you are interested and you want more information you can find online material
here. You will need to study from there if
you didn't come to class; I think the exam will be a little more difficult in that case, so if you study
by yourself and have any question you're particularly encouraged to write
to the mailing list,
or
to me personally.
If you have problems with Unix you can also look
here.
The unofficial course mailing list
I strongly suggest students to subscribe to
the (unofficial) course mailing list.
Project
Everything is explained in the project page (the original project is now expired: you'll have to work (alone!) on the rattrapage project).
Handouts
Sometimes I distribute some material on paper, to be used in class or
at the lab:
If you have problems with English
Here are some links to resources in French.
Examinations and marks
There are two modalities to pass the exam, an implementation project and a
written exam. You can choose either one, or both.
If you do extremely well, you can get 20/20 even with only one modality.
No oral exams.
Implementation project
You can submit any number of tasks for the
final project (the original project is now expired: you'll have to work (alone!) on the rattrapage project). Each correct
submission will contribute as an addend to your project mark. I also evaluate clarity, coding style, and of
course the correctness of copyright and license headers.
Written exam
The written exam will be made of 20 multiple-choice questions, in French. For each question, you will have:
-
0 points for not answering
-
+1 point for a correct answer
-
-1 point for a wrong answer
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, p and w:
p⊕w = 0
|
|
if p+w < 0
|
p⊕w = 20
|
|
if p+w > 20
|
p⊕w = p+w
|
|
if 0 ≤ p+w ≤ 20
|
If p is your project mark (the sum of all your project bonuses, or 0 if you submitted nothing) and w is your written mark
(0 if you were not present at the written exam),
then your final mark will be p⊕w.
Note that p∊(ℚ⁺∪{0}) (I may give fractional project bonuses, but no maluses) and
w∊ℤ (the written mark is integer, possibly zero or negative), hence (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.
Resources on the Net
I appreciate personal enquiry, and may take it into account as a bonus for the final evaluation
if you show me deep knowledge of some topic.
Here I provide some resoruces for interested students who want to get
a deeper understanding, or for people who don't come to class and have to, or prefer to,
study by themselves.
Again, if you don't come to class and have any question you are particularly encouraged to
use the mailing list
or
write to me personally.
Free software philosophy and history
If you have little time I recommend to read at least
Why software should
not have owners, by Richard Stallman.
Open Source
I particularly recommend The
Cathedral and the Bazaar by Eric Raymond.
Lisp
I think everybody should at least try the SICP video lectures. Watch them when you have some time.
-
The Lisp Wikipedia article. This deals with the whole
family of languages, which includes Scheme.
-
The Scheme Wikipedia article.
-
Structure
and Interpretation of Computer Programs ("SICP"), by Abelson and Sussman
(the full text is online).
This is a very beautiful textbook about languages and programming, which also uses and
teaches Scheme.
Some parts may look simple for Master students, but despite being
easy to read this text is surprisingly deep.
-
Structure and Interpretation of Computer Programs -
video lectures:
complete videos of a full course of twenty lectures given by Abelson and Sussman in 1986,
teaching languages, how to write programs, and also Scheme in the process.
Enlightening and entertaining.
-
Teach
yourself Scheme in fixnum days is a good Scheme tutorial. I
recommend this to students whose interest was captured by my
explaination and now want to have a better practical knowledge of the
language. It doesn't need a big effort.
-
Recursive
Functions of Symbolic Expressions and Their Computation by Machine
(Part I), John McCarthy, 1960 (!).
The original article on Lisp, with the original notation.
An absolute must-read for anyone interested in languages.
-
Transcript of Richard
Stallman's speech at the 2002 International Lisp Conference:
about the early Lisp Machines history.
-
If you like Scheme you will surely be interested in the
original Lambda Papers (1975-1980) by Guy Steele and Gerald
Sussman. They're deep but written in an informal style, quite a
pleasure to read.
Extension languages
Emacs
X
-
The X Window System Wikipedia
article is very good, and contains other pointers.
GCC
-
The GCC home page is a good starting point for
understanding GCC. GCC internals are extremely complex, but you can try.
Copyright and licenses
Development methodologies
These are not necessarily related to free software, but they're a very
instructive reading.
I admit that this selection is biased towards Lisp.
Hacker culture
This is light reading.
-
The Jargon File,
edited by Eric Raymond (hence not written from a free software
perspective).
I particularly recommend
Appendix A: The story of
Mel (here
are some annotations which may be helpful for inexperienced readers).
-
Hackers: Heroes of the Computer Revolution (ISBN 0-385-19195-2), by
Stephen Levy, 1984, Anchor Press/Doubleday. I don't know whether a French translation exists.
Back to my home page...
Luca Saiu
Last modified: 2009-06-15
Copyright © 2008, 2009 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.