Weekly outline

  • Decouvrir le numerique  Delannoy theory Delannoy exercises K. N. King

    • Théorie
      • Cours: les vendredis de 13h15 à 15h00, en salles SG 1 et par Zoom
      • Exercices: les vendredis de 15h15 à 16h15+, en salles:
        Lettres A à H: CO 010, CO 011, CO 015, CO 016, CO 017
        Lettres J à Z: CO 120, CO 121, CO 122, CO 123, CO 124

    • Programmation
      • Cours: les mardis de 14h15 à 15h00, en salle SG 1 / les cours enregistrés
      • Exercices: les mardis de 15h15 à 17h00, en salles BC 07-08, CO 020, CO 021, CO 023, INF 3

    • Date de l'examen final: mardi 24 juin, de 15h15 à 18h15, en salles CE 1 4, CE 1 515, CE 1 6, PO 01 (répartition dans les salles à venir)
      Répartition des points: 50 points pour la théorie (pas de QCM), 35 points pour la programmation (dont 10 QCM valant chacune 2 points)
      Matériel autorisé: 2 pages A4 recto-verso manuscrites, rien d'électronique sauf une calculatrice simple (du type TI-30 eco RS, ou même plus simple: il n'y a bien sûr pas besoin que ce soit précisément ce modèle!)
      Remarquez finalement que dans la partie théorique, vous avez le droit de réutiliser les algorithmes vus en cours.
  • Semaine 1 (17 - 21 février)

    Mardi: Programmation

    Cours: 14h-15h, Exercices:  15h-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion): 

    • Introduction
    • Constantes, variables, fonctions
    • Sortie standard 

    Cours:                                                                 

    • Introduction et logistique
    • Algorithmes: ingrédients de base


    Exercices:

    • Préparer l'environment (Unix + VS Code)
    • Premiers programmes en C

    Exercices: 

    • Lire et écrire des algorithmes
  • Semaine 2 (24 - 28 février)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion): 

    • Rappels
    • Lecture depuis stdin
    • Expressions et opérateurs

    Cours:                                                                         

    • Algorithmes: complexité temporelle
    • Notation "Grand Theta"

    Exercices: 

    • Affichage, opérations, expressions

    Exercices: 

    • Complexité temporelle
    • Ecriture d'algorithmes

  • Semaine 3 (3 - 7 mars)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion)

    • Expressions, instructions conditionnelles

    Cours: 

    • Récursivité

    Exercices: 

    • Expressions, instructions conditionnelles

    Exercices: 

    • Lire et écrire des algorithmes récursifs

  • Semaine 4 (10 - 14 mars)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion): 

    • Instructions itératives (boucles)


    Cours:

    • Rendu de pièces de monnaie: algorithme
      glouton et programmation dynamique
    • Introduction à la théorie de la calculabilité

    Exercices: 

    • Boucles

    Exercices: 

    • Divers exercices sur la récursivité

  • Semaine 5 (17 - 21 mars)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion): 

    • Fonctions


    Cours:                                      

    • Classes de complexité des problèmes
    • Le problème du sac à dos
    • Le problème du voyageur de commerce
    Exercices
    • Fonctions, boucles

    Exercices:

    • Identifier quels problèmes font partie de P/NP

  • Semaine 6 (24 - 28 mars)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion): 

    • Pointeurs


    Cours: 

    • Représentation binaire des nombres entiers
    • Représentation binaire des nombres réels


    Exercices: 

    • Boucles, Pointeurs, Fonctions


    Exercices:

    • Nombres de bits nécessaires
    • Utilisation de la représentation binaire

  • Semaine 7 (31 mars - 4 avril)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion):
    Le cours aura lieu au Rolex entre 14h et 15h.

    • Pointeurs et tableaux


    Cours:                                                                         

    • Portes logiques et opérations élémentaires
    • Transistors
    • Circuits quantiques

                                    

    Exercices: 

    • Divers

    Exercices: 

    • Exercices sur les portes logiques et transistors

  • Semaine 8 (7 - 11 avril)

    Mardi: Programmation

    Cours: 14-15h, Exercices:  15-17h

    Vendredi: Théorie

    Cours:  13-15h , Exercices:  15-16h+

    Cours (rediffusion):

    • Types composés

    Cours:                                    

    • Signaux: fréquences et bande passante
    • Filtrage de signaux
    • Echantillonnage de signaux
    • Effet stroboscopique

      Exercices: 

      • Structs

      Exercices:

      • Bande passante
      • Signaux périodiques et apériodiques
      • Filtre à moyenne mobile


    • Semaine 9 (14 - 17 avril)

      Mardi: Programmation

      Cours: 14h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (rediffusion): 

      • Types composés
      • Listes
      Pas de cours (vendredi saint)

      Exercices: 

      • Listes




    • Semaine 10 (28 avril - 2 mai)

      Mardi: Programmation

      Cours: 14-15h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (rediffusion): 

      • Projets en C


      Cours:                                                                         

      • Reconstruction de signaux    
      • Théorème d'échantillonnage
      • Sous-échantillonnage

      Exercices:

      • Mini-projet


      Exercices: 

      • Filtrer avant d'échantillonner
      • Phénomène de battement
      • Formule d'interpolation

      • La date limite pour rendre le projet est le vendredi 9 mai lundi 12 mai le soir. Il faut rendre uniquement un fichier `engine.c` avec les fonctions requises (sans fonction `main`). Vous pouvez définir d'autres fonctions dont vous auriez besoin dans le même fichier.

        Précisions (30.04.2024)

        • La date limite du projet est reportée au lundi 12 mai, vos délégués m'ont informé que vous aviez deux autres projets en cours.

        • Question 3: dans le projet de test, le fichier `engine.c` contenait une instruction `return board->n_rows-piece->size-1;` qu'il faut remplacer par votre code, ne la conservez pas.
        • Question 5: La hauteur (H) et le nombre de trous (T) sont calculés *avant* l'élimination des potentielles lignes remplies.
        • Il ne faut pas se soucier d'afficher des messages d'erreur, tout ce qui compte est la valeur de retour de votre fonction et la valeur des paramètres "de sortie".
        • Le projet de test vous donne seulement un point de départ pour tester vos fonctions, c'est à vous de tester chaque fonction et d'imaginer des valeurs possibles pour la grille de jeu et pour la forme des pièces, etc.
        • Pas besoin de mettre à jour `engine.h` avec les signatures des fonctions auxiliaires que vous définissez, puisqu'elles seront utilisées uniquement dans le fichier engine.c -- juste définissez-les au début du fichier `engine.c` avant la définition des fonctions requises.

        Bon projet!

      • Editez le fichier `test.c` pour tester le code de `engine.c`.

        Pour compiler le projet rentrez dans le folder `test_engine` et tapez `make`.

        Update: Corrigé un bug dans la création d'une grille de jeu (merci Yaëlle Dutoit!)

      • Dans le présent dossier, vous trouvez les fichiers avec le morceau de Jazz (‘’Our love is here to stay’’, de Georges Gerschwin, joué par Roland Kirk) dans ses différentes versions, ainsi que leur analyse spectrale.

    • Semaine 11 (5 - 9 mai)

      Mardi: Programmation

      Cours: 14-15h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (Rediffusion): 

      • Debugging & Fichiers


      Cours:                                                                      

      • Introduction à la compression de données
      • Entropie

      Exercices:

      • Mini-projet

      Exercices: 

      • Calculs d'entropie
      • Comparaison d'entropies

      • Voici le code pour jouer à Tetris.

        Une fois votre code de `engine.c` testé, vous pouvez le brancher dans ce projet et le voir en action!

        Attention, comme indiqué pendant le cours votre note sera déterminée par des tests automatiques sur chaque fonction contenue dans `engine.c`.

        Compiler le projet

        Ce projet ne fonctionne que sous Mac et Linux (y compris Windows + WSL). Le système Windows natif n'est pas supporté...

        Le projet contient un fichier `engine.c` qui compile, mais qui ne fait rien d'intéressant. Remplacez-le par votre code.

        Il suffit de faire `make` dans le répertoire du projet (ou alors `make all`) et l'exécutable `tetris` apparaîtra.

        Assurez-vous que la version dev de la bibliothèque `ncurses` est bien installée. Si votre compilation échoue avec un message d'erreur indiquant que le fichier `ncurses.h` est introuvable, c'est que cette bibliothèque n'est pas installée. Pour l'installer sur Linux lancez la commande suivante (le système vous demandera le MDP root):

        sudo apt-get install libncurses5-dev
        Jouer à Tetris

        Vous pouvez contrôler les pièces avec les flèches (flèche vers le haut = rotation) et avec la touche espace (envoie la pièce en bas de la grille).

        Les touches + et - contrôlent la vitesse à laquelle descendent les pièces.

        Si vous appuyez sur 'a', le pilote automatique entre en jeu et joue pour vous. S'il réagit trop lentement, appuyez sur ^ pour le faire aller plus vite, et sur _ pour le ralentir. Si vous voulez repasser en mode manuel, appuyez de nouveau sur 'a'.

        Pour sortir il suffit d'appuyer sur `q` ou sur la touche Esc.

        Vous pouvez vous amuser à modifier le fichier `pieces.txt` pour dessiner vos propres pièces.

      • Le rendu consiste en un seul fichier engine.c qui contient vos implémentations des 6 fonctions demandées.
        Assurez-vous que le fichier compile correctement -- la commande suivante ne devrait afficher aucun message:
        gcc -c -Wall engine.c -o engine.o

        Vérifiez également que les signatures des fonctions sont identiques à celles de l'énoncé et que toute fonction auxiliaire que vous auriez pu définir est également comprise dans le fichier engine.c

      • File icon
        ICC-T Solutions 10 File
        Available from 10 May 2025, 6:00 PM
    • Semaine 12 (12 - 16 mai)

      This week

      Mardi: Programmation

      Cours: 14-15h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (rediffusion):

      • Fonctions récursives


      Cours:                                                                         

      • Algorithmes de Shannon-Fano et Huffman
      • Théorème de Shannon
      • Compression avec pertes


      Exercices:

      • Fichiers
      • Fonctions récursives


      Exercices: 

      • Algorithmes de compression
      • A la recherche d'un trésor
      • Codage par plages (RLE)

    • Semaine 13 (19 - 23 mai)

      Mardi: Programmation

      Cours: 14-15h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (rediffusion): 

      • Récursivité


      Cours:                                                                      

      • Correction d'erreurs: introduction
      • Codes de Reed-Solomon
      • Distance minimale

      Exercices: 

      • Récursivité

      Exercices: 

      • Distance minimale
      • Codage de Hamming
      • Code-barres

    • Semaine 14 (26 - 30 mai)

      Mardi: Programmation

      Cours: 14-15h, Exercices:  15-17h

      Vendredi: Théorie

      Cours:  13-15h , Exercices:  15-16h+

      Cours (rediffusion): 

      • Fichiers

      Cours:                                                                            

      • Cryptographie à clé secrète
      • Cryptographie à clé publique        

      Exercises: 

      • Fichiers

      Exercices: 

      • Protocoles de Diffie-Hellman et El-Gamal
      • Recherche de grands nombres premiers