IFT1015
Programmation 1
Informations et plan de cours
- Site web du cours (cette page):
http://www.iro.umontreal.ca/~pift1015.
Les étudiants devraient se rendre sur cette page au moins une fois par semaine pour des informations importantes. - Professeurs: Pascal Vincent (première moitié de la session, jusqu'à l'examen intra) et Miklós Csűrös (seconde moitié de la session, jusqu'à l'examen final)
- Heures de disponibilité du professeur Miklós Csűrös:
mardis 10:30-11:30 dans mon bureau (local 3149) ou sur
rendez-vous (par courriel).
Consultation du professeur Pascal Vincent: après le cours ou sur rendez-vous. Note: je suis notoirement très lent à répondre aux emails. Donc si vous avez des questions à me poser, le mieux est de venir directement me voir à la fin d'un cours. - Démos: les séances de travaux pratiques et de laboratoire ont leur propre page Web dédiée: http://www.iro.umontreal.ca/~dift1015 qui contiendra notamment les exercices pratiques.
- Pour joindre les démonstrateurs: dift1015@iro.umontreal.ca
- NOUVEAU: forum pour poser des questions aux démonstrateurs - allez sur le site Moodle (voir ci-dessous comment s'inscrire): http://vision3d.iro.umontreal.ca/moodle
Dernières nouvelles
- 18 novembre 2008:
- L'examen de reprise aura lieu jeudi le 20 novembre de 16h30 à 18h30 au local 1340. Tous les étudiants ont le droit de reprendre l'examen pratique: seulement le meilleur des deux résultats sera considéré dans la note finale.
- 11 novembre 2008:
- Exigences et exercices de programmation affichés: exigences.pdf.
- 27 octobre 2008:
- L'examen pratique aura lieu jeudi le 6 novembre de 15h30 à 19h30 au local 1340. L'examen déroulera en deux groupes: groupe A de 15h30 à 17h30 et groupe B de 17h30 à 19h30 (la salle n'a que 44 postes de travail). Ceux en groupe A n'auront pas le droit de quitter la salle avant la fin de l'examen à 17h30. SVP, signalez-moi (Miklós) des conflits d'horaires dès que possible.
- 8 octobre 2008:
- Lundi prochain le 13 octobre est un jour férié (action de grâce). Je demanderais donc à ceux d'entre vous qui vont habituellement au TP/Labo du lundi d'essayer si possible d'assister au TP/Labo ce jeudi 9 octobre (demain). Il portera sur les tableaux.
- Je vous rappelle que l'examen intra aura lieu le mardi 14 octobre de 8h30 à 10h30 au local Z330 du Pavillon Claire McNicoll. Il portera sur toute la matière vue jusque là, tableaux inclus. Toute documentation papier (notes de cours et livres) est permise, mais les calculatrices ou autres appareils électroniques ne sont pas autorisés.
- En raison de l'intra, le cours du mardi 14 à 16h30 est annulé.
- Il y aura cours le jeudi 16 octobre: correction de l'examen.
- La séance de TP du jeudi 16 octobre sera consacrée à la présentation du TP1. Si vous allez habituellement au TP/Labo du lundi, essayez d'assister à ce TP le jeudi 16, car le lundi suivant c'est semaine de relâche. Lors de la séance de Labo qui suit, les démonstrateurs seront là pour vous aider avec les exercices et le TP1.
- Le lundi 27 octobre, suivant la semaine de relâche, il n'y aura pas de séance de TP, mais la séance de Labo est maintenue: les démonstrateurs seront là pour vous aider si vous avez des problèmes pour le TP1.
- 29 septembre 2008:
-
Important:
Veuillez noter que
l'examen pratique
est prévu le jeudi 6 novembre 2008
pendant la séance de
Labo: de 16h30 à 18h30 au local 1340.
Ceci vaut pour les
étudiants du groupe A comme du groupe B.
Il y aura un examen de reprise, si vous voulez reprendre l'examen pratique, à une date ultérieure qui reste à déterminer: voir avec le professeur Miklós Csűrös
-
Important:
Veuillez noter que
l'examen pratique
est prévu le jeudi 6 novembre 2008
pendant la séance de
Labo: de 16h30 à 18h30 au local 1340.
Ceci vaut pour les
étudiants du groupe A comme du groupe B.
-
- Nouveau:
Nous avons mis en place un site Moodle pour faciliter les
questions/réponses aux démonstrateurs, ainsi que la remise de travaux.
Voici les étapes que vous devez suivre pour y accéder:- Créez-vous un compte sur le site Moodle
http://vision3d.iro.umontreal.ca/moodle
(=> cliquez en haut de la page sur
créer immédiatement un nouveau compte
, remplissez les informations, vous recevrez un email de confirmation: suivez ses instructions) - Inscrivez-vous au cours IFT1015 sur ce site:
une fois connecté avec votre nom d'utilisateur et
mot de passe, cliquez
sur
Liste complète des cours
puis surIFT1015 Programmation 1
puis surM'inscrire dans ce cours
- Pour poser des questions aux démonstrateurs,
allez sur le site Moodle, cliquez sur IFT1015,
puis sur
Forum des nouvelles
, vous pouvez alors poster une question (ajouter un nouveu sujet de discussion) ou lire les réponses.
- Créez-vous un compte sur le site Moodle
http://vision3d.iro.umontreal.ca/moodle
(=> cliquez en haut de la page sur
- Il y aura un premier TP (en salle 1177 de 15h30 à 16h30) les jeudi 11 septembre pour le groupe A, et le lundi 15 septembre pour le groupe B.
- Le séminaire Unix aura lieu ensuite au laboratoire 1340. Vous devez aller à l'un des séminaires suivants: jeudi 11 septembre de 16h30 à 18h30, OU BIEN lundi 15 septembre de 17h30 à 19h30 (notez l'heure de début inhabituelle). Munissez-vous de votre Code Permanent et votre UNIP. Vous devriez dores et déjà essayer depuis un navigateur Web d'obtenir votre futur mot de passe Linux. Notez le bien. Si vous rencontrez des difficultés on vous aidera lors du séminaire.
- Concernant les conflits pour certains entre l'horaire d'IFT1015 et l'horaire d'IFT1065 (Structures discrètes), remarquez qu'il y a 2 groupes (A et B) pour ces deux cours. Si vous avez présentement un conflit pour les séances de TP/Labo du ludi, considérez changer de groupe en IFT1065 (regardez l'horaire) ou bien aller dans l'autre groupe d'IFT1015 pour les TP/Labo.
- Premier cours le mardi 2 septembre 2008: consulter le tableau ci-dessous pour connaître la salle et l'horaire selon votre groupe. Bienvenue à tous!
- Nouveau:
Nous avons mis en place un site Moodle pour faciliter les
questions/réponses aux démonstrateurs, ainsi que la remise de travaux.
Horaire
Cette session, il y a deux groupes d'étudiants pour ce cours.Groupe A
Jour | Heure | Activité | Local |
---|---|---|---|
Mardi | 8h30 - 10h30 | Théorie | Local 1360 pavillon André Aisenstadt |
Jeudi | 9h30 - 10h30 | Théorie | Local Z-210 pavillon C-McNicoll |
Jeudi | 15h30 - 16h30 | Travaux pratiques | Local 1177 pavillon André Aisenstadt |
Jeudi | 16h30 - 18h30 | Laboratoire | Local 1340 pavillon André Aisenstadt |
Groupe B
Jour | Heure | Activité | Local |
---|---|---|---|
Mardi | 16h30 - 17h30 | Théorie | Local 1177 pavillon André Aisenstadt |
Jeudi | 10h30 - 12h30 | Théorie | Local Z-305 pavillon C-McNicoll |
Lundi | 15h30 - 16h30 | Travaux pratiques | Local 1177 pavillon André Aisenstadt |
Lundi | 16h30 - 18h30 | Laboratoire | Local 1340 pavillon André Aisenstadt |
Objectifs du cours
Le cours a pour objectif de vous enseigner les éléments de base d'un langage de programmation: types, expressions, énoncés conditionnels et itératifs, procédures, fonctions, paramètres, récursivité, tableaux, enregistrements, pointeurs et fichiers.
Ce cours vise également à vous apporter une expérience pratique de ces éléments de base dans un premier langage: le langage Java. A l'issue du cours, vous serez en mesure de concevoir et réaliser des programmes simples en Java, et serez capable d'acquérir rapidement les bases d'autres langages de programmation.
Livre suggéré:
Le choix d'un livre dépend de votre expérience en programmation. Nous en discuterons lors du premier cours.
![]() Anne Tasso, Le livre de Java premier langage, Eyrolles, 2006 |
![]() C. Delannoy, Programmer en Java, Eyrolles, 2006 |
Si vous voulez apprendre le C++ en même temps que Java: Anne Tasso, Apprendre Java et C++ en parallèle, Eyrolles. Pour la deuxième moitié du cours, où on aborde la programmation objet, vous pouvez aussi vous référer au livre Thinking in Java disponible gratuitement en ligne.
Evaluation
L'évaluation repose sur les exercices pratiques (EX), les travaux pratiques (TP), l'examen pratique (EP), l'examen intra (EI), et l'examen final (EF).
Le décompte des points se répartit comme suit.
- 10 exercices pratiques (EX) comptant pour 1% chacun. Donnés au cours des séances de travaux pratiques et labo.
- 2 travaux pratiques (TP) comptant pour 15% chacun.
- 1 examen pratique (EP) comptant pour 10% (mais voir seuil ci-dessous). Prévu le jeudi 6 novembre 2008 pendant la séance de Labo: de 16h30 à 18h30 au local 1340. Ceci vaut pour les étudiants du groupe A comme du groupe B.
- 1 examen intra (EI) comptant pour 20%. Prévu le mardi 14 octobre de 8h30 à 10h30 (local Z-330 pav. C-McNicoll). Examen écrit, durée 2 heures, matière théorique du début à mi-session.
- 1 examen final (EF) comptant pour 30%. Prévu le jeudi 11 décembre de 15h30 à 18h30 (local 1140 pav. André Aisenstadt). Examen écrit, durée 3 heures, matière théorique du début à fin-session.
L'évaluation est avec seuil:
- Vous devez obtenir une moyenne pondérée minimum de 40% aux examens intra et finaux (0.4 * intra + 0.6 * final >= 40% )
- Vous devez obtenir la note minimale de 40% à l'examen pratique.
- Si un des seuils n'est pas atteint, tous travaux pratiques et exercices pratiques se voient attribuer la note 0!
Chaque exercice pratique sera présenté durant l'heure hebdomadaire de travaux pratiques, et portera sur la matière des cours précédents.
Les exercices pratiques se font individuellement.
Les travaux pratiques se font seul ou en équipe de deux.
Tous les travaux sont faits en Java et doivent fonctionner
adéquatement sur les environnements du DIRO, sous Linux.
Examens et notes
Concernant la fraude et le plagiat: ATTENTION! L'Université de Montréal a désormais une politique stricte en cas de fraude ou plagiat. Si une infraction est constaté, le professeur est obligé de faire un rapport au directeur du département. Une procédure administrative est alors automatiquement enclenchée avec les conséquences suivantes: l'infraction est notée à votre dossier, et une sanction est décidée. En cas de récidives les sanctions peuvent aller jusqu'à l'expulsion. Alors faites vos examens seul!
Examens que j'ai (prof. Pascal) donnés les années passées: les énoncés d'examens des années passées se trouvent sur la page des cours que j'ai donné les années en question (voir la section liens utiles ci-dessous).
Énoncés des examens de la session d'automne 2008: Examen Intra Examen pratique
Pour consulter vos notes: vos notes sont désormais entrées sur le système Moodle.
Exigences et exercices: un document spécifiant les connaissances exigées pour les examens et quelques exercices de programmation: exigences.pdf.
Liens utiles
Pour vous familiariser avec Unix/Linux:
Utile pour les labos et exercices pratiques:
- La classe Keyboard pour faciliter les entrées
clavier Keyboard.java
et son API.
Notez que dans les dernières version de l'API standard Java, vous avez accès à la classe Scanner qui vous offre (de manière native, mais un peu pus compliquée) de telles fonctionnalités.
Pages Web des cours des sessions passées:
- Page du cours donné à l'hiver 2008 par Pascal Vincent (incluant énoncés d'examens).
- Page du cours donné à l'automne 2007 par Sébastien Roy.
- Page du cours donné à l'hiver 2007 par Pascal Vincent (incluant énoncés d'examens).
- Site du semestre d'hiver 2006
- Site du semestre d'automne 2005
Référence Java chez Sun:
- Java chez Sun http://java.sun.com
- Tutoriel Java de Sun
- API et documentation de Java
- Vous pouvez télécharger le JDK de Sun là: http://java.sun.com/javase/downloads/index.jsp
Contenu détaillé des cours (planifiés ou effectués)
Ce cours a pour l'essentiel le même contenu et le même format que le cours donné par Sébastien Roy.
Première partie, enseignée par Pascal Vincent
Notez que l'horaire ci-dessous est préliminaire. Le détail des thèmes de cours pour les dates futures est donné à titre indicatif seulement, et sera mis à jour et adapté au cours de l'année. De même, les liens vers les diapos utilisées pour les cours seront mis à jour au fur et à mesure.
Semaine | Thème du cours | Diapo | |
---|---|---|---|
1 | 02/09/2008 |
Présentation du cours et
introduction. Premier programme Java sous unix. |
Programme
du premier cours. intro.pdf |
04/09/2008 | Variables. | variables.pdf | |
2 | 09/09/2008 | Expressions | expressions.pdf |
11/09/2008 | Entrées-sorties | inout.pdf (vous pouvez télécharger ici le fichier Keyboard.java pour pouvoir utiliser ses fonctions d'entrée clavier décrites dans le cours.) | |
3 | 16/09/2008 | Conditions | conditions.pdf |
18/09/2008 | Conditions (suite) |
Exemple if/else: Hello.java
conditions2.pdf |
|
4 | 23/09/2008 | Boucles | boucles.pdf |
25/09/2008 | Fonctions 1 | fonctions1.pdf | |
5 | 30/09/2008 | Fonctions 2 | fonctions2.pdf |
02/10/2008 | Art de programmer 1 | art1.pdf | |
6 | 07/10/2008 | Tableaux | tableaux.pdf |
09/10/2008 | Art de programmer 2 et préparation de l'intra | art2.pdf | |
7 | 14/10/2008 | Examen intra | |
16/10/2008 | Correction de l'examen intra |
La semaine 8, du 20 au 26 octobre, est une semaine de lecture, il n'y a pas de cours.
Deuxième partie, enseignée par Miklós Csűrös
Notez que l'horaire ci-dessous est préliminaire. Le détail des thèmes de cours pour les dates futures est donné à titre indicatif seulement, et sera mis à jour et adapté au cours de l'année. De même, les liens vers les diapos utilisées pour les cours seront mis à jour au fur et à mesure.
Semaine | Thème du cours | Diapo/notes de cours | |
---|---|---|---|
9 | 28/10/2008 | Objets Programmation orientée objet: constructeurs, différence entre méthodes non statiques et statiques. this . Passage de
paramètres objet par référence.
|
oop.pdf, pages 0-29 |
30/10/2008 |
oop.pdf, pages 30-41
Point.java |
||
10 | 04/11/2008 | ||
06/11/2008 | Recherche et tri, méthode de la bissection |
algo1.pdf
bissection.pdf |
|
11 | 11/11/2008 | ||
13/11/2008 | |||
12 | 18/11/2008 | Structure de données: ensemble dynamique | |
20/11/2008 | |||
13 | 25/11/2008 | Récursion | |
27/11/2008 | |||
14 | 02/12/2008 | Art de programmer 3 | art3.pdf |
04/12/2008 | Dernier cours: préparation pour l'examen final | ||
15 | 09/12/2008 | Pas de cours (semaine d'examen) | |
11/12/2008 | Examen final |