CS-119(c) / coefficient 6

Teacher: Boulic Ronan

Language: French


Résumé

L'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (langage C++).

Contenu

La partie théorique est organisée en trois modules :

  • calcul (représentation des nombres, algorithmes, récursion, complexité),
  • information (échantillonnage, reconstruction, th. de Nyquist-Shannon, compression, 1er th. de Shannon),
  • systèmes et sécurité (ordinateur de von Neumann, hiérarchies de mémoire, réseaux, menaces et défenses).


La partie pratique (initiation à la programmation en langage C++) aborde les notions suivantes : variables, expressions, structures de contrôle, fonctions, entrées-sorties, ...


Les concepts théoriques introduits lors des cours magistraux seront mis en pratique dans le cadre d'exercices de programmation sur une machine virtuelle Ubuntu.

Mots-clés

calcul, information, communication

algorithme, pseudocode, programmation

Acquis de formation

A la fin de ce cours l'étudiant doit être capable de:

  • Concevoir un algorithme
  • Exprimer un algorithme
  • Expliquer ce qu'on peut résoudre avec un algorithme
  • Expliquer ce qu'on peut résoudre efficacement avec un algorithme
  • Exposer comment représenter des nombres et des symboles
  • Exposer comment capter la réalité physique avec des nombres
  • Expliquer comment reconstruire cette réalité à partir de nombres
  • Exposer comment mesurer la quantité d'information présente dans des données
  • Expliquer comment stocker des données en utilisant le moins d'espace possible
  • Analyser un problème complexe pour le décomposer en sous-problèmes
  • Modéliser en langage C++ une situation simple du monde réel décrite en français
  • Transcrire un algorithme en son programme équivalent en C++
  • Calculer l'ordre de complexité d'un algorithme simple
  • Réaliser une application de petite taille au moyen du langage C++
  • Analyser du code C++ simple pour décrire le résultat ou le corriger s'il est erroné
  • Tester l'adéquation du résultat d'un programme simple par rapport à la tâche demandée

Compétences transversales

  • Utiliser les outils informatiques courants ainsi que ceux spécifiques à leur discipline.
  • Accéder aux sources d'informations appropriées et les évaluer.

Méthode d'enseignement

partie théorique: ex-cathedra avec exercices

partie pratique: séances ex cathedra partiellement inversée complétant un cours en ligne (MOOC), travaux pratiques sur ordinateur, un micro-projet permet d'intégrer les notions vues en cours et mettre en pratique les principes d'abstraction et de ré-utilisation

 

Travail attendu

Participation au cours (en salle et en-ligne), résolutions d'exercices, projet individuel.

Developpement d'une capacité d'autonomie basée sur la recherche par mots-clef en priorité sur le forum du cours et sur celui du MOOC, et enfin sur tout site externe pertinent. La formulation de questions documentées est centrale pour l'efficacité de ces outils. Vous êtes encouragés à répondre vous-même si vous connaissez la réponse (c'est un bon entrainement pour devenir un.e. futur.e assistant.e-étudiant). L'usage d'AI générative n'est pas interdit pour le projet mais devra être documenté dans le (court) rapport du projet.

Méthode d'évaluation

Rendu d'un travail individuel en C++ pendant le semestre (12%).

Examens écrits pendant le semestre (83%) : la partie théorique du cours compte pour 45% et la partie C++ compte pour 38% de la note finale du cours.

Quizz Cybersécurité pendant le semestre (5%).

Encadrement

Office hours Non
Assistants Oui
Forum électronique Oui

Ressources

Service de cours virtuels (VDI)

Oui

Bibliographie

Livre de la partie théorique: Découvrir le Numérique, sous la direction de André Schiper, PPUR, édition 2018

Livre servant de base pour la partie pratique: J.-C. Chappelier, C++ par la pratique, PPUR 2017 (4e édition).

Ressources en bibliothèque

Polycopiés

copie des slides sur moodle

Sites web

Préparation pour

COM-112(a) project oriented programming (C++)

In the programs

  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Information, Computation, Communication
  • Courses: 3 Hour(s) per week x 14 weeks
  • Exercises: 3 Hour(s) per week x 14 weeks
  • Type: mandatory
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: Information, Computation, Communication
  • Courses: 3 Hour(s) per week x 14 weeks
  • Exercises: 3 Hour(s) per week x 14 weeks
  • Type: mandatory

Reference week

Related courses

Results from graphsearch.epfl.ch.