Systèmes d'Information et Programmation

Ref: 1CC1000

Description

Ce cours comprend deux parties : systèmes d'information et programmation. Le but est de donner aux futurs ingénieurs les bases des systèmes d'information qu'ils ou elles utiliseront dans leur carrière et de leur permettre de concevoir et d'écrire proprement un programme informatique.

Les élèves de 1ère année ont des niveaux très différents dans ces domaines, du fait de leur parcours antérieur et de leur goût personnel pour la programmation (certains ont déjà participé à des concours de programmation).

Ce cours ne demande pas de notion avancée en algorithmique.
Il permet cependant de valider un niveau minimum commun à tous les élèves, mais aussi de faire progresser les élèves les plus avancés.

Dans le cursus Ingénieur, trois cours successifs contribuent à former les élèves à la programmation et à l’algorithmique. Ce cours est le premier, et est suivi de deux semaines de programmation (Coding Weeks) et du cours d’Algorithmique et Complexité.

Période(s) du cours

SG1

Prérequis

Aucun en termes de cours CentraleSupélec, SIP étant le premier cours d'informatique du cursus ingénieur.

On s'attend cependant à ce que les élèves aient acquis les connaissances en informatique demandées dans les programmes de prépa : notions de bases de données relationnelles, connaissances de base de SQL, connaissances de base en programmation Python. Des séances de renforcement seront proposées aux élèves qui n'ont pas ces connaissances de base.

Syllabus

Le cours est composé de 4 séances de cours magistral (CM) de 1h30 et de 22,5 heures de travaux dirigés (TD) au total.

Le contenu est organisé de la manière suivante :

Systèmes d'information :
  • Introduction à l'architecture des ordinateurs (cours et TD).
  • Introduction aux réseaux (cours et TD).
  • Introduction à la sécurité des systèmes d'information (cours et TD).
Programmation :
  • Présentation des outils du développement logiciel : Visual Studio Code, interface en ligne de commande (Bash), Git et GitLab (TD).
  • Rappel des notions de base : interpreteur Python, variables, fonctions, structures de données de Python : dictionnaires, sets, listes et tuples (TD).
  • Utilisation des bibliothèques de calcul scientifique en Python: NumPy et Matplotlib (TD).
  • Programmation orientée objet (cours et TD).
  • Manipulation de données semi-structurées avec Pandas, préparation et nettoyage des données (TD).
  • Manipulation de bases de données relationnelles dans des programmes Python (TD).
  • Création d'interfaces graphiques en Python (TD).
Lors des séances de TD, les élèves apprendront les bonnes pratiques pour écrire du code propre (commentaires, tests) et à déboguer leur code.

Composition du cours

Les séances de travaux dirigés consistent à approfondir les notions apprises en cours avec des exercices au tableau et des activités sur ordinateur.

Avant le cours, chaque élève devra installer sur son ordinateur personnel : la dernière version de l'interpréteur Python disponible sur https://www.python.org/, Visual Studio Code, DB Browser for SQLite et Git.
Un support renforcé est mis en place par la DISI pour s’assurer que tous les élèves disposent de l’environnement nécessaire au démarrage du cours.
Les salles de TD sont équipées d’un accès Internet filaire et WiFi pour chaque élève, ce qui leur donne la possibilité d’aller chercher des ressources sur Internet.
Pendant les TD, les élèves devront participer activement aux discussions entamées par leur encadrant sur les exercices à dérouler.

Ressources

Equipe pédagogique : Dominique Marcadet (cours en français), Maxime Nannan (cours en français), Marc-Antoine Weisser (cours en français), Gianluca Quercini (cours en anglais).

  • Taille des groupes de TD : 27-30 élèves.
  • Matériel nécessaire : un ordinateur individuel avec les logiciels nécessaires.
  • Tous les logiciels utilisés pendant le cours sont gratuits.

Résultats de l'apprentissage couverts par le cours

À l'issue du cours, les élèves seront capable de (pour chaque partie) :

Systèmes d'information :
  • Comprendre le fonctionnement des ordinateurs.
  • Comprendre les bases des systèmes d'exploitation.
  • Comprendre le fonctionnement des réseaux informatiques.
  • Concevoir et interroger (avec SQL) une base de données relationnelle.
  • Comprendre les enjeux de sécurité des systèmes d'information.

Programmation :
  • Pour un problème donné, écrire un programme dans un langage de programmation de haut niveau.
  • Appliquer les bonnes pratiques de programmation : modularité, réutilisation de code, conventions de nommage, commentaires.
  • Tester un logiciel : débogage, assertions.
  • Utiliser les outils du développement logiciel : environnements de développement intégré (Visual Studio Code), interface en ligne de commande (Bash), Git et GitLab.

Support de cours, bibliographie

Nous mettons à disposition :
  • les diapositives utilisées pendant les séances de cours magistral.
  • les supports de TD avec solution des exercices.
  • un polycopié.
  • un aide-mémoire Python.
  • un aide-mémoire SQL
  • un aide-mémoire Bash.
Tous les supports sont disponibles en français et en anglais.