Dépôt d'exercices

Avoir des tas d'exercices pour pratiquer la programmation

a marqué ce sujet comme résolu.

Comme l’a évoqué @nohar dans le billet « Liste d’exercices de programmation », il serait intéressant de créer un dépôt contenant les énoncés, tests et solutions d’exercices afin de faciliter le travail pour nous développeurs (ou autre), qui souhaitent pratiquer encore plus la programmation ;)

Du coup si vous êtes d’accord ce serait bien d’avoir un dépôt sur le GitHub de Zeste De savoir. Il faut en revanche réfléchir un peu à la structure de celui-ci avant que cela ne devienne un chantier pas possible.

Qu’en pensez vous ?

+5 -0

En vrai, l’idéal serait de pouvoir lire l’exercice sur ZdS et de pouvoir faire "git pull" pour avoir ce qu’il faut pour les tests unitaires …

Je viens de tester Exercism, c’est sympa mais un peu lourd pour le coup. Comme c’est très bien fait, j’approuve le truc.

+2 -0

(J’approfondis mon idée d’utiliser le forum pour les exercices : )

Si c’est officiel, la fonctionnalité devrait être intégré au site sans changer de page. L’une des solution serait de pouvoir télécharger un fichier via un bouton ou curl https://machin. (Cette idée oblige à créer un système de lien raw comme sur github).


Une autre solution (celle que je préfère car moins chronophage) c’est d’améliorer l’intégration git sur le site.

On pourrait intégrer via l’API de github un bloc de code qui contiendrait le code d’un fichier cible, ou un bloc contenant le sommaire d’un repos git.

L’idée serait de créer un bloc code en faisant par exemple : !(github.com/user/repos/branch/fichier.js) comme pour un jsfiddle.

On trouverait : Le code, un lien vers l’original, un lien vers le raw et la commande git pour le télécharger.

(Une tel fonctionnalité pourrait se faire en JS via l’API)

+1 -0

Ben en attendant que ce soit techniquement possible je ne vois aucune raison de ne pas passer par github… Si ce n’est briser l’élan commun et ce faisant, risquer que ça n’arrive en fait jamais.

Ayons déjà le contenu avant de penser intégration : c’est lui qui a de la valeur. Le reste, c’est du détail et ça se gère itérativement.

PS : il faut vraiment que j’écrive ce tuto sur Agile… :D

+10 -0

Github ou autre hein x)

Bon, si @informaticienzero ne le fait pas, je crée un dépot git. Il n’aura ensuite qu’a faire un fork et ça deviendra le dépot “Officiel”.

Pour l’instant, je fais les exercices de Python. Mais vue les ordinateurs que j’utilise … Ça risque de prendre du temps. J’en suis à l’extraction des énoncés des exercices de la liste en Python d’informaticienzero, j’ai fais la moitié de la liste. Je finirait les exercices du C un autre jour. Certainement ce WE.

Dans le dépots git je rajouterai un README (présentant le projet) et un TODO (récapitulant la liste des choses à faire !).

Voilà mon programme pour la journée. (entre autre …)

PS: Certains exercices, comme celui-ci ne sont pas vraiment des exercices, du coup je le zap. C’est le seul de Python pour l’instant mais en C ça m’est déjà arrivé. Aussi dans certains exercices, il y a des liens morts ou des images manquantes. Au mieux on les retrouves, au pire il faut rajouter qu’il faut en refaire une dans le todo, pour les liens ben http://archive.org ou rien sinon ?.

+3 -0

Si vous voulez créer le dépot, aucun soucis, ne m’attendez pas. Je risque de ne pas toucher au PC du week-end.

Pour les liens, s’il s’agit de liens vers des tutoriels ou ressources, on peut pointer sur une ressource ZdS si elle existe, ou bien ressource OC si elle est toujours en ligne et lisible. Ou bien autre si y’a pas ni sur l’un ni sur l’autre.

Pour les images, soit comme a dit @ache on récupère depuis les archives, soit on peut en refaire nous-mêmes.

Également, s’il y des exercices dont vous pensez que ça ne vaut pas le coup de led récupérer, comme celui de l’opérateur virgule en C++ parce que obsolète depuis C++11, discutons-en ici.

Merci à tous, si on fait ce projet jusqu’au bout, c’est une grosse plus-value pour Zeste de Savoir. :)

Bon 🍹 à tous.

À noter que Framagit (comme tous les Framaquelque chose), c’est d’abord et avant tout un démonstrateur d’autohébergement (pour éviter de remplacer une centralisation par une autre). Or, GitLab est très bien mais franchement lourd à héberger.

Disons que sur un projet neuf je me poserais vraiment la question ; sur un projet existant, je ne vois vraiment aucune raison de se taper une migration (vers quoi que ce soit en fait : GitLab.com, FramaGit, GitLab autohébergé ou que sais-je d’autre).

Bah là le projet est neuf.

artragis

Non. Le projet n’est pas "neuf" :

  • Tout le code-source de ZdS est hébergé sur GH,
  • Les contributeurs ont tous un compte sur GH,
  • Beaucoup de projets de tutos ont été faits sur GH,
  • Bref, la communauté a déjà un pied dans GitHub.

Moi ce que j’aimerais comprendre, c’est quelles sont les raisons, autres que philosophiques, pour lesquelles on voudrait utiliser Gitlab ou autre et donc forcer les gens à se créer un second compte ?

Concrètement, qu’avons-nous à y gagner ?

+2 -0

Le projet (banque d’exos) est neuf, mais tous les projets de ZdS sont déjà sur GitHub (je crois). C’est en cela que le choix est plus compliqué.

Personnellement, je pense qu’il est important de conserver une cohérence, et donc de mettre ce dépôt sur GitHub. Par contre, je suis d’accord qu’il est intéressant de décentraliser (de ne pas mettre tous ses œufs dans le même panier).

EDIT — grillé par nohar

Je ne pense pas qu’il y aie d’autres raisons que la philosophie pour utiliser autre chose que GitHub tant que le service reste disponible.

+0 -0

Pour les exercices ça serait bien de pouvoir trouver un service pour exécuter le code en ligne comme :

https://repl.it/

D’ailleurs j’ai vu ce service qui semble adapté à des exercices : https://repl.it/site/classrooms "If you’re an open-source organization or you can’t afford this then please contact us." à l’occasion il faudrait les contacter mais ça risque peut-être de vite être chère. :/

Je propose un fonctionnement itératif :

  1. On monte un dépôt avec les exercices,
  2. On leur adjoint des tests automatiques,
  3. On réfléchit aux considérations philosophiques d’hébergement,
  4. On cherche des solutions funky qui brillent pour accompagner les exercices,

et ce dans cet ordre. Pourquoi ? Parce que les étapes sont dépendantes les unes des autres, dans cet ordre (quoiqu’on pourrait pinailler sur 3 et 4). Sans exercices, pas de tests automatiques à faire. Si on a pas de tests, avoir un dépôt n’a en fait que peu d’intérêt, or on a déjà un dépôt central pour Zeste de Savoir, même si changer est techniquement (et seulement techniquement) facile. Et tant qu’on a pas d’exercices… ben on a pas d’exercices à proposer pour exécuter du code en ligne.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte