Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cours
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
programmation_sequentielle
cours
Commits
be5fc988
Verified
Commit
be5fc988
authored
1 month ago
by
orestis.malaspin
Browse files
Options
Downloads
Patches
Plain Diff
added dojo stuff
parent
783ccb62
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
slides/les_exos_avec_le_dojo.md
+131
-0
131 additions, 0 deletions
slides/les_exos_avec_le_dojo.md
with
131 additions
and
0 deletions
slides/les_exos_avec_le_dojo.md
0 → 100644
+
131
−
0
View file @
be5fc988
---
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
\a
lert{le lien suivant}:
<https://docs.docker.com/engine/install/>
.
*
\a
lert{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
\a
lert{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
\a
lert{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
```
*
\a
lert{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.
*
\a
lert{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
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment