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.

331 lines
11 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://public.01-edu.org/subjects/introduction
- make-it-better | https://public.01-edu.org/subjects/make-it-better
- to-git-or-not-to-git | https://public.01-edu.org/subjects/to-git-or-not-to-git
- who-are-you | https://public.01-edu.org/subjects/who-are-you
- cl-camp1 | https://public.01-edu.org/subjects/cl-camp1
- cl-camp2 | https://public.01-edu.org/subjects/cl-camp2
- cl-camp3 | https://public.01-edu.org/subjects/cl-camp3
- cl-camp4 | https://public.01-edu.org/subjects/cl-camp4
- cl-camp5 | https://public.01-edu.org/subjects/cl-camp5
- cl-camp6 | https://public.01-edu.org/subjects/cl-camp6
- cl-camp7 | https://public.01-edu.org/subjects/cl-camp7
- cl-camp8 | https://public.01-edu.org/subjects/cl-camp8
- now-get-to-work | https://public.01-edu.org/subjects/now-get-to-work
### 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
- printreversealphabet | https://public.01-edu.org/subjects/printreversealphabet
- prindigits | https://public.01-edu.org/subjects/printdigits
- isnegative | https://public.01-edu.org/subjects/isnegative
- printcomb | https://public.01-edu.org/subjects/printcomb
- printcomb2 | https://public.01-edu.org/subjects/printcomb2
- printnbr | https://public.01-edu.org/subjects/printnbr
- printcombn | https://public.01-edu.org/subjects/printcombn
### 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
- ultimatepointone | https://public.01-edu.org/subjects/ultimatepointone
- divmod | https://public.01-edu.org/subjects/divmod
- ultimatedivmod | https://public.01-edu.org/subjects/ultimatedivmod
- printstr | https://public.01-edu.org/subjects/printstr
- strlen | https://public.01-edu.org/subjects/strlen
- swap | https://public.01-edu.org/subjects/swap
- strrev | https://public.01-edu.org/subjects/strrev
- basicatoi | https://public.01-edu.org/subjects/basicatoi
- basicatoi2 | https://public.01-edu.org/subjects/basicatoi2
- atoi | https://public.01-edu.org/subjects/atoi
- sortintegerable | https://public.01-edu.org/subjects/sortintegertable
### Exam 1 (4hours)
#### Basic functions and programs skills evaluation, based on Quest 2 and Quest 3
### Raid 1 - Square Drawing
5 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://public.01-edu.org/subjects/iterativefactorial
- recursivefactorial | https://public.01-edu.org/subjects/recursivefactorial
- iterativepower | https://public.01-edu.org/subjects/iterativepower
- recursivepower | https://public.01-edu.org/subjects/recursivepower
- fibonacci | https://public.01-edu.org/subjects/fibonacci
- sqrt | https://public.01-edu.org/subjects/sqrt
- isprime | https://public.01-edu.org/subjects/isprime
- findnextprime | https://public.01-edu.org/subjects/findnextprime
- eightqueens | https://public.01-edu.org/subjects/eightqueens
### Quest 5
#### Application of previously viewed concepts.
5 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://public.01-edu.org/subjects/firstrune
- nrune | https://public.01-edu.org/subjects/nrune
- lastrune | https://public.01-edu.org/subjects/lastrune
- index | https://public.01-edu.org/subjects/index
- compare | https://public.01-edu.org/subjects/compare
- toupper | https://public.01-edu.org/subjects/toupper
- tolower | https://public.01-edu.org/subjects/tolower
- capitalize | https://public.01-edu.org/subjects/capitalize
- isalpha | https://public.01-edu.org/subjects/isalpha
- isnumeric | https://public.01-edu.org/subjects/isnumeric
- islower | https://public.01-edu.org/subjects/islower
- isupper | https://public.01-edu.org/subjects/isupper
- isprintable | https://public.01-edu.org/subjects/isprintable
- concat | https://public.01-edu.org/subjects/concat
- basicjoin | https://public.01-edu.org/subjects/basicjoin
- join | https://public.01-edu.org/subjects/join
- printnbrbase | https://public.01-edu.org/subjects/printnbrbase
- atoibase | https://public.01-edu.org/subjects/atoibase
### 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
- printparams | https://public.01-edu.org/subjects/printparams
- revparams | https://public.01-edu.org/subjects/revparams
- sortparams | https://public.01-edu.org/subjects/sortparams
### 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
- makerange | https://public.01-edu.org/subjects/makerange
- concatparams | https://public.01-edu.org/subjects/concatparams
- splitwhitespaces | https://public.01-edu.org/subjects/splitwhitespaces
- printwordstables | https://public.01-edu.org/subjects/printwordstables
- convertbase | https://public.01-edu.org/subjects/converbase
- split | https://public.01-edu.org/subjects/split
### 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
5 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:
- 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
### 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://public.01-edu.org/subjects/foreach
- map | https://public.01-edu.org/subjects/map
- any | https://public.01-edu.org/subjects/any
- countif | https://public.01-edu.org/subjects/countif
- issorted | https://public.01-edu.org/subjects/issorted
- doop | https://public.01-edu.org/subjects/doop
- sortwordarr | https://public.01-edu.org/subjects/sortwordarr
- advancedsortwordarr | https://public.01-edu.org/subjects/advancedsortwordarr
### Quest 10
#### Hackathon
Notions: All previously viewed concepts in team work
Exercices:
- rot14 | https://public.01-edu.org/subjects/rot14
- abort | https://public.01-edu.org/subjects/abort
- collatzcountdown | https://public.01-edu.org/subjects/collatzcountdown
- comcheck | https://public.01-edu.org/subjects/comcheck
- enigma | https://public.01-edu.org/subjects/enigma
- pilot | https://public.01-edu.org/subjects/pilot
- fixthemain | https://public.01-edu.org/subjects/fixthemain
- compact | https://public.01-edu.org/subjects/compact
- activebits | https://public.01-edu.org/subjects/activebits
- max | https://public.01-edu.org/subjects/max
- join | https://public.01-edu.org/subjects/join
- unmatch | https://public.01-edu.org/subjects/unmatch
### 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
- listpushfront | https://public.01-edu.org/subjects/listpushfront
- listsize | https://public.01-edu.org/subjects/listsize
- listlast | https://public.01-edu.org/subjects/listlast
- listclear | https://public.01-edu.org/subjects/listclear
- listat | https://public.01-edu.org/subjects/listat
- listreverse | https://public.01-edu.org/subjects/listreverse
- listforeach | https://public.01-edu.org/subjects/listforeach
- listforeachif | https://public.01-edu.org/subjects/listforeachif
- listfind | https://public.01-edu.org/subjects/listfind
- listremoveif | https://public.01-edu.org/subjects/listremoveif
- listmerge | https://public.01-edu.org/subjects/listmerge
- listsort | https://public.01-edu.org/subjects/listsort
- sortlistinsert | https://public.01-edu.org/subjects/sortlistinsert
- sortedlistmerge | https://public.01-edu.org/subjects/sortedlistmerge
### Quest 12
#### Binary Trees
5 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://public.01-edu.org/subjects/btreeinsertdata
- btreeapplyinorder | https://public.01-edu.org/subjects/btreeapplyinorder
- btreeapplypreorder | https://public.01-edu.org/subjects/btreeapplypreorder
- btreesearchitem | https://public.01-edu.org/subjects/btreesearchitem
- btreelevelcount | https://public.01-edu.org/subjects/btreelevelcount
- btreeisbinary | https://public.01-edu.org/subjects/btreeisbinary
- btreeapplylevel | https://public.01-edu.org/subjects/btreeapplylevel
- btreemax | https://public.01-edu.org/subjects/btreemax
- btreemin | https://public.01-edu.org/subjects/btreemin
- btreetransplant | https://public.01-edu.org/subjects/btreetransplant
- btreedeletenode | https://public.01-edu.org/subjects/btreedeletenode
5 years ago
### Exam 4 - Final Exam (8hours)
#### Functions and programs skills evaluation, based on Quest 2 and Quest 11