- Site web du cours (cette page):
http://www.iro.umontreal.ca/~pift1015.
- Professeur: Pascal Vincent.
Consultation: après le cours ou sur rendez-vous.
Je suis notoirement très lent à répondre aux emails. 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.
- Questions: Si vous avez des questions posez-les de préférence sur le forum du cours sur Moodle, visible à tous. Nous tâcherons d'y répondrons directement sur le forum.
Si vous voulez nous poser des questions privées aux démonstrateurs et à moi-même, envoyez un emai à dift1015@iro.umontreal.ca
Dernières nouvelles
- Premier cours: Mercredi 7 janvier 2009 de 12h30 à 13h30 au local 1175 (pavillon AA = André Aisenstadt) Bienvenue à tous!
- Il n'y aura pas de séance de Travaux Pratiques et Laboratoires ce jeudi 8 janvier car nous n'aurons pas vu suffisamment de matière.
- Vous devez vous inscrire sur le
système Moodle.
Après y avoir créé un compte (si vous n'en avez pas déjà un),
choisissez le cours IFT1015 et inscrivez-vous y.
[ Cliquez sur Moodle pour accéder au système ]
C'est au travers du système Moodle que vous seront communiquées les nouvelles concernant le cours, que vous pourrez poser des questions sur les forums, et que vous pourrez remettre vos travaux et consulter vos notes. - Avant le premier Lab de jeudi (15 janvier), essayez d'obtenir votre login (nom d'utilisateur) et mot-de-passe en suivant la procédure indiquée ici. Prenez-en bien note: vous en aurez besoin pour vous connecter aux ordinateurs lors des Labos. Remarque: ce login et mot de passe, que vous utiliserez pour vous connecter sur les ordinateurs du DIRO, sont différents des informations de connexion que vous utilisez pour accéder au guichet étudiant via le site Web de l'Université (code d'identification et UNIP).
- Ce laboratoire du jeudi 15 janvier à 10h30 sera consacré au séminaire unix et aura lieu, comme prévu, de 10h30 à 12h30 au local 1340. Il n'y aura pas de TP de 9h30 à 10h30 cette fois-ci (pas encore assez de matière).
- TOUTES LES ANNONCES SONT DÉSORMAIS FAITES SUR LE FORUM DE Moodle.
Horaire
Lundi | 9h30 - 11h30 | Théorie | Local 1175 (AA) |
Mercredi | 12h30 - 13h30 | Théorie | Local 1175 (AA) |
Jeudi | 9h30 - 10h30 | Travaux pratiques | Local 1175 (AA) |
Jeudi | 10h30 - 12h30 | Laboratoire | Local 1340 (AA) |
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.Il n'est pas obligatoire d'avoir un livre, mais à moins que vous ne connaissiez déjà bien Java, c'est recommandé.
Si vous êtes un débutant complet, nous vous suggérons:
![]() Anne Tasso, Le livre de Java premier langage |
Pour aller un peu plus loin: C. Delannoy, Programmer en Java, Eyrolles
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.
Matériel informatique
Il est possible de programmer en Java aussi bien su Mac que sur PC Windows ou Linux. Donc si vous disposez d'un ordinateur à la maison ou d'un ordinateur portable, vous pourrez vous en servir pour vous exercer. Les laboratoires et l'examen pratique se dérouleront sur un environnement de type Linux, et les stations de travail linux en accès libre au DIRO vous permettront de vous pratiquer sur ce type d'environnement. La page consacrée aux démos http://www.iro.umontreal.ca/~dift1015 contient quelques instructions pour installer Java sur votre ordinateur personnel, et les démonstrateurs pourront vous aider si vous éprouvez des difficultés.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.
- 2 travaux pratiques (TP) comptant pour 15% chacun.
- 1 examen pratique (EP) comptant pour 10% (mais voir seuil ci-dessous). Jeudi 2 avril de 10h30 à 12h30 au laboratoire 1340.
- 1 examen intra (EI) comptant pour 20%. Prévu le lundi 16 février 2009 de 9h30 à 11h30 (local 1355). Examen écrit, durée 2 heures, matière théorique du début à mi-session, toute documentation papier est permise.
- 1 examen final (EF) comptant pour 30%. Prévu le lundi 20 avril 2009 de 8h30 à 11h30 (local 1355). Examen écrit, durée 3 heures, matière théorique du début à fin-session, toute documentation papier permise.
- 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 (et il y a peu de chances que vous y parveniez si vous n'avez pas fait les exercices pratiques au cours de l'année...).
- 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 des 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).
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.
Énoncé des examens de l'Hiver 2009: Examen IntraLiens 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'automne 2008 par Pascal Vincent et Miklós Csűrös (incluant énoncés d'examens).
- 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)
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. Les liens vers les diapos utilisées comme support de cours sont également fournis. Mais notez qu'elles ne contiennent pas toutes les explications complémentaires données en cours au tableau.
Semaine | Date | Thème du cours | Diapo |
---|---|---|---|
1 | 7.01.2009 | Présentation du cours. Début de la matière: Introduction à la programmation. |
Programme
du
premier cours. intro.pdf |
2 | 12.01.2009 | Suite de l'introduction à la programmation. Premier programme Java sous unix. | |
14.01.2009 | Variables. | variables.pdf | |
3 | 19.01.2009 | Expressions. Opérations sur les chaînes de caractères. |
expressions.pdf |
21.01.2009 | 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.) | |
4 | 26.01.2009 | Conditions | conditions.pdf |
28.01.2009 | Conditions (suite) | Exemple if/else: Hello.java
conditions2.pdf |
|
5 | 2.02.2009 | Boucles | boucles.pdf |
4.02.2009 | Fonctions 1 | fonctions1.pdf | |
6 | 9.02.2009 | Fonctions 2 | fonctions2.pdf |
11.02.2009 | Art de programmer 1 + révision pour l'examen intra | art1.pdf | |
7 | 16.02.2009 | Examen intra de 9h30 à 11h30 (local 1355) | |
18.02.2009 | Correction de l'examen intra | |
|
8 | 23.02.2009 | Tableaux |
tableaux.pdf |
25.02.2009 | Art de programmer 2 |
art2.pdf | |
9 | 2.03.2009 | Semaine de lecture (pas de cours) | |
4.03.2009 | Semaine de lecture (pas de cours) | ||
10 | 9.03.2009 | Objets |
oop1.pdf |
11.03.2009 | Objets (suite) | oop3.pdf | |
11 | 16.03.2009 | Programmation objet: constructeurs, différence entre méthodes non statiques et statiques. this. Passage de paramètres objet par référence. | |
18.03.2009 | Révision sur les tableaux, objets et String. |
||
12 | 23.03.2009 | Algo 1 (recherche et tri) | algo1.pdf |
25.03.2009 | Ce qui se passe en mémoire: pile pour variables locales et paramètres des fonctions, allocation de mémoire dyamique avec new, "pointeurs-référence", différence entre types simples et tableaux/objets pour ce qui est du passage de paramètres aux fonctions. | |
|
13 | 30.03.2009 | Listes chaînées | linked list
(Wikipedia) ListeChaine.java Noeud.java |
1.04.2009 | Listes chaînées (suite) | ||
2.04.2009 | Jeudi 2 avril: EXAMEN PRATIQUE de 10h30 à 12h30 au laboratoire 1340. | ||
14 | 6.04.2009 | Récursion | algo2.pdf ex: tour de Hanoi (hanoi.java) |
8.04.2009 | |
||
15 | 13.04.2009 | Congé de Pâques | |
15.04.2009 | Dernier cours: préparation pour l'examen final. | art3.pdf | |
16 | 20.04.2009 | Examen final de 8h30 à 11h30 (local 1355) |