IFT1015

Programmation 1

Hiver 2009

Informations et plan de cours


Dernières nouvelles

 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: Attention! L'évaluation est avec seuil:

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 Intra

Liens utiles

Pour vous familiariser avec Unix/Linux:

Utile pour les labos et exercices pratiques:

Pages Web des cours des sessions passées:

Référence Java chez Sun:

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.2009Jeudi 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)