2021-09-08 Introduction à la programmation (sketch)#
Présentation
Programmation en classes préparatoires, Informatique en CPGE
architecture d’un ordinateur
base du langage python
arbre binaire, graphes
algorithme, parcours de graphe, distance d’édition, diviser pour régner, programmation dynamique
- Langages haut niveau, bas niveau
C/C++
Rust
Javascript, Python, matlab…
- Pythonmachine learning
datascience, deep learning = python
automatisation, site web
Python populaire (travails, universités)
interfaçage avec C++
- Pratique
Trouver le plus court chemin d’une station de métro à une autre ? –> plus court chemin dans un graphe
Même question en tenant compte des temps de changement de ligne ?
Machine learning aujourd’hui
- Apprentissage fait avec python
deep learning : pytorch
- Code faisant les calculs écrit en C/C++/asm
Déploiement (utilisation des modèles) sur d’autres langages encore (javascript, C#, go, …)
- Démocratisation dans de nombreux pays
Deep Learning
- Le deep learning envahit la vie quotidienne
santé (aide au diagnotisque)
sécurité (vidéo surveillance),
automatisation (voiture)
publicité, objets connectées
…
- Besoin de calculs, besoin de codes rapides
CPU, GPU, TPU
NVIDIA A100, innovation matérielle et logicielle
recherche très active dans ce domaine
Modèles de plus en plus gros
Il ne suffit plus d’être bon en maths, ou bon en informatique, il faut être les deux
Ingéniérie logicielle
- Le point faible des ingénieurs français
On commence l’informatique avant la prépa dans d’autres pays
Pas assez de pratique, un bon codeur a beaucoup codé.
tests unitaires : à connaître avant d’aller passer un entretien d’embauche
- intégration continue
A chaque modification, on vérifie que les tests unitaires passent.
- documentation
C’est fastidieux mais indispensable dans un monde open source.
Les projets qui ont réussi ont toujours une bonne documentation.
- culture algorithmique
un produit matriciel n’est pas aussi simple qu’on le dit quand on veut qu’il soit rapide
- git
Un outil injustement méconnu des juristes.
Thèse…
C/C++ : même si vous n’en avez pas besoin tous les jours, on code mieux en python quand on connaît un langage bas niveau car on comprend mieux tout ce que le langage nous cache
linux
Cours, premiere semestre
Evaluation, anciens examens Séances notées
Cours, second semestre
Projet : 1A - Projets informatiques
Ressource, supports pour ce cours
Rappels : Petit voyage au pays du machine learning
Programmation : Apprendre la programmation avec Python
Un peu plus mathématique : Les maths d’abord, la programmation ensuite
Et puis…
Les moteurs de recherche : python + message d’erreur, cheatsheet
A la fin de l’année, vous devriez pouvoir…
Imaginer une stratégie automatique au 2048.
Simuler une épidémie, des régimes de retraites
Supprimer les pesticides en programmant des drones pour couper les mauvaises herbes ou couper les feuilles infectées par le mildiou
Lutter contre les îlots de chaleur dans les villes en verdissant les toits avec un mélange de plantes en fonction de la disposition du toit (Singapour : des gratte-ciels anti-pollution)
Devenir le prochain covidtracker
Calculer l’exposition d’une économie à un certain type de produit… PSA : l’usine de Rennes à l’arrêt par manque de semi-conducteurs Panne Orange : quelles conséquences ?, Xavier Jaravel, meilleur jeune économiste 2021 pour ses travaux sur l’innovation et les inégalités,
Tout est sur GitHub.