Cours de programmation fonctionnelle avancée
Table des matières
1 Enseignants
Les supports de cours sont ceux créés par Jean-Paul Roy.
Le chargé de cours et de TD est Etienne Lozes.
A part les séances 3-4, nous étudions grosso modo les chapitres 11, 12, 13 et 14 du livre de cours PCPS. Nous travaillerons en vrai Racket, vous pouvez dire adieu au niveau de langage Etudiant Avancé et au teachpack valrose.rkt. Dans les séances 3-4 consacrées à l'audio, nous aborderons la notion de son, ses caractéristiques informatiques, et les bases d'un synthétiseur (oscillateur, enveloppe, modulation, synthèse additive et soustractive, signaux). Tout ceci de manière élémentaire bien entendu, il faudrait un cours semestriel complet pour y pénétrer complètement (nous ne ferons qu'effleurer l'analyse spectrale).
J-P. Roy
2 Planning et supports de cours
ATTENTION : ce planning prévisionnel est susceptible d'évoluer.
Horaires des cours et TD
- avant les vacances : 13:00-15:00 et 15:15-17:15
- après les vacances : 13:30-15:00 et 15:15:16:45
JOUR | COURS | TP | corrige TP |
---|---|---|---|
20 sept | Full Racket / Debut mutation | TP1 | solution |
27 sept | Mutation / Objets softs | TP2 | solution |
4 oct | POO en Racket / Interfaces graphiques | TP3 adt-turtle.rkt fac-gui.rkt | solution |
11 oct | Polynômes, graphismes | TP4 tp4-utils.zip | solution |
18 oct | Les vecteurs Char et String | TP5 matrix.rkt | solution |
25 oct | PAS DE COURS | ||
1 nov | VACANCES | ||
8 nov | PAS DE COURS | ||
15 nov | Son et signaux | TP6 n27b7-44100.wav TP signaux | solution |
22 nov | Les entrées-sorties et le web | TP7 | solution |
29 nov | Scheme en python | TP8 squelette | solution |
6 dec | Évaluation paresseuse | TP9 squelette | solution |
13 dec | Révisions | ||
17-21 dec | Examen (janvier?) |
3 Projet
- sujet
- fichiers de départ : vectors.rkt boids.rkt
- vidéo de la version de démo
4 Examen
5 Ressources extérieures
- le livre de Jean-Paul Roy
- le site web de Racket
- la doc du package rsound et un guide d'installation
- une vidéo de Jean-Paul Roy faisant une démo d'un sequenceur.
6 Quelques recommendations de Jean-Paul Roy des années précédentes
- For any HOWTO question specific to Racket (even Rsound as John Clements is often online), subscribe to the Racket Users mailing list, or on the IRC channel #racket. Then ask your question in ENGLISH. Just say you are a student, you'll be welcome. Here is an example.
- Le cours 1 a introduit les macros (extensions syntaxiques) en Racket. Il a été question d'hygiène quelque part. Sans doute voudrez-vous regarder cette vidéo sur le sujet, extraite d'un MOOC. Il traite du rapport entre les variables locales d'une macro et celles de l'utilisateur de la macro.
- Pour les TP3-4, apportez un casque audio filaire (ou des écouteurs de bonne qualité). Attention aux oreilles, mettez toujours le volume à zéro avant d'écouter un son dont vous n'êtes pas certain de l'amplitude !
- Un exemple de traitement d'exception en Scheme avec read-if-PCM16.rkt : lecture d'un fichier .wav qui n'est pas au format PCM 16 bits, on intercepte l'erreur.