# Réussir sa 4IR SI Starter Pack™

### Les bases à avoir avant d'arriver en cours :

- Des bases en C et en assembleur (x86) seront nécessaires pour les cours de sécu et de microcontrôleurs
- Un peu d'élec pour les microcontrôleurs (diodes, résistances de pull up/down, rappels du BE CHTI ...)

### Les liens ressources

- [Cyber-Aide](https://moodle.insa-toulouse.fr/course/view.php?id=1894)

### Conseils plus pratiques

#### Général :

### Semestre 1

#### OCaml (programmation fonctionnelle) :

##### Examen

- Attention au temps, ne vous laissez pas avoir
- <span style="text-decoration: underline;">**Conseil**</span> : vérifier que vous pouvez utiliser les fonctions de la lib standarde, faites-vous une fiche dessus, apprenez à l'utiliser et ***UTILISEZ-LA***, c'est plus rapide de faire reverse(L) que de recoder la fonction reverse.

##### Installation sur Linux et Windows (WSL ou Windows natif)

Pour les personnes sous Linux ou Windows qui le veulent, vous pouvez installer OCaml (le language) et opam (le gestionnaire de packets) en vous basant sur [ce tuto](https://v3.ocaml.org/docs/up-and-running) (extrait en dessous).

```MarkDown
# Ubuntu
$ add-apt-repository ppa:avsm/ppa
$ apt update
$ apt install opam

# Archlinux
$ pacman -S opam

# Debian (stable, testing and unstable)
$ apt-get install opam
```

Il vous faudra ensuite installer [utop](https://v3.ocaml.org/p/utop/2.10.0) et [ocaml-top](https://v3.ocaml.org/p/ocaml-top/1.1.5) en tapant `<span style="font-family: monospace;">opam install <PacketName></span>`

<p class="callout warning">en 2022 ocaml-top nécessitait d'installer gtk2. Contacter M. Le Botlan si vous n'y arrivez pas il avait fait un fix pour certains étudiants.</p>

#### Complexité :

Petite vidéo qui avec sa [série de vidéos](https://www.youtube.com/watch?v=X610pII4_J8&list=PLE8WtfrsTAilckvxQjHLfyDyDOh86e6k9), résume très bien le cours :

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/G6G4-tZRBbQ" width="560"></iframe>

### Semestre 2

#### Modélisation Système concurrent :

[https://www.youtube.com/watch?v=keO7Arv-vg4](https://www.youtube.com/watch?v=keO7Arv-vg4)

#### Web Sémantique :

#### <iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/CHpZCYH4cOM" width="560"></iframe>



<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/r795n3AffgA" width="560"></iframe>

#### Automates et Languages :

##### Devoirs maisons :

**- LEX :**

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/54bo1qaHAfk?t=1391s" width="560"></iframe>

**- YACC :**

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/__-wUHG2rfM" width="560"></iframe>

**- Aide pour débugger du YACC** (Bison) : [https://www.gnu.org/software/bison/manual/html\_node/Error-Reporting-Function.html](https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html)  
Ajouter `‘<samp>%define parse.error detailed</samp>’` au début du code (explication dans la doc ^)

Pour installer bison et lex il suffit de faire apt install (ou dnf/pacman en fonction de la distribution). On vous recommande vraiment d'utiliser un linux ([sur votre pc](https://wiki.etud.insa-toulouse.fr/books/tutos/chapter/linux), une machine virtuelle, [montp](https://wiki.etud.insa-toulouse.fr/books/travailler-sur-sa-machine/page/montp-acceder-a-sa-session-insa-depuis-chez-soi) etc)

\-  **INSTALLATION de bison et de flex recommendée :** easy, en plus, la version la plus récente de bison contient une option intéressante de débug : `-Wcounterexample`

[https://www.youtube.com/watch?v=aQJNffOlrio](https://www.youtube.com/watch?v=aQJNffOlrio&t=602s)``

\- **BON A SAVOIR :** visiter [https://www.gnu.org/software/bison/manual/bison.html#Precedence-Decl](https://www.gnu.org/software/bison/manual/bison.html#Precedence-Decl) , chapitre 5.3.2 : precedence.

<p class="callout success">Le sujet du projet sur moodle (qui fait suite aux DMs) comprend de la doc simplifiée pour ceux que ça effraye ^^</p>

Pour la partie Quantique :

<iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/-UrdExQW0cs" width="560"></iframe>

####  