# Présentation de Tech.io
![Projet](logo.png)
# Cours et Exercices interactifs
*Valéry Bruniaux - 21 Mars 2018*
# ![Tech.io](logo50.png) Sommaire ![Tech.io](logo50.png)
---
### Intérêt de Tech.io
### Architecture du projet
### Création d'un projet
### Création des pages
### Création des exercices
### Conclusion et perspectives
## ![Tech.io](logo50.png) Intérêt de Tech.io ![Tech.io](logo50.png)
---
#### [Plateforme de partage de connaissances Open-Source](http://www.tech.io)
#### Flexible : cours, ressources, [QCM](https://tech.io/playgrounds/8942/), [exercices](https://tech.io/playgrounds/3777/)
#### Toutes technologies possibles ([Docker](https://store.docker.com/search?category=languages&q=&source=verified&type=image))
#### Tous les playgrounds sont accessibles et modifiables
#### Travail interactif en autonomie pour les élèves
## ![Tech.io](logo50.png) Architecture du projet ![Tech.io](logo50.png)
---
#### Fichier principal : techio.yml
#### Fichier du logo : cover.png
#### Fichiers de contenus en Markdown : markdonws/variables.md
#### Fichiers des exercices à exécuter : js_project/test_variable1.py
## ![Tech.io](logo50.png) Création d'un projet ![Tech.io](logo50.png)
---
#### [S'inscrire sur le site Tech.io](http://www.tech.io)
#### [Ouvrir un compte sur Github (opt)](https://github.com)
#### Créer un Playground sur Tech.io (templates)
#### Cloner le playground sur Github en local
(git clone https://github.com/...)
#### Modifier les fichiers en local
#### "Pousser" les modifications en ligne
(git add -A ; git commit -a -m "nom des modifications" ; git push)
## ![Tech.io](logo50.png) Création des pages - 1 ![Tech.io](logo50.png)
---
#### Description du projet : techio.yml
```
title: Python Project
plan:
- title: Variables
statement: markdowns/variables.md
- title: Fonctions
statement: markdowns/fonctions.md
- title: Welcome du template de Tech.io
statement: markdowns/welcome.md
projects:
python:
root: /python-project
runner:
name: python
version: '3'
```
## ![Tech.io](logo50.png) Création des pages - 2 ![Tech.io](logo50.png)
---
#### La page des variables : markdown/variables.md
```
# Travail sur les variables
On peut facilement faire des lien comme ceci [Les variables](https://fr.wikibooks.org/wiki/Programmation_Python/Variables) en syntaxe Markdown.
## Un petit QCM pour commencer
?[Quel est le seul langage que la machine exécute vraiment sans transformation ?]
-[ ] Le C
-[ ] Le Java
-[X] Le langage machine
-[ ] L'assembleur
?[Quels sont les points fort du Python ?]
-[ ] Exécution très rapide
-[X] Développement rapide
-[X] Facile à apprendre
-[ ] Utilisé pour les grosses applications
-[ ] Très utilisé sur le Web
-[ ] Très présent dans l'industrie
-[ ] Applications mobiles
## Maintenant un exercice facile
@[Écrivez une variable nommée a qui contient la valeur 5]({"stubs": ["variable1.py"], "command": "python3 test_variable1.py"})
## Puis plus difficile
@[Écrivez trois variables a, b et c qui contienent la valeur 5]({"stubs": ["variable2.py"], "command": "python3 test_variable2.py"})
```
## ![Tech.io](logo50.png) Création des exercices ![Tech.io](logo50.png)
---
##### Le fichier proposé pour travailler : fonction2.py
```python
# Créez la fonction toto
```
##### Le fichier de test : test_fonction2.py
from fonction2 import toto
def send_msg(channel, msg): #print("TECHIO> message --channel \"{}\" \"{}\"".format(channel, msg))
def success(): #print("TECHIO> success true")
def fail(): #print("TECHIO> success false")
def test():
try:
assert toto(-5,3) == -2, "toto(-5,3) doit renvoyer -2"
...
success()
send_msg("Félicitation 🌟", "C'est bien ça !")
except AssertionError as e:
fail()
send_msg("Oops! 🐞", e)
send_msg("Hint 💡", "Revoyez les fonctions ! 🤔")
if __name__ == "__main__":
test()
## ![Tech.io](logo50.png) Conclusion et perspectives ![Tech.io](logo50.png)
---
#### Un peu "geek" au démarrage :-(
#### Très rapide à developper une fois familiarisé :-)
#### On peut se concentrer sur le contenu
#### Permet cours + ressources + exercices __interactifs__
#### Fonctionne très bien en autonomie ! ![Tech.io](logo50.png)