Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF1563  Gr. 01
Titre : Programmation I
Session : Hiver 2018  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
11 jan. 2018 
2    Bases de la programmation orientée objet
  • objets, méthodes, classes
  • variables et types

Comment écrire et exécuter le code ?

TD 1: le 17 janvier 2018

18 jan. 2018 
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: le 24 janvier 2018

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

TD 3: le 31 janvier 2018

01 fév. 2018 
5    Structures de contrôle de flux
  • instructions conditionnelles
  • instructions répétitives
  • ruptures de séquence
  • blocs d'instructions

TD 4: le 7 février 2018

08 fév. 2018 
6    Structures de contrôle de flux (Suite)

TD 5: le 14 février 2018

15 fév. 2018 
7    POO: un peu plus
  • constructeurs
  • surcharge de méthodes
  • mots-clés "this" et "super"
  • packages

TD 6: le 21 février 2018

22 fév. 2018 
8    Examen de mi-session

TD 7: le 28 février 2018

01 mars 2018 
9    Semaine d'études 08 mars 2018 
10    Tableaux et vecteurs
  • déclaration et manipulation d'un tableau
  • tableaux d'objets
  • tableaux multidimensionnels
  • tableaux dynamiques

TD 8: le 14 mars 2018

15 mars 2018 
11    Traitement de chaînes de caractères

Nombres à virgule flottante

Traitement des exceptions : gérer les erreurs

TD 9: le 21 mars 2018

22 mars 2018 
12    Documentation de programmes
  • Javadoc
Les entrées / sorties en Java
  • les fichiers
  • la notion de flux

TD 10: le 28 mars 2018

29 mars 2018 
13    Récursivité

Conteneurs simples de données

TD 11: le 4 avril 2018

05 avr. 2018 
14    Révision par des exemples
  • étude de cas

TD 12: le 11 avril 2018

12 avr. 2018 
15    Examen final 19 avr. 2018 
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=20893