IFT1015
Programmation 1

Automne 2008

Informations et plan de cours

Dernières nouvelles

Horaire

Cette session, il y a deux groupes d'étudiants pour ce cours.

Groupe A

JourHeureActivité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

JourHeureActivité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.

Image du livre de Tasso
Anne Tasso, Le livre de Java premier langage, Eyrolles, 2006
Image du livre de Delannoy
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.

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 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:

Pages Web des cours des sessions passées:

Référence Java chez Sun:

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