Information, Computation, 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
In the programs
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Information, Computation, Communication
- Lecture: 3 Hour(s) per week x 14 weeks
- Exercises: 3 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Information, Computation, Communication
- Lecture: 3 Hour(s) per week x 14 weeks
- Exercises: 3 Hour(s) per week x 14 weeks
- Type: mandatory
Reference week
Mo | Tu | We | Th | Fr | |
8-9 | |||||
9-10 | |||||
10-11 | |||||
11-12 | |||||
12-13 | |||||
13-14 | |||||
14-15 | |||||
15-16 | |||||
16-17 | |||||
17-18 | |||||
18-19 | |||||
19-20 | |||||
20-21 | |||||
21-22 |