You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

346 lines
16 KiB

# 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 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://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 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/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 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/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
6 years ago
#### 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.
6 years ago
Notions: String Manipulation and medium-advanced algorithmia
Videos:
- 05-01-Runes, Bytes and Strings | https://www.youtube.com/watch?v=-eIU5ISID64
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:
<<<<<<< HEAD
- [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)
=======
- printprogramname | https://public.01-edu.org/subjects/printprogramname
- printparams | https://public.01-edu.org/subjects/printparams
- revparams | https://public.01-edu.org/subjects/revparams
- sortparams | https://public.01-edu.org/subjects/sortparams
>>>>>>> refs/remotes/origin/master
### 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/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
6 years ago
#### 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:
<<<<<<< HEAD
- [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)
=======
- bool | https://public.01-edu.org/subjects/bool
- point | https://public.01-edu.org/subjects/point
- displayfile | https://public.01-edu.org/subjects/displayfile
- cat | https://public.01-edu.org/subjects/cat
- ztail | https://public.01-edu.org/subjects/ztail
>>>>>>> refs/remotes/origin/master
### Quest 9
#### Functions as argument
Notions: Advance function prototyping
Videos:
- 09-01-Functions as Arguments | https://www.youtube.com/watch?v=lw8jUwsluAE
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 Lists Introduction | https://www.youtube.com/watch?v=EPICVEbylU0
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
6 years ago
Notions: Advanced 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/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)
6 years ago
### Exam 4 - Final Exam (8hours)
#### Functions and programs skills evaluation, based on all the quests from 2 to 11