# 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)