Information, calcul, communication
Résumé
D'une part, le cours aborde: (1) la notion d'algorithme et de représentation de l'information, (2) l'échantillonnage d'un signal et la compression de données et (3) des aspects liés aux systèmes: ordinateur, mémoire, etc. D'autre part, le cours donne une introduction à la programmation en Python.
Contenu
Module 1: Calcul
- Calcul et algorithmes
- Stratégies de calcul
- Théorie du calcul
- Représentation de l'information
Module 2: Information
- Echantillonnage d'un signal
- Reconstruction d'un signal
- Compression de données I
- Compression de données II
Module 3: Systèmes
- Architecture de von Neumann
- Hiérarchies de mémoire
- Réseaux de communication
- Sécurité
En parallèle, les leçons de programmation couvrent les sujets suivants:
- Introduction à la programmation en Python
- Statements et expressions, variables et types de données
- Flux d'un programme, conditions et boucles
- Fonctions, structure d'un programme
- Modules et imports
- Structures de données: listes, sets, dictionnaires
- Classes, dataclasses
- Fonctions d'ordre supérieur
- Lecture et écriture de fichiers texte et image
- Concept de threads et de multithreading
- Introduction aux Jupyter notebooks
Mots-clés
Informatique, Ordinateurs, Algorithmes, Communication, Programmation, Python, Linux.
Acquis de formation
A la fin de ce cours l'étudiant doit être capable de:
- Exprimer un algorithme
- Concevoir 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
- Construire des programmes en Python
- Implémenter des formules mathématiques et des algorithmes simples
- Utiliser la ligne de commande Linux
- Structurer un programme
- Comparer plusieurs approches différentes (extraits de code)
Compétences transversales
- Utiliser les outils informatiques courants ainsi que ceux spécifiques à leur discipline.
Méthode d'enseignement
Ex cathedra et exercices sur ordinateurs.
Travail attendu
Participation au cours (en salle), résolutions d'exercices, travail personnel à la maison.
Méthode d'évaluation
- Un midterm de programmation, valant pour 20% de la note.
- Un mini-projet de programmation, valant pour 10% de la note.
- Un examen final pendant la session d'examens valant pour 70% de la note.
Le miniprojet est à faire par groupes de deux ou individuellement.
Encadrement
Office hours | Non |
Assistants | Oui |
Forum électronique | Oui |
Ressources
Service de cours virtuels (VDI)
Oui
Bibliographie
La bibliographie est donnée au début du semestre.
Ressources en bibliothèque
Liens Moodle
Dans les plans d'études
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Information, calcul, communication
- Cours: 3 Heure(s) hebdo x 14 semaines
- Exercices: 3 Heure(s) hebdo x 14 semaines
- Type: obligatoire
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Information, calcul, communication
- Cours: 3 Heure(s) hebdo x 14 semaines
- Exercices: 3 Heure(s) hebdo x 14 semaines
- Type: obligatoire