Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF1563  Gr. 01
Titre : Programmation I
Session : Automne 2017  Horaire et local
Professeur : Iglewski, Michal
1. Description du cours paraissant à l'annuaire :

Objectifs

Permettre à l'étudiant de s'initier à l'application des techniques de programmation dans la résolution de problèmes et le développement d'algorithmes. L'introduire au paradigme orienté objet.

Contenu

Introduction à la résolution de problèmes : formulation du problème, conception des solutions, codage des programmes en Java. Principes de langages de programmation : variables, constantes, expressions, instructions, syntaxe, sémantique, types de données, structures de contrôle. Concepts orientés objet : encapsulation de données, classes, objets, méthodes, messages, héritage. Conteneurs simples de données. Ce cours comporte des séances obligatoires de travaux dirigés (TD) de deux heures par semaine.
2. Objectifs spécifiques du cours :
 
3. Stratégies pédagogiques :
Les formules pédagogiques suivantes seront utilisées :
  • L'enseignement est dispensé sous forme magistrale (3h/semaine). Des exercices seront donnés durant ces séances pour illustrer les notions nouvellement introduites.
  • Les concepts cités dans le plan de cours seront traités avec une approche de formulation et de résolution de problèmes.
  • Des séances de travaux dirigés (2h/semaine) viendront appuyer les séances de cours. Ces séances se font en présence d'un assistant. La présence des étudiants à ces laboratoires est obligatoire.
4. Heures de disponibilité ou modalités pour rendez-vous :
  • Consultations : mercredi : 15h00 à 17h00 ou sur rendez-vous.
  • Courriel : iglewski@uqo.ca
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Introduction aux langages de programmation
  • programmes, ordinateurs, langages de programmation, algorithmes
  • environnement Java
  • structure d'un programme Java
  • différences entre une déclaration et un usage
07 sept. 2017 
2    Bases de la programmation orientée objet
  • objets, méthodes, classes
  • variables et types

Comment écrire et exécuter le code ?

TD 1: les 11 ou 13 septembre 2017

14 sept. 2017 
3    Syntaxe, notation BNF

Bonnes pratiques de la programmation : choix de noms

Bases de la programmation orientée objet
  • méthodes
  • introduction aux classes
  • héritage
  • variables et méthodes de classe

TD 2: les 18 ou 20 septembre 2017

21 sept. 2017 
4    Notions de base sur la programmation Java
  • droits d'accès
  • visibilité (portée) des variables
  • expressions
  • opérateurs

TD 3: les 25 ou 27 septembre 2017

28 sept. 2017 
5    Structures de contrôle de flux
  • instructions conditionnelles
  • instructions répétitives
  • ruptures de séquence
  • blocs d'instructions

TD 4: les 2 ou 4 octobre 2017

05 oct. 2017 
6    Semaine d'études 12 oct. 2017 
7    Structures de contrôle de flux (Suite)

TD 5: les 16 ou 18 octobre 2017

19 oct. 2017 
8    Examen de mi-session

TD 6: les 23 ou 25 octobre 2017

26 oct. 2017 
9    POO: un peu plus
  • constructeurs
  • surcharge de méthodes
  • mots-clés "this" et "super"
  • packages

TD 7: le 30 octobre ou le 1er novembre 2017

02 nov. 2017 
10    Tableaux et vecteurs
  • déclaration et manipulation d'un tableau
  • tableaux d'objets
  • tableaux multidimensionnels
  • tableaux dynamiques

TD 8: les 6 ou 8 novembre 2017

09 nov. 2017 
11    Traitement de chaînes de caractères

Nombres à virgule flottante

Traitement des exceptions : gérer les erreurs

TD 9: les 13 ou 15 novembre 2017

16 nov. 2017 
12    Documentation de programmes
  • Javadoc
Les entrées / sorties en Java
  • les fichiers
  • la notion de flux

TD 10: les 20 ou 22 novembre 2017

23 nov. 2017 
13    Récursivité

Conteneurs simples de données

TD 11: les 27 ou 29 novembre 2017

30 nov. 2017 
14    Révision par des exemples
  • étude de cas

TD 12: les 4 ou 6 décembre 2017

07 déc. 2017 
15    Examen final 14 déc. 2017 
6. Évaluation du cours :
Examen final : 40 %

Examen de mi-session : 35 %

Participation aux travaux dirigés : 5 %

Devoirs : 20 %

  • Deux devoirs doivent être faits de manière individuelle et les deux autres par binôme pour mieux saisir les méthodes de travail en groupe. Les conditions spécifiques aux travaux seront communiquées en même temps que l`énoncé.

7. Politiques départementales et institutionnelles :
8. Principales références :
Les notes de cours représentent la principale référence mais les étudiants doivent consulter régulièrement des documents parmi ceux recommandés.

Lectures non-obligatoires mais fortement recommandées

  1. Java Comment Programmer, H. M. Deitel et P.J. Deitel, 4e édition, Reynald Goulet, 2002, ISBN 2893772544
  2. Java How to Program, H. M. Deitel et P.J. Deitel, 10e édition, amazon, 2015, ISBN 0133807800
  3. Java simplifié, James R. Levernick, Mont-Royal, Groupe Modulo, coll. Informatique, 2006, 369 p. ISBN 2-89593-758-6
  4. Java concepts, Cay Horstmann, 6e édition, John Wiley, 2010, ISBN 978-0-470-50947-0
  5. Le livre de Java premier langage, Anne Tasso, 6e édition, Éditions Eyrolles, 2009, ISBN 978-2-212-12648-8

Autres références : consulter la page http://w4.uqo.ca/iglewski/ens/inf1563/livres.html

9. Page Web du cours :
http://moodle.uqo.ca/course/view.php?id=20774