# 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 #### Algorithm 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 algorithms 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