Conseils
Ce cours suit une formation typique en informatique, du premier programme au machine learning. Il débute par les fondamentaux de la programmation et les mathématiques discrètes, puis progresse vers la conception orientée objet, les structures de données et algorithmes, l'architecture informatique, les systèmes d'exploitation, les bases de données et les réseaux. Les modules ultérieurs couvrent la conception algorithmique, la théorie du calcul et les compilateurs, le génie logiciel, ainsi que l'intelligence artificielle et le machine learning.
Deux habitudes priment sur tout langage. Premièrement, écrire et exécuter du code chaque semaine : lire une solution ne remplace pas sa production. Deuxièmement, raisonner sur la complexité. Une réponse universitaire doit indiquer comment le temps d'exécution évolue avec la taille de l'entrée, noté en Big-O, et justifier la correction de l'algorithme, et non simplement affirmer qu'il a fonctionné sur un test unique.
Les mathématiques discrètes peuvent sembler distinctes de la programmation. Elles ne le sont pas. La démonstration par récurrence permet de prouver la validité d'une fonction récursive, et les graphes sous-tendent les cartes, les réseaux et les compilateurs.
-
1
Fondamentaux de la programmation
- 1.1 Ce que ce cours est, et comment l'utiliser
- 1.1 Valeurs, types et entrée/sortie
- 1.2 Sélection : choisir entre plusieurs chemins
- 1.3 Itération : refaire encore
- 1.4 Fonctions : nommer une tâche une seule fois
- 1.5 Collections : listes, dictionnaires, tuples, ensembles
- 1.6 Fichiers et erreurs
- 1.7 Décomposition, tests et débogage
Chargement…
-
2
Mathématiques discrètes
- 2.1 Logique et démonstrations
- 2.2 Ensembles, fonctions et relations
- 2.3 Induction et récursion
- 2.4 Dénombrement et combinatoire
- 2.5 Graphes et arbres
- 2.6 Probabilités discrètes
Chargement…
-
3
Fondamentaux des systèmes informatiques
- 3.1 Binaire et codage des données
- 3.2 Portes logiques et blocs de construction numériques
- 3.3 Aperçu du processeur et de la mémoire
- 3.4 Instructions machine
- 3.5 Interface système d'exploitation
- 3.6 Chemin de compilation et d'exécution
Chargement…
-
4
Programmation orientée objet
- 4.1 Objets et classes
- 4.2 Encapsulation
- 4.3 Composition et héritage
- 4.4 Interfaces et polymorphisme
- 4.5 Exceptions et gestion des erreurs
- 4.6 Tests et qualité de conception
Chargement…
-
5
Structures de données et algorithmes
- 5.1 Analyse asymptotique
- 5.2 Listes, piles et files d'attente
- 5.3 Hachage
- 5.4 Arbres et tas
- 5.5 Graphes et parcours
- 5.6 Tri
- 5.7 Recherche
Chargement…
-
6
Architecture informatique
- 6.1 Architecture de jeu d'instructions
- 6.2 Chemin de données et contrôle
- 6.3 Pipelinage
- 6.4 Hiérarchie de la mémoire
- 6.5 Entrées/sorties
- 6.6 Parallélisme et performance
Chargement…
-
7
Systèmes d'exploitation
- 7.1 Processus et threads
- 7.2 Ordonnancement
- 7.3 Synchronisation
- 7.4 Mémoire virtuelle
- 7.5 Systèmes de fichiers
- 7.6 Protection et sécurité
Chargement…
-
8
Bases de données
- 8.1 Modélisation relationnelle
- 8.2 Algèbre relationnelle et SQL
- 8.3 Normalisation
- 8.4 Index et plans de requête
- 8.5 Transactions et concurrence
- 8.6 Sécurité et gouvernance des données
Chargement…
-
9
Réseaux d'ordinateurs
- 9.1 Couches et architecture
- 9.2 Couche liaison et IP
- 9.3 Acheminement
- 9.4 Transport (TCP/UDP)
- 9.5 Protocoles applicatifs
- 9.6 Sécurité réseau
- 9.7 Fondamentaux des systèmes distribués
Chargement…
-
10
Conception et analyse d'algorithmes
- 10.1 Récurrences et outils d'analyse
- 10.2 Diviser pour régner
- 10.3 Algorithmes gloutons
- 10.4 Programmation dynamique
- 10.5 Optimisation sur les graphes
- 10.6 Réductions et NP-complétude
Chargement…
-
11
Théorie de la calculabilité et compilateurs
- 11.1 Automates et langages réguliers
- 11.2 Langages hors contexte et théorie du parsing
- 11.3 Calculabilité
- 11.4 Analyse lexicale
- 11.5 Parsing
- 11.6 Analyse sémantique et génération de code
Chargement…
-
12
Génie logiciel
- 12.1 Spécifications des besoins
- 12.2 Architecture et conception
- 12.3 HCI et accessibilité
- 12.4 Contrôle de version et travail en équipe
- 12.5 Tests et intégration continue
- 12.6 Sécurité et éthique professionnelle
- 12.7 Projet d'équipe
Chargement…
-
13
Intelligence artificielle et apprentissage automatique
- 13.1 Rechercher
- 13.2 Connaissance et raisonnement
- 13.3 Modèles probabilistes
- 13.4 Régression et classification
- 13.5 Optimisation et apprentissage
- 13.6 Évaluation et fuite d'information
- 13.7 Équité et limites
Chargement…