Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • programmation_sequentielle/cours
  • yassin.elhakoun/cours-de-prog
2 results
Show changes
Commits on Source (2)
---
title: "Dojo"
date: "2024-02-21"
---
# Le Dojo
* Plateforme d'exercices pour la programmation,
* Outil à la ligne de commande basé sur `gitedu`,
* Correction automatique des exercices,
* Fait maison par Michël Minelli (aller en A403 pour le voir),
* En cours de développement, n'hésitez pas à ouvrir des [\alert{Issues}](https://gitedu.hesge.ch/dojo_project/issues).
# Prérequis
* Installer `docker`!
* Pour savoir s'il est installé faire
```console
docker --version
```
* Voir \alert{le lien suivant}: <https://docs.docker.com/engine/install/>.
* \alert{Activez l'exécution}: <https://docs.docker.com/engine/install/linux-postinstall/> de docker sans les privilèges super utilisateur·trice
# Installation
* Détails sur \alert{ce lien}: <https://dojo.isc-hesge.ch/>.
* Sur MacOS / linux-postinstall
```console
curl -L "https://dojo.isc-hesge.ch/installer.sh" | sh
```
# Authentification
* Détails sur \alert{ce lien} <https://dojo.isc-hesge.ch/user-doc/cli/authentification/>
## Résumé
* Authentification via `gitedu`
```console
dojo auth login
```
* Ouverture de gitedu dans votre navigateur,
* Cliquer sur *autoriser*,
* Est-ce que ça a marché?
```console
$ dojo auth test
ℹ Checking Dojo session:
✔ The session is valid
✔ Student permissions
✔ Teaching staff permissions
✔ Admin permissions
ℹ Checking Gitlab token:
✔ Read access
✔ Write access
```
# Faire un exercice (1/3)
* Détails sur [\alert{ce lien}](https://gitedu.hesge.ch/dojo_project/projects/ui/dojocli/-/wikis/UserDocumentation/3-Exercise-creation).
## Création de l'exercice
* Création de l'exercice (liste chaînée de strings)
```C
dojo exercise create -a c_game_of_life -c .
...
ℹ Checking Dojo session:
✔ The session is valid
✔ Student permissions
ℹ Checking assignment:
✔ Assignment "c_game_of_life" exists
✔ Assignment "c_game_of_life" is published
...
```
* Cette commande clone également le repo de l'exercice créé dans le répertoire courant
# Faire un exercice (2/3)
## Récupération de l'énoncé
* Quand vous avez créé l'exercice, vous pouvez clone le repo comme n'importe quel autre repo gitedu
```console
git clone https://gitedu.hesge.ch/dojo/exercise/dojo-ex_c_game_of_life_e24b65b3-c0e5-4a10-a67a-72dad4ff5ea1 c_game_of_life
```
# Faire un exercice (3/3)
## Exécution des tests
* Faire l'exercice
```console
$ cd c_game_of_life
```
* \alert{LIRE L'ÉNONCÉ JUSQU'À LA FIN!}
* Pour réussir le TP il faut passer tous les tests se trouvant dans:
```console
src/test_suite.cpp
```
* Pour compiler localement deux choix
* Utiliser make
```console
cd src
make
```
* Ou `dojo`
```console
dojo exercice run
```
* Vous pouvez également commit/push chaque fois que nécessaire (et surtout à la fin).
# Fonctionnement
* Éditez le code en fonction de l'énoncé.
* `make` lance tout un tas de tests unitaires.
* \alert{Faites les fonctions les unes }
* Il y a deux types d'erreurs: erreur algorithmique et erreur mémoire.
* Des fois ces erreurs sont imbriquées
* Il y a donc deux types d'erreurs dans les tests
* Des erreurs dans les tests unitaires
* Des erreurs de sanitizers mémoire