# Piscine Go curriculum --- ## Week One ### Quest 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 Sh 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: ### Quest 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 ### Quest 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 ### Exam 1 (4hours) #### Basic functions and programs skills evaluation, based on Quest 2 and Quest 3 ### Raid 1 - Square Drawing #### First Group project. Problem resolution. Usage of first knowledges (loop and if/else) --- ## Week Two ### Quest 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 ### Quest 5 #### Application of previously viewed concepts. Notions: String Manipulation and medium-advence 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 ### Quest 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 ### Quest 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 ### Exam 2 (4hours) #### Basic functions and programs skills evaluation, based on Quest 2 and Quest 6 ### Raid 2 - Sudoku #### Second Group project. Problem resolution. Usage of Memory manipulation tools --- ## Week Three ### Quest 8 #### Introduction to Structures and advence tyoe 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: ### Quest 9 #### Functions as argument Notions: Advance function protoyping Videos: - 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE Exercices: ### Quest 10 #### Hackathon Notions: All previously viewed concepts in team work Exercices: ### Exam 3 (4hours) #### Basic functions and programs skills evaluation, based on Quest 2 and Quest 8 ### Raid 3 - File Reader #### Second Group project. Problem resolution. File manipulation based on Raid 1 --- ## Week Four ### Quest 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 ### Quest 12 #### Binary Trees Notions: Advance 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 ### Exam 4 - Fianal Exam (8hours) #### Functions and programs skills evaluation, based on Quest 2 and Quest 11