Méthodes et structures de programmation
24h en CPI sem.3 : 7h CM, 7h TD, 7h TP + 4h de visites d'entreprise.
Prérequis : Algorithmique et Programmation I (précédemment enseigné par O. Fournier), Calcul scientifique.
http://www.phmartin.info/cours/ps3/
Responsable : Philippe Martin
Plan de cours :
- Vérification et approfondissement des acquis de
Algorithmique et Programmation I
- Notions de complexité algorithmique en temps et en espace
- Notions de preuve et de terminaison d'algorithme
- programmation descendante (par raffinements successifs), récursive ou dynamique ;
applications avec 2 langages de types différents (Javascript+HTML et Lisp)
- Programmation ascendante et panorama de structures de données
(+ algorithmes associés pour les parcourir et gérer, avec comparaison de
leur complexité)
notamment : tableaux, piles, files, dictionnaires, listes, arbres et tas
(par contre, les graphes généraux sont traités dans le cours suivant) ;
applications avec 2 langages de types différents (Javascript+HTML et Lisp).
- 4h de visites d'entreprise : interactions avec le monde professionnel de la spécialité
Objectifs : permettre à l'étudiant de
- concevoir des programmes assez modulaires et efficaces via l'utilisation de
méthodes de programmation et de structures de données appropriées ;
- traduire un algorithme dans 2 des 3 types principaux de langages de programmation :
langages impératifs (du type C, Javascript ou Python) et langages déclaratifs fonctionnels
(du type LISP ou ML) ;
- développer pour ces langages des processus d'évaluation, de validation et de documentation.
- Acquérir les compétences visées.
Compétences visées :
- analyse élémentaire de programmes (notamment concernant leur performance et leur
adéquation par rapport à leurs spécifications) dans deux des trois
types principaux de
langages de programmation
- construction de tels programmes (pour les critères ci-dessus)
- ré-utilisation et explication de tels programmes (pour les-dits critères).
Méthodes d'évaluation : 2 devoirs + note de participation.
Méthodes de travail.
- Soyez coopératif avec votre enseignant (→ aidez le et donc aidez vous) :
- posez des questions lorsque vous n'avez pas compris,
- signalez les éventuelles typos ou ambiguités dans les supports de cours,
- suivez toutes les consignes que l'on vous donne ; bien-sûr, si vous ne le
faîtes pas, e.g., si vous ne répondez pas à des sondages ou ne rendez pas des
exercices dans les temps impartis, votre note (d'examen/projet/participation/...)
sera diminuée.
- Révisez vos cours le soir même, puis 2 ou 3 jours après, puis la
semaine suivante.
Refaites les exercices en temps limité.
N'arrivez JAMAIS en cours (CM/TD/TP) sans avoir révisé votre CM précédent
ou sans vous être exercés sur votre TD/TP précédent.
Des tests surprise en début de cours testeront que vous avez bien effectué cela.
Donc, si vous n'avez pas compris quelque chose dans un précédent cours,
vous devez poser des qestions en début de cours.
Plus généralement, plus de
pédagogie inversée
est possible.
- Utilisez une souris d'ordinateur (vous perdez trop de temps sans cela).