Skip to content

Commit

Permalink
Merge branch 'master' into fix-contact-and-add-gh-link
Browse files Browse the repository at this point in the history
  • Loading branch information
Felienne authored Jun 5, 2020
2 parents 6550d7f + 5a51bd5 commit 2e1183e
Show file tree
Hide file tree
Showing 10 changed files with 314 additions and 11 deletions.
1 change: 1 addition & 0 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
'en': '🇺🇸',
'nl': '🇳🇱',
'es': '🇪🇸',
'fr': '🇫🇷',
}

LEVEL_DEFAULTS = collections.defaultdict(courses.NoSuchDefaults)
Expand Down
48 changes: 48 additions & 0 deletions coursedata/course/hedy/docs-fr/01-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
title: Explications
level: 1
---

# Une histoire

Au niveau 1, à titre d’exemple, tu peux créer une histoire avec un personnage principal de ton choix.

## Exemple

Ceci est mon histoire. Ton personnage sera placé sur les points plus tard.

* Le personnage principal de l’histoire est ...
* Il marche dans la forêt
* Il a un peu peur ...
* Il entend des sons étranges
* Il a peur que la forêt soit hantée

## Exercice

À ton tour d’essayer

1. Écris une histoire de quelques lignes à propos de ton personnage.
2. Remplace le nom de ton personnage par ... là où il apparait (comme dans l’exemple)
3. Certaines lignes de l’histoire peuvent ne pas contenir le nom de ton personnage
4. Maintenant, traduisons l’histoire en code Hedy. Voici comment faire:

Ligne 1: écris "ask Qui est le personnage principal de l’histoire"

Pour toutes les lignes suivantes:

* Si la ligne contient des ..., écris `echo` suivi de la ligne
* Si la ligne ne contient pas de points, écrit `print` suivi de la ligne

## Code Hedy d’exemple

* `ask Le personnage principal de l’histoire est ...`
* `print Le personnage principal de l’histoire est ...`
* `print Il marche dans la forêt`
* `echo Il a un peu peur ...`
* `print Il entend des sons étranges`
* `print Il a peur que la forêt soit hantée`

## A simple story

C’est un peu dommage qu’on ne puisse créer des phrases dans lesquelles le personnage principal n’apparait qu’à la fin de la phrase, non?

Après t’être entrainé avec cette histoire, continue au niveau 2, puis au niveau 3, où tu pourras créer des programmes plus compliqués.
12 changes: 12 additions & 0 deletions coursedata/course/hedy/fr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
# This file seems rather empty but the assignments all use the defaults from 'level-defaults'
trajectories:
default:
- level: "1"
- level: "2"
- level: "3"
- level: "4"
- level: "5"
- level: "6"
- level: "7"

18 changes: 9 additions & 9 deletions coursedata/level-defaults/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
demo_code: "color is ask What is your favorite color?\\nprint color is your favorite!"
-
name: "choose_random"
explanation: "Choose a random word from a group with at "
explanation: "Choose a random word from a group with at and random"
example: "Example: animals is dog, cat, kangaroo."
demo_code: "animals is dog, cat, kangaroo\\nprint animals at random"
3:
Expand All @@ -58,7 +58,7 @@
demo_code: "color is ask What is your favorite color?\\nprint color ' is your favorite!'"
4:
start_code: "name is ask what is your name?\nif name is Hedy print 'cool!' else print 'meh'"
intro_text: "ask en printwork exactly like they did in Level 3. Level 4 adds the if statement!"
intro_text: "ask and print work exactly like they did in Level 3. Level 4 adds the if statement!"
commands:
-
name: "print"
Expand All @@ -77,7 +77,7 @@
demo_code: "color is ask What is your favorite color?\\nif color is green print 'pretty!' else print 'meh'"
5:
start_code: "repeat 3 times print 'Hedy is fun!'"
intro_text: "ask, print en if work exactly like they did in Level 4. But Level 5 adds the repeat command. Repeat can be used to execute a line of code multiple times."
intro_text: "ask, print and if work exactly like they did in Level 4. But Level 5 adds the repeat command. Repeat can be used to execute a line of code multiple times."
commands:
-
name: "print"
Expand All @@ -101,15 +101,15 @@
demo_code: "color is ask What is your favorite color?\\nif color is green repeat 3 times print 'pretty!' else repeat 5 times print 'meh'"
6:
start_code: "print '5 times 5 is ' 5 * 5"
intro_text: "ask, print, if en repeat are still the same as in Level 4 en 5. Level 6 adds something new... You can now calculate. "
intro_text: "ask, print, if and repeat are still the same as in Level 4 and 5. Level 6 adds something new... You can now calculate. "
commands:
-
name: "print"
explanation: "Print exactly using quotation marks"
example: "Example: print '5 times 5 is ' 5 * 5"
demo_code: "print '5 times 5 is ' 5 * 5"
-
name: "ask en if with calculations"
name: "ask and if with calculations"
explanation: "Ask for a calculation and compare with if. Beware: Print still needs quotation marks."
example: "Example: answer is ask What is 10 plus 10?"
demo_code: "answer is ask What is 10 plus 10?\\nif answer is 20 print 'Yes!' else print 'Oops'"
Expand All @@ -125,16 +125,16 @@
-
name: "print"
explanation: "Print something. Remember to use a quotation mark for literal printing."
example: "Example: print '5 keer 5 is ' 5 * 5"
example: "Example: print '5 times 5 is ' 5 * 5"
demo_code: "print '5 times 5 is ' 5 * 5"
-
name: "if with multiple lines"
explanation: "Ask for the answer to a sum and check if it is correct. We can now print 2 lines."
example: "Example: answer is ask What is 5 plus 5?"
demo_code: "answer is ask What is 5 plus 5?\\nif answer is 10\\n print 'Well done!'\\n print 'Indeed, the answer was ' answer\\nelse\\n print 'Oops!'\\n print 'Ths answer is ' answer"
demo_code: "answer is ask What is 5 plus 5?\\nif answer is 10\\n print 'Well done!'\\n print 'Indeed, the answer was ' answer\\nelse\\n print 'Oops!'\\n print 'The answer is ' answer"
-
name: "if en repeat combined"
explanation: "if en repeat combined"
name: "if and repeat combined"
explanation: "if and repeat combined"
example: "Example: if color is green repeat 3 times print 'pretty!' else repeat 5 times print 'meh'"
demo_code: "color is ask What is your favorite color?\\nif color is green\\n repeat 3 times\\n print 'pretty!'\\nelse\\n repeat 5 times\\n print 'meh'"

146 changes: 146 additions & 0 deletions coursedata/level-defaults/fr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
1:
intro_text: "Au niveau 1, tu peux utiliser ces commandes"
start_code: "print bonjour le monde!"
commands:
- name: "print"
explanation: "Affiche quelque chose avec `print`."
example: "Exemple: print Bonjour et bienvenue à Hedy!"
demo_code: "print Bonjour et bienvenue à Hedy!"
- name: "ask"
explanation: "Demande quelque chose avec `ask`."
example: "Exemple: ask Quelle est ta couleur préférée?"
demo_code: "ask Quelle est ta couleur préférée?"
- name: "echo"
explanation: "Répéte quelque chose avec `echo`."
example: "Exemple: echo donc ta couleur préférée est..."
demo_code: "ask Quelle est ta couleur préférée?\\necho donc ta couleur préférée est..."
2:
intro_text: >
Print fonctionne comme au Niveau 1, mais ask a été modifé
et nécessite désormais un nom, que tu peux ensuite afficher.
Echo n’est plus utile.
Tu peux désormais utiliser ces commandes:
start_code: "print bonjour le monde!"
commands:
- name: "is"
explanation: "Donne un nom à un mot que tu peux utiliser dans le programme avec `is`"
example: "Exemple: nom is Hedy."
demo_code: "nom is Hedy\\nprint bienvenue nom"
- name: "ask"
explanation: "Demande quelque chose avec `ask`. Attention! Ask nécessite un nom désormais."
example: "Exemple: couleur is ask Quelle est ta couleur préférée?"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nprint couleur est ta couleur préférée!"
- name: "choose_random"
explanation: "Choisit un mot au hasard dans un group avec `at`"
example: "Exemple: animaux is chien, chat, kangourou"
demo_code: "animaux is chien, chat, kangourou\\nprint animaux at random"
3:
start_code: "print 'Bonjour le monde'"
intro_text: >
Au niveau 3, tu dois utiliser des guillemets autour des mots que tu veux afficher.
Echo est inutile, tu peux désormais afficher des noms de ton choix avec print!
commands:
- name: "print"
explanation: "Affiche exactement ce qui est entre les guilllemets"
example: "Exemple: print 'Bonjour et bienvenue à Hedy.'"
demo_code: "print 'Bonjour et bienvenue à Hedy.'"
- name: "is"
explanation: "Donne un nom à un mot que tu peux utiliser dans le programme sans guillemets"
example: "Exemple: nom is Hedy."
demo_code: nom is Hedy\\nprint 'mon nom is ' nom
- name: "ask"
explanation: "Demande quelque chose avec ask. Attention: Print a toujours besoin de guillemets!"
example: "Exemple: couleur is ask Quelle est ta couleur préférée?"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nprint couleur ' est ta couleur préférée!'"
4:
start_code: "nom is ask quel est ton nom?\nif nom is Hedy print 'cool!' else print 'mouais'"
intro_text: >
ask et print fonctionnent exactement comme au niveau 3.
Le niveau 4 ajoute la commande if!
commands:
- name: "print"
explanation: "Affiche exactement ce qui est entre les guilllemets"
example: "Exemple: print 'Bonjour et bienvenue à Hedy.'"
demo_code: "print 'Bonjour et bienvenue à Hedy.'"
- name: "ask"
explanation: >
Demande quelque chose avec ask. Attention!
Attention: Print a toujours besoin de guillemets!
example: "Exemple: couleur is ask Quelle est ta couleur préférée?"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nprint couleur ' est ta couleur préférée!'"
- name: "if"
explanation: "Fait un choix"
example: "Exemple: if couleur is vert print 'joli!' else print 'bof'"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nif couleur is vert print 'joli!' else print 'bof'"
5:
start_code: "repeat 3 times print 'Hedy est amusant!'"
intro_text: >
ask, print et if fonctionnent exactement comme au nievau 4.
Le niveau 5 ajoute la commande `repeat`.
Repeat permet d’exécuter une ligne de commande plusieurs fois.
commands:
- name: "print"
explanation: "Affiche exactement ce qui est entre les guilllemets"
example: "Exemple: print 'Bonjour et bienvenue à Hedy.'"
demo_code: "print 'Bonjour et bienvenue à Hedy.'"
- name: "ask"
explanation: "Demande quelque chose avec ask. Attention! Tu n’as pas besoin de guillemets."
example: "Exemple: couleur is ask Quelle est ta couleur préférée?"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nprint couleur ' est ta couleur préférée!'"
- name: "if"
explanation: "Fait un choix"
example: "Exemple: if couleur is vert print 'joli!' else print 'bof'"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nif couleur is vert print 'joli!' else print 'bof'"
- name: "repeat"
explanation: "Repeat et if combiné"
example: "Exemple: if couleur is vert repeat 3 times print 'joli!' else repeat 5 times print 'bof'"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nif couleur is vert repeat 3 times print 'joli!' else repeat 5 times print 'bof'"
6:
start_code: "print '5 fois 5 font ' 5 * 5"
intro_text: >
ask, print, if et repeat sont toujours comme aux niveaux 4 et 5.
Le niveau 6 te permet de faire quelque chose de plus: tu peux désormais calculer.
commands:
- name: "print"
explanation: "Affiche exactement ce qui est entre les guilllemets"
example: "Exemple: print '5 fois 5 font ' 5 * 5"
demo_code: "print '5 fois 5 font ' 5 * 5"
- name: "ask et if avec des calculs"
explanation: >
Pose une question sur un calcul et compare la valeur avec if.
Attention: Print a toujours besoin de guillemets!
example: "Exemple: reponse is ask Combien font 10 plus 10?"
demo_code: "reponse is ask Combien font 10 plus 10?\\nif reponse is 20 print 'Oui!' else print 'Oups'"
- name: "repeat"
explanation: "Repeat et if combinés"
example: >
Exemple: if couleur is vert repeat 3 times print 'joli!' else repeat 5 times print 'bof'
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nif couleur is vert repeat 3 times print 'joli!' else repeat 5 times print 'bof'"
7:
start_code: "repeat 5 times\n print 'Bonjour les amis'\n print 'Ceci sera affiché 5 fois'"
intro_text: >
ask et print fonctionnent comme tu y es habitué.
Mais if et repeat ont changé!
Tu peux maintenant exécuter des groupes de commandes ensemble, mais tu dois indenter ces commandes.
Cela veut dire que tu dois mettre 4 espaces au début des lignes.
Cela fonctionne aussi si tu veux créer un bloc d’une seule lignes.
Si tu combines un if et un repeat, tu devras indenter chaque bloc.
Regarde les exemples pour plus de détails!
commands:
- name: "print"
explanation: >
Affiche quelque chose.
N’oublies pas les guillemets pour afficher exactement ce qui est saisi.
example: "Exemple: print '5 fois 5 font ' 5 * 5"
demo_code: "print '5 fois 5 font ' 5 * 5"
- name: "if sur plusieurs lignes"
explanation: >
Demande la réponse d’une addition et vérifie si elle est correcte.
Tu peux désormais imprimer sur 2 lignes.
example: "Exemple: reponse is ask What is 5 plus 5?"
demo_code: "reponse is ask Combein font 5 plus 5?\\nif reponse is 10\\n print 'Bien joué!'\\n print 'En effet, la réponse est ' reponse\\nelse\\n print 'Oups!'\\n print 'Ta réponse est ' reponse"
- name: "if et repeat combinés"
explanation: "if et repeat combinés"
example: "Exemple: if couleur is vert repeat 3 times print 'joli!' else repeat 5 times print 'bof'"
demo_code: "couleur is ask Quelle est ta couleur préférée?\\nif couleur is vert\\n repeat 3 times\\n print 'joli!'\\nelse\\n repeat 5 times\\n print 'bof'"
38 changes: 37 additions & 1 deletion coursedata/texts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,40 @@
Invalid Space: "Oops! You started a line with a space on line {line_number}. Spaces confuse computers, can you remove it?"
Parse: "El servidor no puede traducir este programa de Hedy a Python. Error: {parse_error}"
VarUndefined: "Intentaste imprimir {name}, pero no lo instanciaste."

fr:
ui:
level_title: "Niveau"
code_title: "Code"
docs_title: "Explication"
contact: "Contact"
video_title: "Vidéos"
run_code_button: "Exécuter le code"
advance_button: "Aller au niveau"
try_button: "Essaye ceci"
enter_text: "Tapes ta réponse ici..."
enter: "Enter"
assignment_header: "Exercice"
ClientErrorMessages:
Transpile_warning: "Attention!"
Transpile_error: "Le serveur n’a pas pu traduire ce code Heyd en Python."
Connection_error: "Nous n’avons pas réussi à contacter le serveur."
Other_error: "Oups! Nous avons rencontré une erreur."
Execute_error: "Quelque chose s’est mal passé en exécutant ce programme."
HedyErrorMessages:
Wrong Level: >
Ce code est du code Hedy valide, mais pas du bon niveau.
Tu as saisis du code {original_level} au niveau {working_level}."
Incomplete: >
Oups! Tu as oublié un peu de code!
À la ligne {line_number}, tu dois écrire du texte après {incomplete_command}.
Invalid: >
{invalid_command} n’est pas une commande valide pour le niveau {level} de Hedy.
Voulais tu utiliser {guessed_command}?
Invalid Space: >
Oups! Tu as commencé une ligne avec un espace à la ligne {line_number}.
Les ordinateurs sont confus avec les espaces.
Peux tu le supprimer?
Parse: >
Le code saisi n’est pas du Hedy valide.
L’erreur rencontrée est: {parse_error}.
VarUndefined: "Tu as essayé d’afficher {name}, mais tu ne l’as pas initialisé."
7 changes: 7 additions & 0 deletions main/contact-fr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
page_title: Contact — Hedy
---
# Appréciez vous Hedy?

Nous aimerions en apprendre plus sur votre expérience!

[Cliquez ici pour nous envoyer un message](mailto: [email protected] "Envoyer un email")
6 changes: 6 additions & 0 deletions main/press-fr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
page_title: Presse — Hedy
---
# Hedy dans les nouvelles

**Université de Leiden, 25 avril 2020**
[![Header Uni](images/UniLeiden-EN.png "Header Uni")](https://www.universiteitleiden.nl/en/news/2020/03/looking-to-distract-the-kids-while-you-work-from-home-get-them-programming)
2 changes: 1 addition & 1 deletion main/start-en.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ That is true for programming too, it might be hard in the beginning, but it will

The nice thing about Hedy is that Hedy is *gradual*. That means that you do not have to learn all rules at once.
The first few levels do not have that many rules, so you can get used to programming comfortably.
In evert level we add new rules, increasing the number of commands that you know. Commands are instructions for a computer.
In every level we add new rules, increasing the number of commands that you know. Commands are instructions for a computer.

## Why is Hedy gradual?
In this video Felienne, the creator of Hedy, explains why Hedy is gradual.
Expand Down
Loading

0 comments on commit 2e1183e

Please sign in to comment.