------------------------------------------------------------------------ 1. Pouvez-vous modifier un logiciel libre sans copyleft le en échange d'argent ? [ ] Oui, mais je dois libérer la version modifiée sous la même licence [X] Oui, et je peux libérer la version modifiée sous n'importe quel licence [ ] Non [ ] Seulement si l'auteur est d'accord You can be paid for working on free software; the free software definition says nothing against getting paid. If the software is non-copylefted then you can change the license in your derivative works. It's free software: you don't have to ask for permission to anybody. ------------------------------------------------------------------------ 2. Pouvez-vous lier un logiciel GPL avec un logiciel LGPL ? [X] Oui, et le résultat est GPL [ ] Oui, et le résultat est LGPL [ ] Oui, et le résultat est dans le domaine publique [ ] Non The GPL has a strong copyleft, the LGPL has a weak copyleft; hence it's the GPL to influence the license of the derivative work. The two license are compatible. ------------------------------------------------------------------------ 3. Pouvez-vous lier un logiciel GPL avec le logiciel couvert par le licence de X ? [X] Oui, et le résultat est GPL [ ] Oui, et le résultat est couvert par la licence de X [ ] Oui, et le résultat est dans le domaine publique [ ] No The GPL has a strong copyleft, and it's compatible with the X license. ------------------------------------------------------------------------ 4. La licence de X est: [ ] Logiciel Libre mais pas Open Source [ ] Open Source mais pas Logiciel Libre [X] Sans copyleft [ ] Logiciel Libre, Open Source et avec copyleft It's a free software, open source and non-copylefted license. Free software licenses and open source licenses are essentially the same ones. ------------------------------------------------------------------------ 5. La licence GNU GPL est: [ ] Logiciel Libre mais pas Open Source [ ] Open Source mais pas Logiciel Libre [ ] Sans copyleft [X] Logiciel Libre, Open Source et avec copyleft It's a free software and open source license with strong copyleft. Free software licenses and open source licenses are essentially the same ones. ------------------------------------------------------------------------ 6. Vous avez écrit un logiciel. Pouvez-vous le delivrer sous licence GNU GPL seulement après avoir reçu un paiement ? [ ] Non, je dois le publier sur Internet [ ] Non, je dois publier au moins dix copies avant [X] Oui [ ] Seulement si le logiciel est Open Source mais pas Logiciel Libre You want to get paid before you deliver the first copy. Fine, you can; after you deliver that copy, that is free software and the person who receives it may decide to redistribute it (or not). It's not required to use the Internet to deliver free software; it's usual, but not required. I pulled the "ten copies" requirement out of thin air. It's not written anywhere. ------------------------------------------------------------------------ 7. Une certaine entreprise a écrit un logiciel propriétaire, mais est maintenant disposée à le delivrer au public sous licence GNU GPL, en libérant le code source sur Internet, *dès qu'elle recevra $100000 de la communauté*. Des donations sont faites jusqu'à ce que la somme de $100000 est atteinte, et le logiciel est publié comme promis. Est-ce que le logiciel est Logiciel Libre maintenant ? [ ] Non, mais il est Open Source [ ] Non, parce que les gens ont payé [ ] Non, il est dans le domaine publique [X] Oui The past history does not count, and has nothing to do with a copyright license like the GPL. The GPL is acceptable for both the free software and open source movements. "Free software" does not mean "gratis software". GPL software is copyrighted, hence is not in the public domain. By the way, I haven't invented anything. This story is true, and the software in question is Blender, a 3D graphic modeller. The community raised $100000 in just a few months with individual donations. Blender is now free software. ------------------------------------------------------------------------ 8. Il y a un «licence header» comme cela: Copyright (C) 2008 John Doe Ce logiciel est libéré sous license GNU GPL, version 3 (voyez le fichier COPYING). Il n'y a aucune garantie. [ ] incorrect, les logiciels GPL ne sone pas couverts par le copyright [ ] incorrect, le GPL exige que l'auteur fournit la garantie [X] correct Copyright is used to implement copyleft: read the GPL, which explains this very clearly. There is (by default) no warranty, and the GPL also says this very clearly. ------------------------------------------------------------------------ 9. La plupart des logiciels de GNU contienent des pièces écrites en assembleur, parce que la vitesse d'exécution est très importante [ ] vrai [X] faux Remember the PDP-10 story in relation to the history of GNU, and how *portability* is important, more than execution speed. In the questionaire I've given at lesson there was a question about portability: GNU software tends to be very portable, hence it cannot contain much assembler; in fact it's mostly written in C. ------------------------------------------------------------------------ 10. Linux est [ ] Open Source mais pas Logiciel Libre [ ] Logiciel Libre mais pas Open Source [X] Un noyau [ ] Un système d'exploitation [ ] Un système d'exploitation, sans noyau [ ] Un système d'exploitation qui inclut aussi un noyau, mais le noyau n'est pas employé beaucoup Linux is a kernel (GPL, hence free software and open source). It's only a kernel, not a complete operating system. ------------------------------------------------------------------------ 11. GNU est [ ] Open Source mais pas Logiciel Libre [ ] Logiciel Libre mais pas Open Source [ ] Un noyau [ ] Un système d'exploitation, sans noyau [X] Un système d'exploitation d'exploitation qui inclut un noyau aussi, mais le noyau n'est pas employé beaucoup [ ] Une collection de programmes en ligne de commande GNU is a project aiming to build a complete free software (and open source, because the licenses used for GNU are acceptable also for the open source movement) operating system, including a kernel. The kernel is called the Hurd: it exists and is usable, but is still immature, slow and unstable, hence it's not widely used. Typically Linux (which is mature, fast and stable) is used instead of the Hurd, in a GNU/Linux system. I've considered correct also "Un système d'exploitation, sans noyau", because you may not know about the Hurd (even if I have mentioned it at least once in class). GNU is not only a collection of command-line utilities. Think for example of the GNU libc (no user interface), or Gnome and the GIMP (graphical user interface). They are three very large, relevant projects which can't be ignored. ------------------------------------------------------------------------ 12. J'ai écrit un logiciel avec un groupe de personnes, pendant une année. Quand nous avons fini nous l'avons publié sur Internet sous licence GNU GPL. C'est un exemple de : [ ] Logiciel Libre [ ] Open Source [X] Le modèle à Cathedral [ ] Le modèle à Bazaar [ ] Worse is better [ ] domaine publique The Cathedral model: no influences from the outside, "closed" development group. But I think I've not been clear enough in the question, hence I've considered correct also "Logiciel Libre" and "Open Source". GPL implies free software and open source, but not public domain. Worse is better is completely unrelated. The Bazaar model is the opposite of the right answer. ------------------------------------------------------------------------ 13. Aujourd'hui les manières habituelles de developpement des grands projets des logiciels libres ont radicalement changé depuis le commencement du projet GNU [ ] Vrai, aujourd'hui la plupart des logiciels libres sont écrits en C++, ce qui rend la coopération très facile [ ] Vrai, aujourd'hui la plupart des logiciels libres sont écrits en LISP, ce qui rend la coopération très facile [ ] Faux, le projet de GNU est très récent [X] Vrai, les gens coopèrent typiquement en utilisant Internet [ ] Faux, le développement et les méthodes de communication sont toujours essentiellement identiques C++ and Lisp are not so widely used, and they are only *programming tools*: they don't solve the social problems of development. The Internet is relevant in this sense, instead. GNU started in 1983, so the technology of the network and of computers *was* significantly different. ------------------------------------------------------------------------ 14. Open Source est différent du Logiciel Libre parce que: [ ] la plupart des licences Logiciel Libre ne sont pas Open Source [ ] la plupart des linceses Open Source ne sont pas Logiciel Libre [X] les philosophies sont différentes [ ] Logiciel Libre est toujours distribué gratuitement [ ] Open Source est toujours distribué gratuitement The first two answers are completely false: the licenses are essentially the same. The last two answers are also completely false: there is commercial free software (which is also commercial open source software). ------------------------------------------------------------------------ 15. C'est une vraie citation : «XXXX is a development method for software that harnesses the power of distributed peer review and transparency of process. The promise of XXXX is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.» «XXXX est une méthode de développement pour le logiciel qui emploie l'efficacité de la correction décentralisé [destribuée], et la transparence de ce procédé. La promesse de XXXX est de meilleure qualité, de fiabilité plus elevée, plus de flexibilité, prix réduit, et la fin de la dependance forcée ["lock-in"].» «XXXX» est: [ ] Logiciel Libre [X] Open Source [ ] Le modèle à Cathedral [ ] Le modèle à Bazaar [ ] Worse is better [ ] domaine publique This quotation is from www.opensource.org. I've also accepted "Le modèle à Bazaar", because the advantages shown in this text are due to the distributed development model. Public domain is unrelated, the cathedral model is exactly the opposite of what is shown here, and free software talks about ethics: there is *no* discussion of ethics here, only of convenience and efficacy. Worse is better is unrelated. ------------------------------------------------------------------------ 16. Je suis à la maison, sur Internet. Je veux employer un programme avec une interface graphique qui est seulement installée sur l'ordinateur de mon bureau. Je dois employer : [ ] GCC [ ] Linux [X] X [ ] Guile [ ] GNU [ ] OpenOffice Of course it's X, a network-transparent window system: I have to run a GUI application across a network. Note that the operating system I use is not relevant: I only need an X server. GCC is a compiler, and Guile is a Scheme interpreter (but many students picked these answers; I have no idea why). ------------------------------------------------------------------------ Rappelez-vous que (null? X) retourne #t si X est la liste vide, et #f sinon. (define f (lambda (x) (if (null? x) 42 (if (null? (cdr x)) (car x) (f (cdr x)))))) Pour les questions suivantes vous devez «interpréter manuellement» le code. Il est très court. Some comments: 1 (if (null? x) ; if x is ()... 2 42 ; then just return 42 ;; If we arrive here then x is not () 3 (if (null? (cdr x)) ; x is *not* (): is its cdr ()? ;; if we arrive here x is a cons 4 (car x) ; yes, the cdr of x is (); we return the car of x 5 (f (cdr x)))) ; no, the cdr of x is not (); we return the ; result of calling f on the cdr of x This is a very simple variation of the "last" function, which returns the last element of a list. This variant returns 42 if the argument is the empty list. Notice that the check at line 3 fails with a type error if x is not a cons: of course you can't, for example, extract the cdr from a number. null? instead works on arguments of any type: it returns #t if the argument is the empty list, and #f if it's *anything else*; hence the check at line 1 can't fail. ------------------------------------------------------------------------ 17. (f (toto1 toto2 toto3)) Quel est le résultat ? [X] Il y a une erreur [ ] toto1 [ ] (toto1) [ ] toto2 [ ] (toto2) [ ] (toto2 . toto3) [ ] (toto1 toto2 toto3) [ ] toto3 [ ] (toto3) [ ] 42 The evaluation of the argument (toto1 toto2 toto3) fails because toto1 is an unbound variable. ------------------------------------------------------------------------ 18. (f '(toto1 toto2 toto3)) Quel est le résultat ? [ ] Il y a une erreur [ ] toto1 [ ] (toto1) [ ] toto2 [ ] (toto2) [ ] (toto2 . toto3) [ ] (toto1 toto2 toto3) [X] toto3 [ ] (toto3) [ ] 42 The argument '(toto1 toto2 toto3) evaluates to (toto1 toto2 toto3). The last element of the list is the symbol toto3. ------------------------------------------------------------------------ 19. (f (cons 1 2)) Quel est le résultat ? [X] Il y a une erreur [ ] 1 [ ] (1) [ ] 2 [ ] (2) [ ] (1 . 2) [ ] (1 2) [ ] 42 The argument (cons 1 2) evaluates to (1 . 2). cdr fails with a type error at line 3: 2 is not a cons (and the argument of f, which evaluates to (1 . 2), is not a list). ------------------------------------------------------------------------ 20. (f (cons 1 '())) Quel est le résultat ? [ ] Il y a une erreur [X] 1 [ ] (1) [ ] 2 [ ] (2) [ ] (1 . 2) [ ] (1 2) [ ] 42 The argument of f *is* a list: (cons 1 '()) evaluates to (1 . ()), which is just another way of writing (1). The last element of (1) is 1. ------------------------------------------------------------------------