From 99bae9d0eaaeefed910ae7e5039d2c67b551196c Mon Sep 17 00:00:00 2001 From: Christopher Fremond Date: Sun, 24 Nov 2019 21:41:20 +0000 Subject: [PATCH] curriculum adapted for bordeaux testing --- docs/grand-prix-go-curriculum.md | 330 +++++++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 docs/grand-prix-go-curriculum.md diff --git a/docs/grand-prix-go-curriculum.md b/docs/grand-prix-go-curriculum.md new file mode 100644 index 00000000..98783e5f --- /dev/null +++ b/docs/grand-prix-go-curriculum.md @@ -0,0 +1,330 @@ +# Grand Prix Go curriculum + +--- + +## Week One (Lundi 02/12/19 au DImanche 08/12/19) + +### Sprint 1 + +#### Introduction to shell + +Notions: basic usage and interaction with a command line terminal. + +Videos: + +- 1-2 `curl` with the GitHub api and Example of shell file | https://www.youtube.com/watch?v=A0Mqc215igw +- 1-3 `touch`, `chmod` and `echo` | https://www.youtube.com/watch?v=21h-vsuXgDU +- 1-4 `find` and `grep` | https://www.youtube.com/watch?v=7a1JSWHhJlM +- 1-5 `cut`, `sed` and `tr` | https://www.youtube.com/watch?v=Nil7rVP3eMI +- 1-6 `jq` and `wc` | https://www.youtube.com/watch?v=cQmcaOseuiA& + +Exercices: + +- introduction | https://public.01-edu.org/subjects/introduction.en +- make-it-better | https://public.01-edu.org/subjects/make-it-better.en +- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git.en +- who-are-you | https://public.01-edu.org/subjects/who-are-you.en +- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1.en +- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2.en +- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3.en +- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4.en +- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5.en +- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6.en +- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7.en +- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8.en +- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work.en + +### Sprint 2 + +#### Introduction to Go Lang and basic programmation concepts + +Notions: Variables declaration, Loops, if and else statement, usage of z01.PrintRune function. + +Videos: + +- 02-01-If and Else Statements in Go | https://www.youtube.com/watch?v=rnF1_SfeGE4 +- 02-02-ForLoops | https://www.youtube.com/watch?v=Bt47lx6q2-4 +- 02-03-PrintRune function | https://www.youtube.com/watch?v=o8JrvI3jqoM +- 02-04-Variables Declaration and ascii | https://www.youtube.com/watch?v=RCNOV8m0hJQ + +Exercices: + +- printalphabet | https://public.01-edu.org/subjects/printalphabet.en +- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet.en +- prindigits | https://public.01-edu.org/subjects/printdigits.en +- isnegative | https://public.01-edu.org/subjects/isnegative.en +- printcomb | https://public.01-edu.org/subjects/printcomb.en +- printcomb2 | https://public.01-edu.org/subjects/printcomb2.en +- printnbr | https://public.01-edu.org/subjects/printnbr.en +- printcombn | https://public.01-edu.org/subjects/printcombn.en + +### Sprint 3 + +#### Introduction to Go Lang and basic programmation concepts II + +Notions: String Manupulation, Range Loops, Pointers, Modulo and Division relative to computer science. + +Videos: + +- 03-01-StringsManipulation | https://www.youtube.com/watch?v=8LplJN_8iOU +- 03-02-RangeLoop | https://www.youtube.com/watch?v=i89N4cjh1-g +- 03-03-Pointers on variables | https://www.youtube.com/watch?v=owVPa5b1BMc +- 03-04-Modulo and Division | https://www.youtube.com/watch?v=NVan-9-Ioec + +Exercices: + +- pointone | https://public.01-edu.org/subjects/pointone.en +- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone.en +- divmod | https://public.01-edu.org/subjects/divmod.en +- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod.en +- printstr | https://public.01-edu.org/subjects/printstr.en +- strlen | https://public.01-edu.org/subjects/strlen.en +- swap | https://public.01-edu.org/subjects/swap.en +- strrev | https://public.01-edu.org/subjects/strrev.en +- basicatoi | https://public.01-edu.org/subjects/basicatoi.en +- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2.en +- atoi | https://public.01-edu.org/subjects/atoi.en +- sortintegerable | https://public.01-edu.org/subjects/sortintegertable.en + +### Checkpoint 1 (4hours) + +#### Basic functions and programs skills evaluation, based on Sprint 2 and Sprint 3 + +### CLM (Contre La Montre) 1 - Rectangle Drawing + +#### First Group project. Problem resolution. Usage of first knowledge (loop and if/else) + +--- + +## Week Two (Lundi 09/12/2019 à Dimanche 15/12/2019) + +### Sprint 4 + +#### Algorithmia concepts + +Notions: Iterative and recursive programmation + +Videos: + +- 04-01-Iterativity and Recursivity | https://www.youtube.com/watch?v=oCZDdAID5Ik + +Exercices: + +- iterativefactorial | https://public.01-edu.org/subjects/iterativefactorial.en +- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial.en +- iterativepower | https://public.01-edu.org/subjects/iterativepower.en +- recursivepower | https://public.01-edu.org/subjects/recursivepower.en +- fibonacci | https://public.01-edu.org/subjects/fibonacci.en +- sqrt | https://public.01-edu.org/subjects/sqrt.en +- isprime | https://public.01-edu.org/subjects/isprime.en +- findnextprime | https://public.01-edu.org/subjects/findnextprime.en +- eightqueens | https://public.01-edu.org/subjects/eightqueens.en + +### Sprint 5 + +#### Application of previously viewed concepts. + +Notions: String Manipulation and medium-advanced algorithmia + +Videos: + +- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64 + +Exercices: + +- firstrune | https://public.01-edu.org/subjects/firstrune.en +- nrune | https://public.01-edu.org/subjects/nrune.en +- lastrune | https://public.01-edu.org/subjects/lastrune.en +- index | https://public.01-edu.org/subjects/index.en +- compare | https://public.01-edu.org/subjects/compare.en +- toupper | https://public.01-edu.org/subjects/toupper.en +- tolower | https://public.01-edu.org/subjects/tolower.en +- capitalize | https://public.01-edu.org/subjects/capitalize.en +- isalpha | https://public.01-edu.org/subjects/isalpha.en +- isnumeric | https://public.01-edu.org/subjects/isnumeric.en +- islower | https://public.01-edu.org/subjects/islower.en +- isupper | https://public.01-edu.org/subjects/isupper.en +- isprintable | https://public.01-edu.org/subjects/isprintable.en +- concat | https://public.01-edu.org/subjects/concat.en +- basicjoin | https://public.01-edu.org/subjects/basicjoin.en +- join | https://public.01-edu.org/subjects/join.en +- printnbrbase | https://public.01-edu.org/subjects/printnbrbase.en +- atoibase | https://public.01-edu.org/subjects/atoibase.en + +### Sprint 6 + +#### Usage of OS.Args + +Notions: Arguments manipulation in programs + +Videos: + +- 06-01-Os.Args | https://www.youtube.com/watch?v=I1xt_TLRhF0 + +Exercices: + +- printprogramname | https://public.01-edu.org/subjects/printprogramname.en +- printparams | https://public.01-edu.org/subjects/printparams.en +- revparams | https://public.01-edu.org/subjects/revparams.en +- sortparams | https://public.01-edu.org/subjects/sortparams.en + +### Sprint 7 + +#### The Memory Allocation in GoLang + +Notions: Usage of Make and Append + +Videos: + +- 07-01-Make and Append methods | https://www.youtube.com/watch?v=2HHVUM0YQuI + +Exercices: + +- appendrange | https://public.01-edu.org/subjects/apprendrange.en +- makerange | https://public.01-edu.org/subjects/makerange.en +- concatparams | https://public.01-edu.org/subjects/concatparams.en +- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces.en +- printwordstables | https://public.01-edu.org/subjects/printwordstables.en +- convertbase | https://public.01-edu.org/subjects/converbase.en +- split | https://public.01-edu.org/subjects/split.en + +### Checkpoint 2 (4hours) + +#### Basic functions and programs skills evaluation, based on Sprint 2 and Sprint 6 + +### CLM (Contre La Montre) 2 - Sudoku + +#### Second Group project. Problem resolution. Usage of Memory manipulation tools + +--- + +## Week Three + Holiday project (Lundi 16/12/2019 à dimache 05/01/2020 ) + +### Sprint 8 + +#### Introduction to Structures and advanced types in GoLang + +Notions: Creation of struct types and file manipulation (Open, Read, Close methods) + +Videos: + +- 08-01-Structures in Go | https://www.youtube.com/watch?v=-24M7r7VuLY +- 08-02-File Manipulation in go | https://www.youtube.com/watch?v=8vUgchQGhcQ + +Exercices: + +- bool | https://public.01-edu.org/subjects/bool.en +- point | https://public.01-edu.org/subjects/point.en +- displayfile | https://public.01-edu.org/subjects/displayfile.en +- cat | https://public.01-edu.org/subjects/cat.en +- ztail | https://public.01-edu.org/subjects/ztail.en + +### Sprint 9 + +#### Functions as argument + +Notions: Advance function prototyping + +Videos: + +- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE + +Exercices: + +- foreach | https://public.01-edu.org/subjects/foreach.en +- map | https://public.01-edu.org/subjects/map.en +- any | https://public.01-edu.org/subjects/any.en +- countif | https://public.01-edu.org/subjects/countif.en +- issorted | https://public.01-edu.org/subjects/issorted.en +- doop | https://public.01-edu.org/subjects/doop.en +- sortwordarr | https://public.01-edu.org/subjects/sortwordarr.en +- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr.en + +### Sprint 10 + +#### Hackathon + +Notions: All previously viewed concepts in team work + +Exercices: + +- rot14 | https://public.01-edu.org/subjects/rot14.en +- abort | https://public.01-edu.org/subjects/abort.en +- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown.en +- comcheck | https://public.01-edu.org/subjects/comcheck.en +- enigma | https://public.01-edu.org/subjects/enigma.en +- pilot | https://public.01-edu.org/subjects/pilot.en +- fixthemain | https://public.01-edu.org/subjects/fixthemain.en +- compact | https://public.01-edu.org/subjects/compact.en +- activebits | https://public.01-edu.org/subjects/activebits.en +- max | https://public.01-edu.org/subjects/max.en +- join | https://public.01-edu.org/subjects/join.en +- unmatch | https://public.01-edu.org/subjects/unmatch.en + +### Checkpoint 3 (4hours) + +#### Basic functions and programs skills evaluation, based on Sprint 2 and Sprint 8 + +### CLM (Contre La Montre) 3 - File Reader ( Projet pour les 2 semaines de vacances) + +#### Second Group project. Problem resolution. File manipulation based on CLM (Contre La Montre) 1 + +--- + +## Week Four (lundi 06/01/2020 à vendredi 10/01/2020) + +### Sprint 11 + +#### Linked lists in GoLang + +Notions: Pointers manipulation and data structure + +Videos: + +- 11-01-Linked Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0 + +Exercices: + +- listpushback | https://public.01-edu.org/subjects/listpushback.en +- listpushfront | https://public.01-edu.org/subjects/listpushfront.en +- listsize | https://public.01-edu.org/subjects/listsize.en +- listlast | https://public.01-edu.org/subjects/listlast.en +- listclear | https://public.01-edu.org/subjects/listclear.en +- listat | https://public.01-edu.org/subjects/listat.en +- listreverse | https://public.01-edu.org/subjects/listreverse.en +- listforeach | https://public.01-edu.org/subjects/listforeach.en +- listforeachif | https://public.01-edu.org/subjects/listforeachif.en +- listfind | https://public.01-edu.org/subjects/listfind.en +- listremoveif | https://public.01-edu.org/subjects/listremoveif.en +- listmerge | https://public.01-edu.org/subjects/listmerge.en +- listsort | https://public.01-edu.org/subjects/listsort.en +- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert.en +- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge.en + +### Sprint 12 + +#### Binary Trees + +Notions: Advanced Data Structure using binary trees + +Videos: + +- 12-01-Introduction to Binary Trees | https://www.youtube.com/watch?v=3g2WCqWNIVs + +Exercices: + +- btreeinsertdata | https://public.01-edu.org/subjects/btreeinsertdata.en +- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder.en +- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder.en +- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem.en +- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount.en +- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary.en +- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel.en +- btreemax | https://public.01-edu.org/subjects/btreemax.en +- btreemin | https://public.01-edu.org/subjects/btreemin.en +- btreetransplant | https://public.01-edu.org/subjects/btreetransplant.en +- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode.en + +### Checkpoint 4 - Final Checkpoint (8hours) + +#### Functions and programs skills evaluation, based on Sprint 2 and Sprint 11