Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF1563  Gr. 01
Titre : Programmation I
Session : Hiver 2019  Horaire et local
Professeur : Davoust, Alan
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.

Descriptif – Annuaire

2. Objectifs spécifiques du cours :

Après ce cours, les étudiants seront en mesure de résoudre des problèmes simples : ils sauront spécifier une solution, l’implémenter sous forme d’un programme Java, et de la valider par des tests unitaires.


Les étudiants seront aussi capables de concevoir des applications de plusieurs classes en utilisant les principes de base de modélisation et de conception objet.

3. Stratégies pédagogiques :

Les formules pédagogiques suivantes seront utilisées :

  • L'enseignement est dispensé sous forme magistrale (3 h/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 (2 h/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 : 13 h à 15 h ou sur rendez-vous.
  • Courriel : alan.davoust@uqo.ca
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1   

Introduction aux langages de programmation : (livre : introduction)

  • programmes, ordinateurs, langages de programmation, algorithmes
  • syntaxe et sémantique

Notions de base : Expressions (livre chapitre 1)

  • variables et types
  • opérateurs, opérandes
  • expressions
10 jan. 2019 
2   

Entrées et sorties de base (écran et clavier) (livre chapitre 2)

Contrôle de flux (livre chapitre 3)

  • instructions conditionnelles
  • blocs d'instructions
  • visibilité (portée) des variables

TD 1 : le 16 janvier 2019

17 jan. 2019 
3   

Contrôle de flux (suite) (livre chapitre 4)

  • instructions répétitives
  • ruptures de séquence

TD 2 : le 23 janvier 2019

24 jan. 2019 
4   

Fonctions et tests unitaires (livre chapitre 5)

  • signature d’une fonction
  • spécifier et implémenter une fonction
  • tester une fonction

TD 3 : le 30 janvier 2019

31 jan. 2019 
5   

Introduction à la Programmation Orientée Objet (POO) (livre chapitre 7)

  • les objets comme types
  • la classe String
  • définition d’une classe : attributs, méthodes

TD 4 : le 6 février 2019

07 fév. 2019 
6   

Introduction à la POO (suite) (livre chapitre 8)

  • constructeurs
  • programmes de plusieurs classes
  • notations simples UML (diagramme de classe)

TD 5 : le 13 février 2019

14 fév. 2019 
7   

POO : Héritage

  • héritage
  • visibilité
  • mots-clefs this, super


TD 6 : le 20 février 2019

21 fév. 2019 
8   

Examen de mi-session

TD 7 : le 27 février 2019

28 fév. 2019 
9   

Semaine d'études

07 mars 2019 
10   

Tableaux (livre chapitres 9 et 10)

  • déclaration et manipulation d’un tableau
  • tableaux multidimensionnels
  • tableaux dynamiques, dictionnaires

TD 8 : le 13 mars 2019

14 mars 2019 
11   

Bibliothèques, documentation de programmes

  • quelques bibliothèques importantes
  • Javadoc

TD 9 : le 20 mars 2019

21 mars 2019 
12   

Éléments de conception objet

  • notions de cohésion et de couplage
  • principe d’encapsulation

TD 10 : le 27 mars 2019

28 mars 2019 
13   

Gestion d’erreurs

  • les exceptions Java

TD 11 : le 03 avril 2019

04 avr. 2019 
14   

Révision par des exemples

  • étude de cas

TD 12 : le 10 avril 2019

11 avr. 2019 
15   

Examen final

18 avr. 2019 
6. Évaluation du cours :

Examen de mi-session : 35 %

Examen final : 45 %

Participation aux travaux dirigés : 5 %

Devoirs : 15 %

  • Deux devoirs doivent être faits de manière individuelle et un devoir 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 :

Livre obligatoire

Le livre de Java Premier Langage, Anne Tasso, 12e édition, Eyrolles, 2017, ISBN 978-2212674866.

Autres ressources

  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.

Java concepts, Cay Horstmann, 6e édition, John Wiley, 2010, ISBN 978-0-470-50947-0.

9. Page Web du cours :
http://moodle.uqo.ca