# Piscine Go curriculum --- ## Week One ### Quest 1 #### Introduction to shell Notions: basic usage and interaction with a command line terminal. Videos: - [1-2](https://www.youtube.com/watch?v=A0Mqc215igw) `curl` with the GitHub api and Example of shell file - [1-3](https://www.youtube.com/watch?v=21h-vsuXgDU) `touch`, `chmod` and `echo` - [1-4](https://www.youtube.com/watch?v=7a1JSWHhJlM) `find` and `grep` - [1-5](https://www.youtube.com/watch?v=Nil7rVP3eMI) `cut`, `sed` and `tr` - [1-6](https://www.youtube.com/watch?v=cQmcaOseuiA&) `jq` and `wc` Exercices: - [introduction](https://github.com/01-edu/public/tree/master/subjects/introduction/README.md) - [make-it-better](https://github.com/01-edu/public/tree/master/subjects/make-it-better/README.md) - [to-git-or-not-to-git](https://github.com/01-edu/public/tree/master/subjects/to-git-or-not-to-git/README.md) - [who-are-you](https://github.com/01-edu/public/tree/master/subjects/who-are-you/README.md) - [cl-camp1](https://github.com/01-edu/public/tree/master/subjects/cl-camp1/README.md) - [cl-camp2](https://github.com/01-edu/public/tree/master/subjects/cl-camp2/README.md) - [cl-camp3](https://github.com/01-edu/public/tree/master/subjects/cl-camp3/README.md) - [cl-camp4](https://github.com/01-edu/public/tree/master/subjects/cl-camp4/README.md) - [cl-camp5](https://github.com/01-edu/public/tree/master/subjects/cl-camp5/README.md) - [cl-camp6](https://github.com/01-edu/public/tree/master/subjects/cl-camp6/README.md) - [cl-camp7](https://github.com/01-edu/public/tree/master/subjects/cl-camp7/README.md) - [cl-camp8](https://github.com/01-edu/public/tree/master/subjects/cl-camp8/README.md) - [now-get-to-work](https://github.com/01-edu/public/tree/master/subjects/now-get-to-work/README.md) ### 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](https://www.youtube.com/watch?v=rnF1_SfeGE4) and Else Statements in Go - [02-02-ForLoops](https://www.youtube.com/watch?v=Bt47lx6q2-4) - [02-03-PrintRune](https://www.youtube.com/watch?v=o8JrvI3jqoM) function - [02-04-Variables](https://www.youtube.com/watch?v=RCNOV8m0hJQ) Declaration and ascii Exercices: - [printalphabet](https://github.com/01-edu/public/tree/master/subjects/printalphabet/README.md) - [printreversealphabet](https://github.com/01-edu/public/tree/master/subjects/printreversealphabet/README.md) - [prindigits](https://github.com/01-edu/public/tree/master/subjects/printdigits/README.md) - [isnegative](https://github.com/01-edu/public/tree/master/subjects/isnegative/README.md) - [printcomb](https://github.com/01-edu/public/tree/master/subjects/printcomb/README.md) - [printcomb2](https://github.com/01-edu/public/tree/master/subjects/printcomb2/README.md) - [printnbr](https://github.com/01-edu/public/tree/master/subjects/printnbr/README.md) - [printcombn](https://github.com/01-edu/public/tree/master/subjects/printcombn/README.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](https://www.youtube.com/watch?v=owVPa5b1BMc) on variables - [03-04-Modulo](https://www.youtube.com/watch?v=NVan-9-Ioec) and Division Exercices: - [pointone](https://github.com/01-edu/public/tree/master/subjects/pointone/README.md) - [ultimatepointone](https://github.com/01-edu/public/tree/master/subjects/ultimatepointone/README.md) - [divmod](https://github.com/01-edu/public/tree/master/subjects/divmod/README.md) - [ultimatedivmod](https://github.com/01-edu/public/tree/master/subjects/ultimatedivmod/README.md) - [printstr](https://github.com/01-edu/public/tree/master/subjects/printstr/README.md) - [strlen](https://github.com/01-edu/public/tree/master/subjects/strlen/README.md) - [swap](https://github.com/01-edu/public/tree/master/subjects/swap/README.md) - [strrev](https://github.com/01-edu/public/tree/master/subjects/strrev/README.md) - [basicatoi](https://github.com/01-edu/public/tree/master/subjects/basicatoi/README.md) - [basicatoi2](https://github.com/01-edu/public/tree/master/subjects/basicatoi2/README.md) - [atoi](https://github.com/01-edu/public/tree/master/subjects/atoi/README.md) - [sortintegerable](https://github.com/01-edu/public/tree/master/subjects/sortintegertable/README.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 knowledge (loop and if/else) --- ## Week Two ### Quest 4 #### Algorithm 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/tree/master/subjects/iterativefactorial/README.md) - [recursivefactorial](https://github.com/01-edu/public/tree/master/subjects/recursivefactorial/README.md) - [iterativepower](https://github.com/01-edu/public/tree/master/subjects/iterativepower/README.md) - [recursivepower](https://github.com/01-edu/public/tree/master/subjects/recursivepower/README.md) - [fibonacci](https://github.com/01-edu/public/tree/master/subjects/fibonacci/README.md) - [sqrt](https://github.com/01-edu/public/tree/master/subjects/sqrt/README.md) - [isprime](https://github.com/01-edu/public/tree/master/subjects/isprime/README.md) - [findnextprime](https://github.com/01-edu/public/tree/master/subjects/findnextprime/README.md) - [eightqueens](https://github.com/01-edu/public/tree/master/subjects/eightqueens/README.md) ### Quest 5 #### Application of previously viewed concepts. Notions: String Manipulation and medium-advanced algorithms Videos: - [05-01-Runes](https://www.youtube.com/watch?v=-eIU5ISID64), Bytes and Strings Exercices: - [firstrune](https://github.com/01-edu/public/tree/master/subjects/firstrune/README.md) - [nrune](https://github.com/01-edu/public/tree/master/subjects/nrune/README.md) - [lastrune](https://github.com/01-edu/public/tree/master/subjects/lastrune/README.md) - [index](https://github.com/01-edu/public/tree/master/subjects/index/README.md) - [compare](https://github.com/01-edu/public/tree/master/subjects/compare/README.md) - [toupper](https://github.com/01-edu/public/tree/master/subjects/toupper/README.md) - [tolower](https://github.com/01-edu/public/tree/master/subjects/tolower/README.md) - [capitalize](https://github.com/01-edu/public/tree/master/subjects/capitalize/README.md) - [isalpha](https://github.com/01-edu/public/tree/master/subjects/isalpha/README.md) - [isnumeric](https://github.com/01-edu/public/tree/master/subjects/isnumeric/README.md) - [islower](https://github.com/01-edu/public/tree/master/subjects/islower/README.md) - [isupper](https://github.com/01-edu/public/tree/master/subjects/isupper/README.md) - [isprintable](https://github.com/01-edu/public/tree/master/subjects/isprintable/README.md) - [concat](https://github.com/01-edu/public/tree/master/subjects/concat/README.md) - [basicjoin](https://github.com/01-edu/public/tree/master/subjects/basicjoin/README.md) - [join](https://github.com/01-edu/public/tree/master/subjects/join/README.md) - [printnbrbase](https://github.com/01-edu/public/tree/master/subjects/printnbrbase/README.md) - [atoibase](https://github.com/01-edu/public/tree/master/subjects/atoibase/README.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/tree/master/subjects/printprogramname/README.md) - [printparams](https://github.com/01-edu/public/tree/master/subjects/printparams/README.md) - [revparams](https://github.com/01-edu/public/tree/master/subjects/revparams/README.md) - [sortparams](https://github.com/01-edu/public/tree/master/subjects/sortparams/README.md) ### Quest 7 #### The Memory Allocation in GoLang Notions: Usage of Make and Append Videos: - [07-01-Make](https://www.youtube.com/watch?v=2HHVUM0YQuI) and Append methods Exercices: - [appendrange](https://github.com/01-edu/public/tree/master/subjects/apprendrange/README.md) - [makerange](https://github.com/01-edu/public/tree/master/subjects/makerange/README.md) - [concatparams](https://github.com/01-edu/public/tree/master/subjects/concatparams/README.md) - [splitwhitespaces](https://github.com/01-edu/public/tree/master/subjects/splitwhitespaces/README.md) - [printwordstables](https://github.com/01-edu/public/tree/master/subjects/printwordstables/README.md) - [convertbase](https://github.com/01-edu/public/tree/master/subjects/converbase/README.md) - [split](https://github.com/01-edu/public/tree/master/subjects/split/README.md) ### Exam 2 (4hours) #### Basic functions and programs skills evaluation, based on all the quests from 2 to 6 ### Raid 2 - Sudoku #### Second Group project. Problem resolution. Usage of Memory manipulation tools --- ## Week Three ### Quest 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](https://www.youtube.com/watch?v=-24M7r7VuLY) in Go - [08-02-File](https://www.youtube.com/watch?v=8vUgchQGhcQ) Manipulation in go Exercices: - [bool](https://github.com/01-edu/public/tree/master/subjects/bool/README.md) - [point](https://github.com/01-edu/public/tree/master/subjects/point/README.md) - [displayfile](https://github.com/01-edu/public/tree/master/subjects/displayfile/README.md) - [cat](https://github.com/01-edu/public/tree/master/subjects/cat/README.md) - [ztail](https://github.com/01-edu/public/tree/master/subjects/ztail/README.md) ### Quest 9 #### Functions as argument Notions: Advance function prototyping Videos: - [09-01-Functions](https://www.youtube.com/watch?v=lw8jUwsluAE) as Arguments Exercices: - [foreach](https://github.com/01-edu/public/tree/master/subjects/foreach/README.md) - [map](https://github.com/01-edu/public/tree/master/subjects/map/README.md) - [any](https://github.com/01-edu/public/tree/master/subjects/any/README.md) - [countif](https://github.com/01-edu/public/tree/master/subjects/countif/README.md) - [issorted](https://github.com/01-edu/public/tree/master/subjects/issorted/README.md) - [doop](https://github.com/01-edu/public/tree/master/subjects/doop/README.md) - [sortwordarr](https://github.com/01-edu/public/tree/master/subjects/sortwordarr/README.md) - [advancedsortwordarr](https://github.com/01-edu/public/tree/master/subjects/advancedsortwordarr/README.md) ### Quest 10 #### Hackathon Notions: All previously viewed concepts in team work Exercices: - [rot14](https://github.com/01-edu/public/tree/master/subjects/rot14/README.md) - [abort](https://github.com/01-edu/public/tree/master/subjects/abort/README.md) - [collatzcountdown](https://github.com/01-edu/public/tree/master/subjects/collatzcountdown/README.md) - [comcheck](https://github.com/01-edu/public/tree/master/subjects/comcheck/README.md) - [enigma](https://github.com/01-edu/public/tree/master/subjects/enigma/README.md) - [pilot](https://github.com/01-edu/public/tree/master/subjects/pilot/README.md) - [fixthemain](https://github.com/01-edu/public/tree/master/subjects/fixthemain/README.md) - [compact](https://github.com/01-edu/public/tree/master/subjects/compact/README.md) - [activebits](https://github.com/01-edu/public/tree/master/subjects/activebits/README.md) - [max](https://github.com/01-edu/public/tree/master/subjects/max/README.md) - [join](https://github.com/01-edu/public/tree/master/subjects/join/README.md) - [unmatch](https://github.com/01-edu/public/tree/master/subjects/unmatch/README.md) ### Exam 3 (4hours) #### Basic functions and programs skills evaluation, based on all the quests from 2 to 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](https://www.youtube.com/watch?v=EPICVEbylU0) Lists Introduction Exercices: - [listpushback](https://github.com/01-edu/public/tree/master/subjects/listpushback/README.md) - [listpushfront](https://github.com/01-edu/public/tree/master/subjects/listpushfront/README.md) - [listsize](https://github.com/01-edu/public/tree/master/subjects/listsize/README.md) - [listlast](https://github.com/01-edu/public/tree/master/subjects/listlast/README.md) - [listclear](https://github.com/01-edu/public/tree/master/subjects/listclear/README.md) - [listat](https://github.com/01-edu/public/tree/master/subjects/listat/README.md) - [listreverse](https://github.com/01-edu/public/tree/master/subjects/listreverse/README.md) - [listforeach](https://github.com/01-edu/public/tree/master/subjects/listforeach/README.md) - [listforeachif](https://github.com/01-edu/public/tree/master/subjects/listforeachif/README.md) - [listfind](https://github.com/01-edu/public/tree/master/subjects/listfind/README.md) - [listremoveif](https://github.com/01-edu/public/tree/master/subjects/listremoveif/README.md) - [listmerge](https://github.com/01-edu/public/tree/master/subjects/listmerge/README.md) - [listsort](https://github.com/01-edu/public/tree/master/subjects/listsort/README.md) - [sortlistinsert](https://github.com/01-edu/public/tree/master/subjects/sortlistinsert/README.md) - [sortedlistmerge](https://github.com/01-edu/public/tree/master/subjects/sortedlistmerge/README.md) ### Quest 12 #### Binary Trees Notions: Advanced Data Structure using binary trees Videos: - [12-01-Introduction](https://www.youtube.com/watch?v=3g2WCqWNIVs) to Binary Trees Exercices: - [btreeinsertdata](https://github.com/01-edu/public/tree/master/subjects/btreeinsertdata/README.md) - [btreeapplyinorder](https://github.com/01-edu/public/tree/master/subjects/btreeapplyinorder/README.md) - [btreeapplypreorder](https://github.com/01-edu/public/tree/master/subjects/btreeapplypreorder/README.md) - [btreesearchitem](https://github.com/01-edu/public/tree/master/subjects/btreesearchitem/README.md) - [btreelevelcount](https://github.com/01-edu/public/tree/master/subjects/btreelevelcount/README.md) - [btreeisbinary](https://github.com/01-edu/public/tree/master/subjects/btreeisbinary/README.md) - [btreeapplylevel](https://github.com/01-edu/public/tree/master/subjects/btreeapplylevel/README.md) - [btreemax](https://github.com/01-edu/public/tree/master/subjects/btreemax/README.md) - [btreemin](https://github.com/01-edu/public/tree/master/subjects/btreemin/README.md) - [btreetransplant](https://github.com/01-edu/public/tree/master/subjects/btreetransplant/README.md) - [btreedeletenode](https://github.com/01-edu/public/tree/master/subjects/btreedeletenode/README.md) ### Exam 4 - Final Exam (8hours) #### Functions and programs skills evaluation, based on all the quests from 2 to 11