Accueil
Professeur et Démonstrateurs
Horaires et locaux
Notes de cours
Démonstrations et devoirs
Examens
Liens utiles
Au sujet du livre de cours
Consultez vos notes
Foire aux questions (FAQ)
|
|
Accueil
Bienvenue sur le site web du cours IFT2030 - Concepts des langages de programmation.
Consultez la description officielle du cours.
Consultez le plan de cours.
Aux nouvelles...
- [lundi 23 septembre 2002]
L'ensemble de vos notes sera disponible sous peu depuis la page du
cours. La moyenne de l'examen final était de 54. Le seuil théorique a
été baissé à 45% (vous êtes 71 à passer ce seuil), les personnes ayant
une note théorique d'au moins 40% ont été également repêchées avec la
note de D (vous êtes donc 77 à passer ce cours: félicitations).
Je vous souhaite cette fois-ci de manière définitive de bonnes
vacances. Vous pourrez venir voir vos notes d'examens et de TP3 à la
rentrée.
Je vous donne la distribution des notes lettrées: A+ 7, A 8, A- 9, B+ 8, B 11, B- 4, C+ 9, C 6, C- 6, D+ 1, D 8
- [mercredi 11 décembre 2002]
Vos notes de devoir 2 sont maintenant disponibles sur la page du
cours. Pour toute information contactez les démontrateurs qui vous ont
corrigé:
Pour information, Yassir donne une permamence pour accueillir les
binômes qu'il a corrigé jeudi 12 décembre à 17h en salle
2267. Inutile de venir me voir pour un problème relié au
TP2. merci. Note: vos notes sont actuellement sur 16, elles
seront (comme convenu) maximisée à 15 pour le calcul de la note
lettrée.
- [mardi 10 décembre 2002]
Je vous souhaite de bonnes vacances. Attendez-vous à ce que vos
notes de final (et de TP3) soient disponibles avant Noël, en vous
souhaitant que ce soit pour vous un cadeau. À toutes fins utiles,
j'ai déposé un solutionnaire du final sur la page (section Examens).
- [mercredi 4 décembre 2002]
INFO TP3 (last): Vous êtes nombreux à me poser des questions
sur le TP3 dont la réponse est clairement décrite dans le sujet. Je
vous invite à lire le sujet complètement et de suivre les consignes
qui sont claires (en cas ce doute, mais seulement après lecture
complète du sujet, passez me voir). Comme il y a plusieurs remises du
TP2 qui ne suivent pas du tout les consignes, je souligne quelques
points qui reviennent souvent dans vos questions du TP3, mais encore
une fois, les consignes complètes sont dans le sujet.
- Vous ne devez en aucune façon modifier les fichiers
transfert.pl ,lexique.pl : vous ne devez remettre que tp3.pl . Entre-nous, il est inutile de "hard-coder" les solutions possibles car rien ne vous indique que je ne changerai pas de lexique lors des tests !
- Je considerais que ca faisait parti de votre travail de trouver
dans la documentation comment lire des modules,
mais je vous donne une
solution dans le fichier [test.pl] que je vais (et
compléter) et utiliser pour tester votre programme.
- C'est mon fichier
test.pl que je vais lancer,
pas le votre, d'ailleurs, on ne vous demande pas de remettre un tel
fichier, ni même (ce qui est pire, car ça oblige le correcteur à
intervenir dans votre code, (lisez pénalité)) de copier dans votre
programme tp3.pl le contenu de test.
- Les prédicats qui vous sont demandés sont décrits précisément
dans l'énoncé. Ne pas suivre cette description revient à proposer une
solution à un problème non demandé.
En particulier, si vous envisagez
d'écrire le prédicat traduit avec quelque chose comme ce
qui suit, vous ne répondez pas aux consignes (si vous ne voyez pas
pourquoi, lisez le sujet):
elt_de(X,[X|_]).
elt_de(X,[Y|S]) :- elt_de(X,S).
traduit([],[]).
traduit([First|Suite1],[X|Suite2]) :-
seTraduit(First,TraductionsPossibles),
elt_de(X,Liste),
traduit(Suite1,Suite2).
but: traduit([le,chien,mange],X).
- Ceux qui ont déjà codé le TP ont dû remarqué que le fichier [transfert.pl]
contenait une erreur, elle est maintenant corrigée (une virgule en
trop).
- J'ai simplifié les règles sur les compléments d'objets (règle R9)
(comme plusieurs l'on remarqué, le genre et le nombre n'a pas
d'importance), ceci n'affecte pas votre code.
- Ne vous étonnez pas que la grammaire que je vous ai donnée
accepte des phrases non grammaticales (une grammaire très partielle du
français contient plusieurs milliers de règles et de très gros
lexiques).
- Je vous confirme que la solution tient en une trentaine de règles
(ceci dépend de la structure que vous utilisez pour coder
l'analyse). La notion que ce TP vous fait travailler est celle qui est
fondamentale en
Prolog : l'unification. Paraphrase:
laisser votre binôme faire votre TP3 revient à être noté sur 75 au
final. Avoir demandé à votre binome de faire pour vous votre TP2
revient à être noté au final sur 55; avoir demandé à votre binôme de
faire le TP1 revient en gros à être noté au final sur 40.
- [mardi 3 décembre 2002]
Prenez note qu'il n'y aura pas cours lundi 9, et que mardi 10 a lieu
l'examen final (lieu et horaires en section horaire). À propos de
l'examen: il porte sur tout ce que nous avons vu en cours depuis le
début. Il y aura des questions de cours et des questions de
programmation dans les langages que vous êtes supposé
maîtriser. Aucune documentation n'est autorisée, vous pouvez
cependant venir avec votre dictionnaire (bilingue) préféré.
Dernière permanence pour consultation de vos copies d'intra:
vendredi 6 décembre de 11h00 à 13h00. Prenez note qu'habituellement,
une et une seule permanence (normalement de deux heures) est donnée
pour consultation de vos copies.
Les démonstrateurs et moi-même sommes disponibles pour répondre à
vos questions sur le cours et le TP3.
- [lundi 2 décembre 2002]
info TP3: j'ai modifié le nom de la règle transfert par seTraduit dans le fichier transfert.pl car je vous demande dans le sujet d'écrire un prédicat portant le nom transfert .
Désolé pour ceux qui ont traité la question 2 du TP (vous avez du être confronté au problème), et là encore les modifications sont mineures dans votres code (un chercher/remplacer).
- [vendredi 29 novembre 2002]
info TP3: j'ai modifié la grammaire du TP3. Merci d'en
prendre note. Inutile d'y aller de "oh ben là j'avais presque fini,
comment je vais faire, etc..." les modifications à reporter dans votre
code (si vous avez déjà commencé) sont très mineures. Merci de
votre compréhension.
La planche de démonstration 11 (la dernière) est disponible.
- [jeudi 28 novembre 2002]
Mea Culpa: La démonstration 10 était un peu compliquée
(j'avais prévu de commencer les listes en cours cette semaine, mais
j'ai bien sûr raté mon coup).
Pas de panique donc si vous avez
séché sur cette planche (je ne mettrais pas d'exercice de ce type à
l'examen).
La planche de démonstration 11 (la dernière) sera représentative
du niveau de difficulté auquel vous pouvez vous attendre au final (du
moins en ce qui concerne Prolog ).
- [samedi 23 novembre 2002]
Il faut battre le fer pendant qu'il est encore chaud: le sujet du
tp3 est disponible... Bon courage.
Je reprécise pour ceux qui ne feraient pas eux-même les TPs (mais
je sais que personne dans cette session n'est concerné) que le final
contiendra des exercices à faire en C ,
Prolog et Scheme .
- [mardi 19 novembre 2002]
Un solutionnaire de la [demo
8] est disponible. Ca serait une mauvaise idée de vous contenter
de le lire en guise de pratique de Scheme
Pour les piqués de la continuation, j'ai ajouté un exercice (avec
corrigé) à même les notes de cours.
- [jeudi 14 novembre 2002]
Vos notes de tp1 sont disponibles.
Ceux qui n'ont pas de note mais qui ont remis leur TP doivent
passer voir les démonstrateurs qui ont corrigé le TP.
Pour toute information concernant la notation, prendre contact avec les
démonstrateurs.
Voici la distribution des notes de tp1:
- [mercredi 6 novembre 2002]
Vos notes d'intra sont disponibles sur la page du cours. Vous avez
besoin du code qui vous a été envoyé par message pour retrouver votre
note.
Une version plus habituelle des notes (sans code, mais en vous
connectant à votre compte) sera disponible prochainement (merci d'être
patient).
Vous avez été 94 à composer cet intra (+ 6 malades intempestifs). La
moyenne de l'intra est de 64, (la note minimale 25, la note maximale
100).
74 d'entre-vous avez une note supérieure ou égale à 50/100.
Je vous indiquerai ultérieurement une date à laquelle vous
pourrez venir voir vos copies, inutile de vous présenter à cet effet
avant.
Voici pour info la distribution des notes:
Quelques commentaires concernant cet intra:
- Pas trop de problème concernant les questions 1 à 3.
- Question 4, vous êtes nombreux à ne pas avoir eu vos points (j'ai
noté sur 10 points au lieu de 15 cette question). Le calcul était
simple et on l'a vu au moins deux fois en cours (probablement la fatigue).
- Question 5, vous êtes là encore peu nombreux à écrire des
exemples C qui ne sont pas du C. Quelques idées fausses:
- Tout problème de pointeur n'est pas appelé pointeur fou
- Le code C suivant est une erreur, vous ne devriez plus la faire maintenant.
int *p;
*p = 5;
- Question 6: j'ai pris connaissance du fait qu'en plus d'avoir été
posée en exercice de démo en IFT2030, la question 6 de l'intra a été
résolue également en IFT2010. J'ai accepté les solutions utilisant une
pile (comme on vous l'a montré en IFT2010), bien que je souhaitais
plutôt tester votre assimilation de la première partie du
cours. Cependant, vous êtes nombreux à commettre des erreurs sur cette
question:
- Utiliser une pile est un peu lourd et surtout inutile (ca n'est
cependant pas une erreur): il vous suffit seulement d'un entier (que
vous incrémentez sur "(", et décrémentez sur ")", puisque ce que vous
faites à la fin, c'est de tester que la pile est vide (votre entier à
zero)
- Cette solution n'est valable que si vous testez correctement que
c'est légitime de rencontrer un symbole ")" sinon vous acceptez (et
vous avez été très nombreux à commettre cette erreur) des chaînes dont
le nombre de parenthèses ouvrantes et fermantes est égal, sans pour
autant que l'expression soit correctement prenthésée (ex: ))(().
- Enfin, j'ai trouvé trop peu de personnes qui connaissaient la base
de la syntaxe de C, ce qui est étonnant sachant que c'était le langage
obligatoire pour le TP1...
- [mardi 5 novembre 2002]
Un solutionnaire du TP1 est
disponible. Les notes de vos TP1 suivront (merci d'être patient).
- [mardi 29 octobre 2002]
J'espère que vous avez trouvé l'intra facile (il l'était). Voici
un solutionnaire de l'examen: [ps] [pdf].
À lire impérativement (et à comprendre) si vous venez voir votre copie après
correction (soyez patients).
- [vendredi 25 octobre 2002]
La salle d'examen de l'intra est maintenant connue, il s'agit du
G-615, Pavillon Principal (faites circuler l'information, merci).
- [jeudi 24 octobre 2002]
Le sujet du devoir 2 est disponible. Au programme: des listes, de la
récursivité, bref du Scheme . La démonstration de mercredi
prochain attaque avec les concepts de base de ce nouveau langage (du
moins pour beaucoup d'entre-vous).
- [lundi 21 octobre 2002]
Info TP: Vous avez été nombreux a me signaler que phobos
était en panne dimanche (merci, mais je ne suis pas responsable du
fonctionnement des serveurs du département :-). Il est maintenant
réparé et vous pouvez faire vos remises comme indiqué. Vous avez
jusqu'à mercredi 23 (minuit) pour faire la remise sans pénalité.
Note: la similarité de vos projets sera vérifiée
automatiquement (comme aide à la détection de plagiat). La procédure
officielle en matière de plagiat est la suivante: 0 à tout le monde
(aussi bien les copieurs que les auteurs du TP) plus notification à
l'université. Mais je suis cependant certain que cela ne vous concerne
pas...
- [vendredi 18 octobre 2002]
Info TP: Vous êtes plusieurs à me demander des informations
à propos de l'option -v: oubliez la ! C'est une vieille habitude que
j'ai d'ajouter cette option à tous mes programmes pour m'assurer de
leur bon fonctionnement. Ce qu'on vous demande ici c'est d'être
capable d'analyser lexicalement, syntaxiquement et
sémantiquement. Donc l'option -m est importante. L'option -i est
également à gérer (lire depuis l'entrée standard ou depuis un
fichier).
- [jeudi 17 octobre 2002]
Info intra: Au programme de cet intra, tout ce que nous avons
vu jusqu'à la date de l'intra. Ceci concerne donc les pages 1 à 160
des notes de cours de Marc Feeley; les chapitres 1 à 6 et 8 à 10 du
livre de Sebesta et les chapitres 1 à 5 du Sethi.
Note: Seule la matière vue en cours fera vraiment parti de
l'examen (il n'est pas possible dans un cours de voir complètement la
matière de 9 chapitres, aussi ne vous étonnez pas de lire des choses
-- soit dans les notes de cours de Marc Feeley, soit dans votre livre
-- que nous n'avons pas abordées).
Note: Aucun document ne sera autorisé; attendez-vous donc à
des questions de cours aux réponses ponctuelles testant votre
compréhension globale.
- [mercredi 16 octobre 2002]
Le solutionnaire de la démonstration 5 est maintenant disponible
- [mardi 15 octobre 2002]
À tous ceux qui ont tenté de me questionner la semaine dernière sur
le TP, désolé de mon silence mais j'étais en conférence. La consigne
était de toute façon d'envoyer vos questions à dift2030 plutôt qu'à
moi.
Je suis disponible cette semaine pour vos questions concernant le
TP ou le cours.
Pour ceux qui ont des problèmes avec la modularité en C/C++, des
liens sont disponibles depuis la planche de démonstration 5, prenez le temps
de la lecture, les choses devraient devenir plus claires.
- [vendredi 27 septembre 2002]
Correction (++) dans la BNF du sujet du tp1. Certains
d'entre-vous ont remarqué (encore) des coquilles dans la BNF. J'ai
modifié en conséquence la BNF à même le sujet.
Pour ceux qui ont commencé le codage de l'étape 2, les
modifications concernent essentiellement l'appel de méthode
(autorisation d'appel d'une procédure sans paramètre). J'ai également
supprimé les règles vides en utilisant systématiquement la notation
EBNF.
- [jeudi 26 septembre 2002]
Correction dans la BNF du sujet du tp1, le mot expression
était (par erreur) en caractères gras dans la dernière règle. Merci à
celui qui me l'a signalé. La règle est donc bien la suivante:
facteur -> identificateur {[expression]} | literal_entier | ( expression )
- [mardi 24 septembre 2002]
Mea culpa: il y a effectivement un problème avec l'impression
des pages html depuis le navigateur netscape. En revanche le
navigateur konqueror disponible sous votre environnement
Linux départemental imprime correctement les pages web de ce
cours.
Voici tout de même -- pour cette fois-ci -- le sujet du tp1 en
version ps et pdf
Prenez note que les modifications (compléments, clarifications,
etc.) seront reportées uniquement dans le fichier html que vous
pouvez imprimer (encore une fois) avec konqueror.
- [vendredi 20 septembre 2002]
Le sujet du TP1 est
disponible sur le site du cours.
Conseil d'usage (qui s'adresse d'autant plus aux nouveaux
programmeurs en C): ne tardez pas à commencer le projet ! Les devoirs
de IFT2030 sont plus conséquents que ceux réalisés en IFT1010.
Merci d'avance de lire complètement le sujet au moins une fois
avant de venir poser des questions. Bon courage.
- [lundi 16 septembre 2002]
Avez-vous des angoisses pour votre futur professionnel ?
Si oui, précipitez-vous sur l'article paru le 14
septembre 2002 dans le journal Les Affaires: un must !
- [mardi 10 septembre 2002]
Pas de panique !
L'objet de la première partie du cours n'est pas
de faire de la théorie des langages (il existe un cours dédié), mais
de voir ce qu'implique un compilateur (nous en verrons un exemple
concret).
- [mercredi 4 septembre 2002]
La page du cours est normalement à jour. Prenez note que les salles de
démonstration (tp) ont changées (voir Horaires et locaux).
- [mardi 3 septembre 2002]
Premier cours: 13h30--15h30, salle PA-1140
|