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.

265 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 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