Skip to content

Commit 2c5f7e2

Browse files
author
Julien Letrouit
authored
Merge pull request #49 from jletroui/sugar-syntax-bonuses
Sugar syntax bonuses: arrays and loops koans
2 parents da22c08 + 5311d62 commit 2c5f7e2

17 files changed

Lines changed: 1442 additions & 109 deletions

CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ In particular: kids don't need to know about functionnal interfaces, arrays, or
2424

2525
You might ask why not start right away with programming the robot then? The students are way too lost in the midst of pages of arcane syntax, and we observed anecdotally it is slower to teach that way. In particular, it is requiring a lot more repetition, because they jump too fast from one concept they don't master to another, and don't register them the first time they hear about it.
2626

27+
That being said, the bonus koans are providing additional material, but it is advised to use them only after students have started programming actual robots.
28+
2729
### Enough exercises
2830

2931
Most of the resources have too few exercices. Or exercises not really relevant to the kind of thinking we need for programming robots with WPILib. On the other hand, (most) kids like to learn by practicing. So this curiculum is focused on having a good amount exercices. Of course "a good amount" is not an exact science, so we expect to tweak this as our experience teaching various profiles of rookies is growing.

README.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ To get started you will need to either install VS Code or use GitHub Codespaces,
2828

2929
To install VS Code, you will need to install [WPILib](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html) first to run the Java Koans for the FRC.
3030

31-
Once installed, download the [latest release](https://github.com/jletroui/FrcJavaKoans/releases/download/v1.1/FrcJavaKoans.zip) of the Java Koans.
31+
Once installed, download the [latest release](https://github.com/jletroui/FrcJavaKoans/releases/download/v1.2/FrcJavaKoans.zip) of the Java Koans.
3232

3333
Then, extract it somewhere on your computer. Go to the folder where you have downloaded the koans, righ-click on the koans zip file, and choose 'Extract All'. Choose your destination folder, for example, a `/src` folder within your `Documents` folder.
3434

@@ -255,6 +255,10 @@ To help you remember the bits of Java syntax you are learning while completing y
255255
## And then what?
256256

257257
After completing the koans, you are ready to learn how to program an actual robot. Mykah, from [team 9153 - Bearcat Robotics](https://sites.google.com/lincolnschoolscb.org/9153-bearcat-robotics/home), is maintaining a [wonderful compendium of FRC programming resources](https://docs.google.com/document/d/1jcBLAyJ3iTbsYSnWMVWqHaK8uywGTaTjF98eY_xxpl0/edit#heading=h.21bclvyus8vm) from which you can dig for your next steps.
258+
259+
Once you understand how to program a simple `TimedRobot`, you can come back here and practice with bonus koans you will find in `src/main/java/bonuses/english`. These koan series are independant of each other and can be followed in any order.
260+
To run them, right click on the one you are interested, for example `src/main/java/bonuses/english/AboutArrays.java` and choose `Run Java` directely on the koans file itself.
261+
258262
<br/>
259263

260264
> Experience is the name everyone gives to their mistakes.
@@ -267,6 +271,19 @@ This course intent to come batteries included, with 100% of the information need
267271

268272
We have found that students learn faster if mentors are not giving solutions to students' issues, but instead ask them open questions about what they don't understand about the exercise instructions or displayed error. Programming is, most of the time, about figuring out what little detail have been overlooked. Thus, helping students to look for answers by themselves in the koans' text will help them become more autonomous faster when it will be time to program and debug a robot.
269273
274+
### Full curiculum suggestion
275+
276+
1) Start with the students completing all the initial koan series ("EnglishPathToEnlightment").
277+
2) Not part of the FRC Java Koans: make them program their first robot with a simple `TimedRobot`. It is suggested to have a simple differential drive robot.
278+
* Super simple auto mode making the robot go forward at 20% speed for 1 second.
279+
* Simple teleop mode making the robot move with a joystick.
280+
3) Students can now follow the `src/main/java/bonuses/english/AboutInterfaces.java` (** COMING SOON **) bonus koans.
281+
4) Not part of the FRC Java Koans: make them program the simple robot again, but using [commands based programming](https://docs.wpilib.org/en/stable/docs/software/commandbased/index.html).
282+
283+
Optional:
284+
285+
Before teaching them to deal with a Swerve Drive, the students could follow `src/main/java/bonuses/english/AboutArrays.java` to learn arrays and `for` loops.
286+
270287
### Topics included
271288
272289
* Printing to and reading from the console
@@ -278,6 +295,11 @@ We have found that students learn faster if mentors are not giving solutions to
278295
* Packages and classes with static methods
279296
* Objects, constructors, fields
280297
298+
In the bonus koans:
299+
300+
* Arrays and `for` loops
301+
* Functional interfaces (** COMING SOON **)
302+
281303
### Contributing and learning more
282304
283305
If you are interested in learning more about this course or contributing to it, please take a look at [CONTRIBUTING.md](CONTRIBUTING.md) :)
@@ -325,7 +347,7 @@ Pour commencer, vous devrez soit installer VS Code, soit utiliser GitHub Codespa
325347

326348
Si ce n'est déjà fait, tu vas devoir installer [WPILib](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html) pour pouvoir exécuter les Koans Java pour la FRC.
327349
328-
Une fois installé, télécharge [la dernière version](https://github.com/jletroui/FrcJavaKoans/releases/download/v1.1/FrcJavaKoans.zip) des Koans Java.
350+
Une fois installé, télécharge [la dernière version](https://github.com/jletroui/FrcJavaKoans/releases/download/v1.2/FrcJavaKoans.zip) des Koans Java.
329351
330352
Ensuite, décompresse les quelque part sur ton ordinateur. Pour ce faire, va dans le répertoire où tu as téléchargé les koans, clic-droit dessus, et choisis "Extraire Tout". Choisis un répertoire de destination, par exemple, un répertoire `/src` dans ton répertoire `Documents`.
331353
@@ -554,6 +576,9 @@ Pour t'aider à retenir les morceaux de syntaxe Java que tu apprends en complét
554576

555577
Une fois avoir complété les koans, tu es prêt·e pour apprendre à programmer un vrai robot. Mykah, de [l'équipe 9153 - Bearcat Robotics](https://sites.google.com/lincolnschoolscb.org/9153-bearcat-robotics/home), entretient [un excellent recueil de ressources pour la programmation FRC](https://docs.google.com/document/d/1jcBLAyJ3iTbsYSnWMVWqHaK8uywGTaTjF98eY_xxpl0/edit#heading=h.21bclvyus8vm). Tu pourras sûrement y trouver tes prochains apprentissages.
556578

579+
Un fois que tu comprends comment programmer un simple `TimedRobot`, tu peux revenir ici et continuer à progresser avec les koans bonus que tu trouveras dans `src/main/java/bonuses/french`. Ces séries de koans sont indépendantes les unes des autres et peuvent être faites dans n'importe quel ordre.
580+
Pour les faire, choisis celle qui t'intéresse, par exemple `src/main/java/bonuses/french/AboutArrays.java` et choisis `Run Java` directement sur le fichier de la série lui-même.
581+
557582
<br/>
558583

559584
> Expérience est le nom que les gens donnent aux erreurs qu'ils ont faites.
@@ -567,6 +592,19 @@ Ce cours se veut fournir toute l'information nécessaire pour qu'un élève moti
567592

568593
Nous avons trouvé que les élèves passent à travers le cours plus rapidement, et intègrent mieux les notions si le ou la mentor ne lui donne pas de solution à ses problèmes. À la place, le ou la mentor peut garder l'élève dans une posture active en lui demandant ce qu'iel ne comprend pas dans l'énoncé de l'exercice, ou du message d'erreur, et le / la guider dans des stratégies pour comprendre par iel même. La programmation consiste, la plupart du temps, à trouver quel petit détail nous avons oublié. En aidant les élèves à trouver les ressources pour résoudre les problèmes eux-même, ils deviennent au final autonomes plus rapidement lorsqu'ils débogueront un programme de robot.
569594

595+
### Suggestion de curriculum complet
596+
597+
1) Démarrez en faisant compléter à vos élèves la série de koans intiale complète ("FrenchPathToEnlightment").
598+
2) Non couvert par les FRC Java Koans: faites les programmer leur premier robot, avec un simple `TimedRobot`. Il est recommandé d'avoir un robot avec une simple base différentielle.
599+
* Mode auto basique, faisant avancer le robot à 20% de sa vitesse pendant 1 seconde.
600+
* Mode téléop faisant contrôler le robot avec un joystick.
601+
3) Les élèves peuvent ensuite suivre le koan bonus `src/main/java/bonuses/french/AboutInterfaces.java` (** BIENTÔT DISPONIBLE **).
602+
4) Non couvert par les FRC Java Koans: les élève peuvent programmer de nouveau le robot simple, mais cette fois ci [en programmation orientée commandes](https://docs.wpilib.org/fr/stable/docs/software/commandbased/index.html).
603+
604+
Optionnel:
605+
606+
Avant de leur enseigner la programmation d'une base Swerve, les élèves peuvent suivre `src/main/java/bonuses/english/AboutArrays.java` pour apprendre les tableaux et les boucles `for`.
607+
570608
### Sujets inclus
571609

572610
* Écrire dans, et lire de, la console
@@ -578,6 +616,11 @@ Nous avons trouvé que les élèves passent à travers le cours plus rapidement,
578616
* Packages et classes avec méthodes statiques
579617
* Objets, constructeurs, champs
580618

619+
In the bonus koans:
620+
621+
* Tableaux et boucles `for`
622+
* Interfaces fonctionnelles (** BIENTÔT DISPONIBLE **)
623+
581624
### En savoir plus, contribuer
582625

583626
Si vous êtes intéressés à en apprendre plus ou à contribuer à ce cours, rendez-vous sur la page [CONTRIBUTING.md](CONTRIBUTING.md) :)

0 commit comments

Comments
 (0)