L'informatique en L1, ce que tu vas vraiment voir
Première année universitaire d'informatique, sans pré-requis : on part du principe que tu débutes. Le S1 et le S2 t'amènent à maîtriser cinq blocs : algorithmique et programmation (Python le plus souvent), mathématiques discrètes, architecture machine, systèmes d'exploitation et réseaux. Voilà ce qu'il faut retenir pour les partiels.
1. Algorithmique et programmation
L'algorithmique est le cœur du semestre. Un algorithme est une suite finie d'instructions qui résout un problème en un nombre fini d'étapes. Les exigences universitaires : démontrer la terminaison, la correction et estimer la complexité.
1.1 Structures de contrôle
- Séquence : exécution dans l'ordre
- Conditionnelle : if / else
- Boucle : while (avec condition d'arrêt à prouver), for (parcours d'itérable)
1.2 Tableaux et listes
Le tableau offre un accès en O(1) par index mais une insertion en O(n). La liste chaînée inverse ces complexités. Les listes Python combinent l'accès tableau et le redimensionnement amorti.
1.3 Récursivité
Une fonction est récursive lorsqu'elle s'appelle elle-même. Toujours : un cas de base et un appel sur un sous-problème strictement plus petit. Exemples canoniques : factorielle, Fibonacci, parcours d'arbre, tri fusion. La preuve de terminaison passe par une fonction de variant (entier qui décroît strictement).
2. Complexité algorithmique
La complexité estime le nombre d'opérations en fonction de la taille n de l'entrée.
| Notation | Sens | Exemple |
|---|
| O(1) | Constant | Accès tableau |
| O(log n) | Logarithmique | Recherche dichotomique |
| O(n) | Linéaire | Parcours simple |
| O(n log n) | Quasi-linéaire | Tri fusion, tri rapide moyen |
| O(n²) | Quadratique | Tri à bulles, sélection |
| O(2ⁿ) | Exponentielle | Sous-ensembles |
À retenir : on majore le terme dominant et on ignore les constantes. La complexité dans le pire cas prime aux partiels.
3. Tris et recherches
- Tri par sélection : O(n²), simple à coder
- Tri à bulles : O(n²), pédagogique
- Tri par insertion : O(n²) pire cas, O(n) presque trié
- Tri fusion (merge sort) : O(n log n) garanti, stable, récursif
- Tri rapide (quicksort) : O(n log n) moyen, O(n²) pire cas, en place
Recherche dichotomique : O(log n) sur un tableau trié. Pseudo-code à savoir réécrire de mémoire.
4. Structures de données
- Pile (stack) : LIFO, opérations push / pop en O(1). Application : évaluation d'expressions, fonctions récursives.
- File (queue) : FIFO, enqueue / dequeue. Application : parcours en largeur (BFS).
- Liste chaînée : simple, double, circulaire.
- Arbre : binaire, binaire de recherche (ABR). Parcours infixe / préfixe / postfixe.
- Dictionnaire / table de hachage : accès moyen O(1) par clé.
5. Mathématiques discrètes
Le S1 ou S2 comporte un module de mathématiques pour l'informatique. Notions à maîtriser :
- Logique propositionnelle : connecteurs, table de vérité, équivalences (loi de De Morgan)
- Théorie des ensembles : union, intersection, complément, produit cartésien
- Relations : réflexivité, symétrie, transitivité, relations d'équivalence
- Combinatoire : arrangements, permutations, combinaisons (formule du binôme)
- Récurrence : preuve par récurrence forte ou faible
- Théorie des graphes : sommets, arêtes, chemins, cycles, parcours BFS / DFS
6. Architecture des ordinateurs
- Représentation des données : binaire, hexadécimal, complément à deux pour les entiers signés, IEEE 754 pour les flottants
- Portes logiques : ET, OU, NON, OU exclusif, demi-additionneur
- Architecture de Von Neumann : CPU, mémoire, bus, périphériques
- Pipeline et cache : optimisations matérielles à connaître au moins de nom
7. Systèmes d'exploitation et réseaux
7.1 Système
- Processus vs thread : isolation mémoire vs partage
- Ordonnancement : tourniquet, priorité, FCFS
- Gestion mémoire : pagination, segmentation, mémoire virtuelle
- Système de fichiers : inodes, droits Unix (lecture, écriture, exécution)
- Shell Unix : ls, cd, grep, chmod, redirections >, |
7.2 Réseau
Modèle OSI en 7 couches, modèle TCP/IP en 4 couches. Protocoles à savoir : HTTP, HTTPS, DNS, TCP vs UDP, IP, Ethernet. Adressage IP : classes A, B, C ; masque de sous-réseau ; différence IPv4 / IPv6.
8. Méthodologie pour les partiels
- Lire le sujet en entier avant de commencer — repérer les questions à barème élevé.
- Justifier la complexité dès qu'un algorithme est demandé : tableau d'invariants ou récurrence.
- Tracer l'exécution ligne par ligne quand on demande "que vaut x après ?". Une feuille de brouillon en colonnes (variable / valeur / itération) évite 80 % des erreurs.
- Écrire le pseudo-code lisible : indentation, noms parlants, commentaires courts. Les correcteurs sanctionnent les variables a, b, c.
Si tu utilises EduFiche, balance ton poly d'algo + tes TP Python : tu récupères une fiche par notion avec les complexités, les pseudo-codes et quelques exercices types. Le gain réel est sur les chapitres denses qu'on n'a pas le temps de digérer en TD (récursivité, complexité, structures de données chaînées).