Il est difficile de répondre sans connaître le niveau et les compétences de vos élèves. Sans ces informations générales, je ne pourrais même pas dire s'il est judicieux de les laisser se perdre dans un projet existant. À mon avis, avant que quelqu'un ne soit prêt à contribuer à un effort open source non trivial, il devrait avoir une bonne compréhension des structures de données et du concept des ADT et de la dissimulation d'informations. Idéalement, ils auraient mis en œuvre certains ADT de base par eux-mêmes. D'après mon expérience, cela manque trop souvent, surtout lorsque la langue utilisée pour instruire les débutants est C, car C n'a pas d'ADT intégré ni de bibliothèque ADT standard et les développeurs sont généralement censés être capables d'écrire leurs posséder ou sélectionner une bibliothèque tierce et, si nécessaire, la personnaliser en fonction de ses besoins. J'ai vu pas mal de projets open source écrits en C où les seules structures de données utilisées étaient des tableaux de taille fixe et des listes chaînées, où chaque algorithme était le plus naïf possible, où la notion d'API était d'exposer des structures et que tout le monde les modifie. Un contributeur qui est familier avec les ADT va bientôt s'enfuir d'un tel projet dans l'horreur. Un contributeur qui n'est pas familier avec les ADT n'apprendra que de mauvaises habitudes là-bas. Si votre objectif est uniquement d'amener vos étudiants à apprendre l'utilisation des systèmes de contrôle de version et de suivi des bogues, il est peut-être préférable de leur assigner un exercice et de leur faire installer un référentiel sur l'un de ces sites. contrôle, navigation de code source en ligne et bugtracking, par exemple Github, Bitbucket, Google Code etc.
Vous pouvez ensuite examiner le travail qu'ils ont fait pour l'affectation et si vous trouvez des erreurs, vous utilisez le bugtracker pour déposer un bug qu'ils alors avoir à traiter en conséquence. Vous pouvez ensuite étendre l'affectation en classant à nouveau les demandes de fonctionnalités à l'aide du bugtracker, etc.
De plus, des sites comme Github et Bitbucket ont une fonctionnalité clone-this-repository. Cela se prête bien à l'enseignement de la collaboration. Selon la compétence de vos élèves, vous pouvez choisir un référentiel existant pour les cloner puis les étendre après vos affectations, ou vous pouvez leur demander d'effectuer une recherche dans un référentiel (correspondant éventuellement à certains critères) et en choisir un pour eux-mêmes. suite à vos missions.
Il y a encore une chose que je crois personnellement devrait être un pré-requis pour contribuer à tout projet open source non trivial: comprendre la conception par contrat, documenter un contrat de fonction, penser dans des contrats de fonction, avoir développé discipline de ne jamais coder quoi que ce soit sans documenter un contrat de fonction en premier. Malheureusement, trop peu de projets open source utilisent la conception par contrat. Encore une fois, un contributeur familier avec cette pratique va bientôt s'enfuir d'un tel projet dans l'horreur et celui qui ne le sera pas ne prendra que de mauvaises habitudes. Cependant, vous pouvez transformer cela en un exercice en demandant à vos étudiants de cloner un référentiel existant à partir de Github ou Bitbucket, puis leur attribuer la tâche pour remplir la documentation de contrat de fonction manquante. Inutile de dire que pour un tel exercice, vous devez d'abord leur enseigner ce qu'est la conception par contrat et comment écrire des contrats de fonction. Une fois que vos élèves ont acquis les compétences que j'ai décrites ci-dessus, je suis sûr que la question de «quels projets open source pourrions-nous contribuer? Il deviendra trivial de répondre car à ce stade, vos étudiants seront en mesure de trouver et de choisir un projet approprié pour eux-mêmes. En attendant, si vous estimez que vos étudiants ont encore besoin d'un exemple de code pour les ADT écrits en C et comment écrire des contrats de fonction, et que vous n'avez pas de tels exemples à portée de main, vous pouvez jeter un coup d'œil dans mon dépôt à Bitbucket. Il a une variété d'ADT communs en C et toutes les sources contiennent des contrats de fonction. Ne hésitez pas à cloner l'une des prises en pension là-dedans et de les utiliser comme base pour les exercices:
Je suis sûr que si vous regardez autour il y a beaucoup de matériel approprié par d'autres auteurs aussi .
* le projet est très intéressant *: cela dépend de votre propre opinion bien sûr. C'est pourquoi je vous recommande de jeter un oeil à http://sourceforge.net/ pour voir ce que vous aimez ;-) – ChristopheD
Merci sourceforge a eu beaucoup de projets. =) – domlao