|
|
|
# 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
|
|
|
|
|
|
|
|
#### 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/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 algorithmia
|
|
|
|
|
|
|
|
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
|