ICS (pour CMS)
PREPA-025
Media
2023 - 2024
10.10.2023, 17:06
PREPA-025 ICS Cours 1 (20.09.23)
25.09.2023, 10:49
PREPA-025 ICS Cours 2 (27.09.23)
27.09.2023, 10:40
PREPA-025 ICS Mercredi 2023-2024 semestre 1
27.09.2023, 10:49
PREPA-025 ICS Cours 3 (04.10.23)
04.10.2023, 10:12
PREPA-025 ICS Mercredi 2023-2024 semestre 1
04.10.2023, 10:48
PREPA-025 ICS Cours 4 (11.10.23)
11.10.2023, 10:13
PREPA-025 ICS Mercredi 2023-2024 semestre 1
11.10.2023, 10:49
PREPA-025 ICS Cours 5 (18.10.23)
18.10.2023, 10:13
PREPA-025 ICS Mercredi 2023-2024 semestre 1
18.10.2023, 10:50
PREPA-025 ICS Cours 6 (25.10.23)
25.10.2023, 10:12
PREPA-025 ICS Cours 7 (15.11.23)
15.11.2023, 10:41
PREPA-025 ICS Mercredi 2023-2024 semestre 1
15.11.2023, 10:48
PREPA-025 ICS Cours 8 (22.11.23)
22.11.2023, 10:42
PREPA-025 ICS Mercredi 2023-2024 semestre 1
22.11.2023, 10:50
PREPA-025 ICS Cours 9 (29.11.23)
29.11.2023, 10:43
PREPA-025 ICS Cours 10 (06.12.23)
06.12.2023, 10:40
PREPA-025 ICS Cours 11 (13.12.23)
13.12.2023, 10:12
PREPA-025 ICS Mercredi 2023-2024 semestre 1
13.12.2023, 10:49
PREPA-025 ICS Cours 12 (20.12.23)
20.12.2023, 10:42
PREPA-025 ICS Mercredi 2023-2024 semestre 1
20.12.2023, 10:52
Media
2023 - 2024
10.10.2023, 17:06
PREPA-025 ICS Cours 1 (20.09.23)
25.09.2023, 10:49
PREPA-025 ICS Cours 2 (27.09.23)
27.09.2023, 10:40
PREPA-025 ICS Mercredi 2023-2024 semestre 1
27.09.2023, 10:49
PREPA-025 ICS Cours 3 (04.10.23)
04.10.2023, 10:12
PREPA-025 ICS Mercredi 2023-2024 semestre 1
04.10.2023, 10:48
PREPA-025 ICS Cours 4 (11.10.23)
11.10.2023, 10:13
PREPA-025 ICS Mercredi 2023-2024 semestre 1
11.10.2023, 10:49
PREPA-025 ICS Cours 5 (18.10.23)
18.10.2023, 10:13
PREPA-025 ICS Mercredi 2023-2024 semestre 1
18.10.2023, 10:50
PREPA-025 ICS Cours 6 (25.10.23)
25.10.2023, 10:12
PREPA-025 ICS Cours 7 (15.11.23)
15.11.2023, 10:41
PREPA-025 ICS Mercredi 2023-2024 semestre 1
15.11.2023, 10:48
PREPA-025 ICS Cours 8 (22.11.23)
22.11.2023, 10:42
PREPA-025 ICS Mercredi 2023-2024 semestre 1
22.11.2023, 10:50
PREPA-025 ICS Cours 9 (29.11.23)
29.11.2023, 10:43
PREPA-025 ICS Cours 10 (06.12.23)
06.12.2023, 10:40
PREPA-025 ICS Cours 11 (13.12.23)
13.12.2023, 10:12
PREPA-025 ICS Mercredi 2023-2024 semestre 1
13.12.2023, 10:49
PREPA-025 ICS Cours 12 (20.12.23)
20.12.2023, 10:42
PREPA-025 ICS Mercredi 2023-2024 semestre 1
20.12.2023, 10:52
Informatique et Calcul Scientifique
Bienvenue sur le Moodle cours d'Informatique et Calcul Scientifique pour le CMS!
Le cours sera donné dans la salle CO 3 pour le groupe A, et PO 01 pour le groupe B, les mercredis de 8h15 à 10h00.
Les exercices prendront la forme de travaux pratiques sur ordinateur et auront lieu dans les salles CO 4, CO 5, CO 020, CO 021, CO 023 et INF 1. Cette dernière ne possèdant pas d'ordinateurs fixes, il vous faudra travailler avec votre propre machine. Vous êtes libres de vous installer dans la salle de votre choix, indépendemment de votre groupe d'origine.Les travaux pratiques seront disponibles sous forme de Jupter Notebook que vous pourrez éditer sur la plateforme en ligne Noto (noto.epfl.ch), et seront donc accessibles indépendamment de votre système d'exploitation. Nous vous conseillons cependant d'installer une distribution Python ainsi qu'un environnement de développement intégré sur votre machine au plus vite.
En dehors des heures d'exercices, n'hésitez pas à poser vos questions sur le Forum edDiscussion ci-dessous ! Les communications importantes seront effectuées sur le forum Annonces de la page Moodle.
Nous vous souhaitons un excellent semestre d'automne.
Ghid Maatouk et Luc Testa
Présentation du cours et documents utiles
Ce cours a pour sujet l'étude d'algorithmes élémentaires et leur implémentation en langage Python. Son contenu est organisé en quatre parties. Les deux premières sont présentées durant le premier semestre et les deux dernières durant le deuxième semestre :
- Programmation Python
- Algorithmique
- Bibliothèques scientifiques et graphiques Python
- Méthodes numériques
Voici quelques ouvrages de référence pour la premier semestre. Bien entendu, l'informatique étant une science vivante et largement documentée, nous vous encourageons à chercher vos propres sources en ligne et de consulter les forums dédiés à la communauté informatique.
- Documentation for Python 3 (https://docs.python.org/3/)
- G. Swinnen, Apprendre à programmer avec Python 3, Eyrolles, 2012, ISBN : 9782212134346.
- J. Guttag, Introduction to Computation and Programming Using Python : With Application to Understanding Data, Second Edition, MIT Press, 2016, ISBN : 9780262529624.
Vous trouverez ici les enregistrements d'anciens cours donnés en 2023-2024, à titre de référence. La matière enseignée cette année pouvant différer légèrement, nous vous conseillons fortement de venir assister aux cours en présentiel.
Voici une table des matières qui vous donne une idée des sujets abordés dans le cours. Attention, elle peut être sujette à modifications au cours du semestre.
Programmation Python:
1- Introduction, types, variables, input(), print()
2- Flux de contrôle (instruction if, boucles)
3- Fonctions
4- Listes
5- Tuples et dictionnaires
6- Exceptions
Algorithmique:
7- Introduction, correctitude d'algorithmes, récursion
8- Complexité algorithmique
9- Recherche, logarithme base 2
10- Algorithmes de tri
11- Algorithmes de graphes
12- Algorithmes de graphes (suite)
Contrôle 1
Le Contrôle 1 d'ICS aura lieu le mercredi 6 novembre 2024 de 8h15 à 10h. Ce sera un examen écrit sur papier, sans ordinateur. Si besoin, un formulaire sera fourni avec l'examen; aucun matériel supplémentaire n'est autorisé.
Le contrôle comportera une partie QCM et une partie où il faudra écrire du code Python. Pour écrire du code sur papier, mettez-le en forme comme si vous le tapiez dans une cellule d'un cahier Jupyter Notebook, en respectant notamment les indentations: 4 carreaux = 1 tab.
Vous trouvez ci-dessous le Contrôle 1 d'ICS 2023.
Une séance de réponses aux questions aura lieu le mercredi 30.10 de 10h15 à 12h en INF1.
- Contrôle 1 - Enoncé 2023 (Fichier)
- Contrôle 1 - Corrigé 2023 (Fichier)
- Contrôle 1 - Corrigé 2024 (Fichier)
Semaine 1
- Cours 1 (Fichier)
- Vidéo Cours 1 (URL)
- TP 1 (Fichier)
- TP 1 - Corrigé (Fichier)
- Jupyter Notebook Cours 1 (groupe B) (Fichier)
- Jupyter Notebook Cours 1 (groupe A) (Fichier)
Semaine 2
- Cours 2 (Fichier)
- Vidéo Cours 2 (URL)
- Moyenne - boucle while (Fichier)
- TP 2 (Fichier)
- TP 2 - Corrigé (Fichier)
- Pour une pratique ludique du flux de contrôle, soy... (Zone texte et média)
- Jupyter Notebook Cours 2 (groupe A) (Fichier)
- Jupyter Notebook cours 2 (groupe B) (Fichier)
Semaine 3
- Cours 3 (Fichier)
- Vidéo Cours 3 (URL)
- TP 3 (Fichier)
- TP 3 - Corrigé (Fichier)
- Jupyter Notebook cours 3 (Fichier)
Semaine 4
- Cours 4 (Fichier)
- Vidéo Cours 4 (URL)
- TP 4 (Fichier)
- TP4 - corrigé (Fichier)
- Jupyter notebook cours 4 (Fichier)
Semaine 5
- Cours 5 (Fichier)
- Vidéos Cours 5 (URL)
- TP 5 (Fichier)
- TP 5 - corrigé (Fichier)
- Jupyter Notebook cours 5 (Fichier)
Semaine 6
- Cours 6 (Fichier)
- Vidéo Cours 6 (URL)
- TP6 (Fichier)
- TP 6 - corrigé (Fichier)
- Jupyter Notebook cours 6 (Fichier)
Semaine 7
- Cours 7.1 : Introduction à l'algorithmique (Fichier)
- Cours 7.2 : Correctitude (Fichier)
- Cours 7.3 : Algorithmes récursifs (Fichier)
- Vidéo Cours 7 (URL)
- Série 7 (Fichier)
- Solution 7 (Fichier)
- Jupyter Notebook Cours 7 (groupe A) (Fichier)
Semaine 8
- Cours 8 : Complexité algorithmique (Fichier)
- Série 8 (Fichier)
- Solution 8 (Fichier)
- Annexe à la question 1 (Fichier)
- Vidéo Cours 8 (URL)
- Jupyter Notebook Cours 8 (groupe A) (Fichier)
Semaine 9
- Cours 9 : Recherche, introduction au logarithme (Fichier)
- Série 9 (Fichier)
- Complément Série 9 (Fichier)
- Solution 9 (Fichier)
- Vidéo Cours 9 (URL)
- Jupyter Notebook groupe A (Fichier)
- Jupyter Notebook groupe B (Fichier)
- Recherche: exercices de révision (Fichier)
Semaine 10
- Cours 10 : Algorithmes de tri (Fichier)
- Série 10 (Fichier)
- Tri par fusion Jupyter notebook (exercice 1c) (Fichier)
- Solution 10 (Fichier)
- somme_deux.ipynb (exercice 4) (Fichier)
- Vidéo Cours 10 (URL)
- Jupyter notebook groupe A (Fichier)
- Jupyter notebook groupe B (Fichier)
- Pour vous aider dans vos révisions, vous trouverez... (Zone texte et média)
Semaine 11
- Cours 11 : Algorithmes de graphes (Fichier)
- BFS Jupyter Notebook (Fichier)
- Série 11 (Fichier)
- Solution 11 (Fichier)
- Vidéo Cours 11 (URL)
- Jupyter notebook groupe A (Fichier)
- Jupyter notebook groupe B (Fichier)
Semaine 12
- Cours 12 : Algorithmes de graphes (suite) (Fichier)
- Algorithmique : résumé des cours 6 - 12 (Fichier)
- graphes.ipynb (Fichier)
- Série 12 (Fichier)
- Solution 12 (Fichier)
- Vidéo Cours 12 (URL)
- Jupyter notebook groupe A (Fichier)
- Jupyter Notebook groupe B (Fichier)
Informations - Contrôle 2
Date: mercredi 8 janvier 2025, 9h15 - 11h
Format du contrôle:
Voir les contrôles des années précédentes.
Matériel autorisé:
Aucun matériel supplémentaire.
- L'examen couvrira la matière vue aux semaines 7 à 12 incluses (bien sûr, la matière des semaines 1 à 6 constitue un prérequis, mais on ne teste pas spécifiquement votre maîtrise de cette première partie du cours).
- Si on vous demande de dire ce que fait ou affiche un certain algorithme, on vous donnera toujours son code. Par contre, il est fortement recommandé de comprendre très bien tous les algorithmes vus en cours et aux séries car on vous demandera d'écrire des algorithmes qui pourraient ressembler à ce que vous avez déjà vu (ou pas), ou des algorithmes qui font appel aux algorithmes vus en cours.
- On ne vous demandera pas de prouver la correctitude d'un algorithme.
- On ne vous demandera pas de preuves mathématiques pour les notations asymptotiques (du genre prouver que
pour des fonctions
et
données). Par contre, étant donné deux fonctions
et
, vous devez pouvoir dire si
, si
, etc. - Vous devez pouvoir exprimer le temps de parcours d'un algorithme en notation asymptotique en fonction de la taille de l'entrée, avec une brève justification (comme dans l'exercice de révision de la Série 11). Vous devez également connaître, ou pouvoir recalculer, les temps de parcours des algorithmes donnés dans les tables du chapitre "Algorithmique - résumé du cours" de la semaine 12.
- lundi 6 janvier 10h-12h
- mardi 7 janvier 14h-16h
- Contrôle 2 - janvier 2024 (Fichier)
- Contrôle 2 corrigé - janvier 2024 (Fichier)
- Contrôle 2 - janvier 2023 (Fichier)
- Contrôle 2 corrigé - janvier 2023 (Fichier)
- Contrôle 2 - janvier 2022 (Fichier)
- Contrôle 2 corrigé - janvier 2022 (Fichier)