2010-03-12 8 views
8

J'enseigne la programmation à mes neveux et je veux qu'ils améliorent leurs compétences en contribuant à des projets open source. Maintenant, ma question est, savez-vous un projet open source qui convient pour un programmeur débutant. Ce que je veux dire, c'est que le projet n'a pas de base de code importante, le projet est très intéressant et le projet est écrit en C parce que j'ai choisi le langage C comme langue de départ mais vous pouvez suggérer d'autres projets dans d'autres langues. Mon objectif ici est d'améliorer leur logique en lisant d'autres codes sources, de se familiariser avec les outils de développement disponibles tels que le bug tracker, le système de contrôle de version, etc. et d'ouvrir leur intérêt pour la communauté open source.Contribution Open Source pour un programmeur débutant

Merci. =)

+4

* 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

+0

Merci sourceforge a eu beaucoup de projets. =) – domlao

Répondre

3

Cela a déjà été demandé?

Open source project: beginners [closed]

+2

Je voudrais fermer comme dup, mais toutes les questions qui traitent exactement ce même problème sont soit "page non trouvée" ou fermé ... –

+0

s'il vous plaît supprimer votre réponse. ce lien ne fonctionne plus. – NikosKeyz

2

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 .

0

J'ai toujours trouvé que le projet freebsd était bon pour enseigner aux gens comment programmer en C. Ils recevront une révision de code par des commettants qui expliqueront comment être meilleurs et qui ont de bons docs, http://www.freebsd.org/doc/en/books/developers-handbook/book.html. Vous pouvez vous porter volontaire pour corriger les bugs: http://www.freebsd.org/cgi/query-pr-summary.cgi et ils ont une grande liste de choses à faire: http://www.freebsd.org/projects/ideas/ideas.html certains sont simples et d'autres sont difficiles

1

Je recommanderais GitHub car ils peuvent commencer sans vraiment avoir à contacter les gens pour obtenir un commit l'accès au référentiel, et où un commit incorrect ne créera pas de problème car il ne s'agira que d'un commit "local".

+0

PS: Je suis à la recherche de contributeurs à mon projet de bibliothèque RPC (https://github.com/green-coder/small-rpc). – Vincent

+0

vincent je veux contribuer à vos projets. J'en ai traversé quelques-uns. voici mon email: [email protected] – faysal

Questions connexes