Vous êtes ici : FIL > Portail > Licence Info > L3S6 Info > OpenDevs

Communaut de dveloppeurs (OpenDevs)

  • Dcouverte et intgration dans une communaut de dveloppeurs de logiciels libres.
  • Apprentissage et utilisation d'outils (git, patch, make, shell, tests, …).
  • Communication avec la communaut (irc, forums, emails, …).
  • Lecture et comprhension de code existant pour se rendre compte de l'intrt des bonnes pratiques.
  • Rigueur dans les mthodes de dveloppements et attention aux dtails.

Cette unit se droule au S6 de la licence mention Informatique. Il s'agit d'une UE optionnelle.

Responsable

Damien Cassou: email et site web

Volume horaire

En prsentiel
4h de projet par semaine (l'enseignant est l 3h30), sur 10 semaines
En dehors
4h de travail personnel par semaine

Crdits

5 ECTS

Prrequis

  • Connatre un paradigme de programmation et un langage ;
  • Mettre en uvre les concepts de l'approche imprative, fonctionnelle ou objet ;
  • Mettre en uvre des tests automatiques lmentaires ;
  • Analyser les rsultats produits par l'excution d'un programme ;
  • Adopter une mthodologie de conception rigoureuse : crire et utiliser des tests, documenter un programme…

Comptences

A l'issue de ce module les tudiants doivent :

  • pouvoir interagir avec une communaut de dveloppeurs
    • matriser les outils de communication classiquement utiliss dans ces communauts (irc, forums, emails…) que a soit en franais ou en anglais ;
    • savoir installer et configurer un environnement de travail similaire celui des autres dveloppeurs de la communaut (IDE, dpendances, outils console…) ;
    • savoir compiler, installer et excuter un logiciel dont le code source est fourni ;
    • faire accepter un travail une communaut (besoin de rigueur dans la ralisation du travail et sa proposition la communaut) ;
  • comprendre, faire voluer et tester un programme non trivial
    • lire et comprendre un code source existant ;
    • corriger ou ajouter une fonctionnalit un code existant ;
    • mettre en uvre une validation systmatique et automatique de la correction du bug ou de la nouvelle fonctionnalit.

Comptences du rfrentiel licence auxquelles contribue cette unit :

  • Participer la conception et la ralisation d'applications logicielles :
    • connatre plusieurs styles/paradigmes de programmation et plusieurs langages ;
    • mettre en uvre les concepts de l'approche imprative, de l'approche fonctionnelle, de l'approche objet et de l'approche multi-tches ;
    • comprendre l'importance de la notion de test de logiciel, mettre en uvre des tests lmentaires.
  • valuer une solution informatique :
    • analyser, interprter les rsultats produits par l'excution d'un programme ;
    • expliquer et documenter la mise en uvre d'une solution technique.
  • Matriser au moins une langue trangre, notamment l'anglais.
Semaine Remarque
lundi 4 jan dbut 1re phase
vendredi 15 jan  
vendredi 22 jan pas de sance pour le groupe 1
vendredi 29 jan  
vendredi 5 fv correction/prsentation jeu et dbut 2me phase
vendredi 12 fv  
vendredi 19 fv interruption pdagogique
vendredi 26 fv  
vendredi 4 mars  
vendredi 11 mars  
vendredi 18 mars pas de sance pour le groupe 2
vendredi 25 mars prsentation et soutenance du journal de bord

L'valuation s'effectue suivant une procdure de contrle continu. 3 notes seront donnes :

  • la note de bac sable rendra compte de votre travail de cration d'un jeu et d'adaptation d'un framework de jeu existant.
  • la note de prsentation rendra compte de votre soutenance sur les travaux que vous aurez raliss.
  • la note de rapport rendra compte de votre rdaction du journal de bord. Elle prendra en compte l'autonomie du groupe, les difficults rencontres, la qualit des changes avec la communaut, l'assiduit, la comprhension du code, la russite de l'installation du logiciel, la russite de la configuration de l'environnement de travail et l'avis de la communaut sur les interactions avec l'tudiant. Le rsultat du projet (correction de bugs, ajouts de fonctionnalits, …) jouera un rle moindre dans la notation.

L'unit acquise apporte 5 ECTS.

Rgles d'organisation

Rgles gnrales

  • quipes de 4 5 tudiants
  • rendus sur Moodle

Rgles pour le bac sable

  • Le code source Java d'un framework de jeu est mis votre disposition : github DamienCassou/lille-game-framework
  • Vous obtenez des points en :
    • implmentant un jeu (la qualit du code est primordiale). Vous devez utiliser le framework fourni ainsi que Apache Maven. Vous devez aussi utiliser un gestionnaire de versions et en donner l'accs votre enseignant.
    • proposant des changements par pull requests : amlioration du code, des tests ou de la documentation
  • Vous ne devez pas toucher au code du framework (sauf pour envoyer des changements par pull requests). Votre jeu sera test avec le framework officiel !
Votre jeu
Sur Moodle, inscrivez l'URL d'un repository Git sur lequel j'ai les droits en lecture. Quand je corrigerai, je ferai un clone de votre projet, un checkout du dernier commit avant la deadline, puis mvn exec:java : ceci doit lancer votre jeu. Votre repository doit seulement contenir votre jeu, pas le framework ni aucune autre dpendance.
README
En plus des sources de votre jeu, votre repository doit contenir un README avec la liste des membres de l'quipe et les instructions pour jouer.

Rgles pour les projets libres

  • Un membre par quipe est responsable de la communication avec les mainteneurs du projet.
  • Contactez les mainteneurs du projet : prsentez vous, dites pourquoi vous les contactez et demandez quels sont les besoins du projet.
  • Commencez par les plus petites tches pour vous familiariser avec les outils et les procdures. Proposez vos premiers changements et commencez travailler sur autre chose sans attendre le retour de la communaut.
  • Types de tches possibles : traductions, documentation, cration de ressources (icne, musiques, vidos, …), site web, tests, corrections de bugs, ajouts de petites fonctionnalits…
  • Vous serez not sur votre capacit interagir avec la communaut plus que sur votre capacit faire une grosse tche. Concentrez vous donc sur les petites tches et faites en beaucoup.

Rgles pour le journal de bord (par quipe)

  • fichier PDF
  • Moodle
  • 25 mars 13h00
  • 1 rendu par quipe
  • Le journal de bord sera discut avec l'enseignant le mme jour que la soutenance
  • Organisation
    1. Une section Timeline avec, jour aprs jour (et pas par semaine !), le travail de chacun (avec son nom). Si vous avez travaill en binme/trinme, mettez les noms de chacun.
    2. Une section Contributions avec, pour chaque contribution (patch, remonte de bug, traductions, graphiques, …), le travail de chacun, les dates, les succs et les checs. Vous pouvez insrer des screenshots pour illustrer vos contributions.
    3. Une section Apprentissages qui liste vos apprentissages et difficults.
    4. Une section Communications dans laquelle vous copiez tous vos changes : emails, chats, messages sur des forums, rapports de bugs, pull requests, …

Rgles pour la soutenance

  • entre 10 et 12 minutes par quipe
  • vous devez rsumer le journal de bord de faon visuelle
  • vous devez prparer des slides
  • vous pouvez prparer une dmonstration ou une vido

Projets

Voici une liste, non exhaustive, de projets sur lesquels vous pouvez travailler. N'hsitez pas en proposer d'autres si vous en connaissez qui vous tiennent cur. Les seules contraintes tant que le projet doit tre libre (pour que vous puissiez y contribuer) et actif (pour que vous puissiez avoir du retour). Pour avoir des informations gnrales sur un projet, consultez OpenHUB en plus des sites web du projet.

Consultez les rgles d'organisation avant de vous lancer.

ducatifs

  • plm, outil d'apprentissage de la programmation, du Java
  • tuxpaint, logiciel de dessin pour enfant
  • gcompris, logiciel ducatif, du C++
  • drgeo, un outil de gomtrie interactive, du Smalltalk

Pour les dveloppeurs

  • Crystal, un langage avec la syntaxe de Ruby et de la compilation, du Crystal
  • magit, le client Git le plus efficace, du Lisp
  • amber, un Smalltalk pour le web, du Smalltalk et du Javascript
  • eclipse, environnement de dveloppement gnrique, du Java
  • git, gestionnaire de version distribu, du C
  • pharo, un Smalltalk moderne, du Smalltalk et du C
  • subversion, gestionnaire de versions non distribu, du C

Jeux

  • Hedgewars, jeu de stratgie tour par tour dans le style de Worms, du Pascal, du C++ et de l'Haskell
  • andor's trail, jeu de rle pour Android, du Java
  • teeworlds, un jeu de tir multijoueur en 2D, du C++

Internet

  • firefox, navigateur web, (liste des tches interactive)
  • weboob, des outils pour interagir avec les sites web sans utiliser de navigateur, du Python
  • k-9 Mail, client email pour Android, Java
  • leaflet (et ses nombreux plugins), cartographie sur le web (quivalent libre de Google Maps), du Javascript

Scurit

Autres

Documents

Les documents du module de COO vous seront trs utiles (par exemple ceux concernant les gestionnaires de versions).