# 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&t=49s 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://github.com/01-edu/public/blob/master/subjects/printalphabet.en.md - printreversealphabet | https://github.com/01-edu/public/blob/master/subjects/printreversealphabet.en.md - prindigits | https://github.com/01-edu/public/blob/master/subjects/printdigits.en.md - isnegative | https://github.com/01-edu/public/blob/master/subjects/isnegative.en.md - printcomb | https://github.com/01-edu/public/blob/master/subjects/printcomb.en.md - printcomb2 | https://github.com/01-edu/public/blob/master/subjects/printcomb2.en.md - printnbr | https://github.com/01-edu/public/blob/master/subjects/printnbr.en.md - printcombn | https://github.com/01-edu/public/blob/master/subjects/printcombn.en.md ## 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://github.com/01-edu/public/blob/master/subjects/pointone.en.md - ultimatepointone | https://github.com/01-edu/public/blob/master/subjects/ultimatepointone.en.md - divmod | https://github.com/01-edu/public/blob/master/subjects/divmod.en.md - ultimatedivmod | https://github.com/01-edu/public/blob/master/subjects/ultimatedivmod.en.md - printstr | https://github.com/01-edu/public/blob/master/subjects/printstr.en.md - strlen | https://github.com/01-edu/public/blob/master/subjects/strlen.en.md - swap | https://github.com/01-edu/public/blob/master/subjects/swap.en.md - strrev | https://github.com/01-edu/public/blob/master/subjects/strrev.en.md - basicatoi | https://github.com/01-edu/public/blob/master/subjects/basicatoi.en.md - basicatoi2 | https://github.com/01-edu/public/blob/master/subjects/basicatoi2.en.md - atoi | https://github.com/01-edu/public/blob/master/subjects/atoi.en.md - sortintegerable | https://github.com/01-edu/public/blob/master/subjects/sortintegertable.en.md ## 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://github.com/01-edu/public/blob/master/subjects/iterativefactorial.en.md - recursivefactorial | https://github.com/01-edu/public/blob/master/subjects/recursivefactorial.en.md - iterativepower | https://github.com/01-edu/public/blob/master/subjects/iterativepower.en.md - recursivepower | https://github.com/01-edu/public/blob/master/subjects/recursivepower.en.md - fibonacci | https://github.com/01-edu/public/blob/master/subjects/fibonacci.en.md - sqrt | https://github.com/01-edu/public/blob/master/subjects/sqrt.en.md - isprime | https://github.com/01-edu/public/blob/master/subjects/isprime.en.md - findnextprime | https://github.com/01-edu/public/blob/master/subjects/findnextprime.en.md - eightqueens | https://github.com/01-edu/public/blob/master/subjects/eightqueens.en.md ## 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://github.com/01-edu/public/blob/master/subjects/firstrune.en.md - nrune | https://github.com/01-edu/public/blob/master/subjects/nrune.en.md - lastrune | https://github.com/01-edu/public/blob/master/subjects/lastrune.en.md - index | https://github.com/01-edu/public/blob/master/subjects/index.en.md - compare | https://github.com/01-edu/public/blob/master/subjects/compare.en.md - toupper | https://github.com/01-edu/public/blob/master/subjects/toupper.en.md - tolower | https://github.com/01-edu/public/blob/master/subjects/tolower.en.md - capitalize | https://github.com/01-edu/public/blob/master/subjects/capitalize.en.md - isalpha | https://github.com/01-edu/public/blob/master/subjects/isalpha.en.md - isnumeric | https://github.com/01-edu/public/blob/master/subjects/isnumeric.en.md - islower | https://github.com/01-edu/public/blob/master/subjects/islower.en.md - isupper | https://github.com/01-edu/public/blob/master/subjects/isupper.en.md - isprintable | https://github.com/01-edu/public/blob/master/subjects/isprintable.en.md - concat | https://github.com/01-edu/public/blob/master/subjects/concat.en.md - basicjoin | https://github.com/01-edu/public/blob/master/subjects/basicjoin.en.md - join | https://github.com/01-edu/public/blob/master/subjects/join.en.md - printnbrbase | https://github.com/01-edu/public/blob/master/subjects/printnbrbase.en.md - atoibase | https://github.com/01-edu/public/blob/master/subjects/atoibase.en.md ## 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://github.com/01-edu/public/blob/master/subjects/printprogramname.en.md - printparams | https://github.com/01-edu/public/blob/master/subjects/printparams.en.md - revparams | https://github.com/01-edu/public/blob/master/subjects/revparams.en.md - sortparams | https://github.com/01-edu/public/blob/master/subjects/sortparams.en.md ## 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://github.com/01-edu/public/blob/master/subjects/apprendrange.en.md - makerange | https://github.com/01-edu/public/blob/master/subjects/makerange.en.md - concatparams | https://github.com/01-edu/public/blob/master/subjects/concatparams.en.md - splitwhitespaces | https://github.com/01-edu/public/blob/master/subjects/splitwhitespaces.en.md - printwordstables | https://github.com/01-edu/public/blob/master/subjects/printwordstables.en.md - convertbase | https://github.com/01-edu/public/blob/master/subjects/converbase.en.md - split | https://github.com/01-edu/public/blob/master/subjects/split.en.md ## 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=R2sZsZ7Z9OQ Exercices: - listpushback | https://github.com/01-edu/public/blob/master/subjects/listpushback.en.md - listpushfront | https://github.com/01-edu/public/blob/master/subjects/listpushfront.en.md - listsize | https://github.com/01-edu/public/blob/master/subjects/listsize.en.md - listlast | https://github.com/01-edu/public/blob/master/subjects/listlast.en.md - listclear | https://github.com/01-edu/public/blob/master/subjects/listclear.en.md - listat | https://github.com/01-edu/public/blob/master/subjects/listat.en.md - listreverse | https://github.com/01-edu/public/blob/master/subjects/listreverse.en.md - listforeach | https://github.com/01-edu/public/blob/master/subjects/listforeach.en.md - listforeachif | https://github.com/01-edu/public/blob/master/subjects/listforeachif.en.md - listfind | https://github.com/01-edu/public/blob/master/subjects/listfind.en.md - listremoveif | https://github.com/01-edu/public/blob/master/subjects/listremoveif.en.md - listmerge | https://github.com/01-edu/public/blob/master/subjects/listmerge.en.md - listsort | https://github.com/01-edu/public/blob/master/subjects/listsort.en.md - sortlistinsert | https://github.com/01-edu/public/blob/master/subjects/sortlistinsert.en.md - sortedlistmerge | https://github.com/01-edu/public/blob/master/subjects/sortedlistmerge.en.md ## 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://github.com/01-edu/public/blob/master/subjects/btreeinsertdata.en.md - btreeapplyinorder | https://github.com/01-edu/public/blob/master/subjects/btreeapplyinorder.en.md - btreeapplypreorder | https://github.com/01-edu/public/blob/master/subjects/btreeapplypreorder.en.md - btreesearchitem | https://github.com/01-edu/public/blob/master/subjects/btreesearchitem.en.md - btreelevelcount | https://github.com/01-edu/public/blob/master/subjects/btreelevelcount.en.md - btreeisbinary | https://github.com/01-edu/public/blob/master/subjects/btreeisbinary.en.md - btreeapplylevel | https://github.com/01-edu/public/blob/master/subjects/btreeapplylevel.en.md - btreemax | https://github.com/01-edu/public/blob/master/subjects/btreemax.en.md - btreemin | https://github.com/01-edu/public/blob/master/subjects/btreemin.en.md - btreetransplant | https://github.com/01-edu/public/blob/master/subjects/btreetransplant.en.md - btreedeletenode | https://github.com/01-edu/public/blob/master/subjects/btreedeletenode.en.md ## Exam 4 - Fianal Exam (8hours) #### Functions and programs skills evaluation, based on Quest 2 and Quest 11