% INF1120 — Programmation I % UQAM — Département d'informatique % Plan de cours — Été 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Laforest, Louise PK-4725 Enseignement ------------- Lord, Mélanie PK-4115 Groupes: 020 Description du cours ==================== Acquérir une méthode de développement de solutions logicielles dans le cadre du paradigme orienté-objet: analyse du problème, conception simplifiée, codage et test d'une solution. Sensibiliser au développement de programmes de qualité: fiables, faciles à utiliser, à comprendre et à modifier. - Introduction à un environnement de développement logiciel. - Introduction aux algorithmes. - Éléments de programmation de base: vocabulaire, syntaxe et sémantique, constantes, variables, types simples et composés (tableaux à une et deux dimensions), conversions de type, affectation, opérateurs et expressions, instructions, structures de contrôle (séquence, sélection, itération), instructions simples d'entrées-sorties, fichier texte. - Introduction aux éléments de la programmation orientée-objet: classes, objets, méthodes et paramètres, variables de classe, d'instance et locale, portée et durée de vie des variables, constructeurs. - Notion d'encapsulation. - Introduction à l'utilisation de classes et de paquetages prédéfinis. Préalables académiques : Ce cours comporte une séance obligatoire de laboratoire (2 heures). Six de ces laboratoires seront évalués. Objectif du cours ================= Acquérir une méthode de développement de solutions logicielles dans le cadre du paradigme orienté-objet : analyse du problème, conception simplifiée, codage et test d'une solution. Sensibiliser au développement de programmes de qualité : fiables, faciles à utiliser, à comprendre et à modifier. Contenu du cours ================ - Introduction aux algorithmes - Lecture, affichage, sélection, boucles - Pseudo-code - De l'algorithme au programme - Édition, compilation, exécution - Environnement Java - Méthode simple de développement d'un logiciel - Introduction à la programmation Java - Structure d'un programme simple en Java - Conventions d'écriture du code Java - Notion de variables, de types simples et de constantes - Affectation de valeurs - Opérateurs arithmétiques, relationnels et logiques - Priorité des opérateurs - Type du résultat d'une expression - Transformation de type - Entrées/sorties simples - Affichage de valeurs de types simples - Saisie de valeurs - Utilisation d'une classe maison - Sélections - Instruction if-else - Sélections imbriquées - Choix multiples - Répétitions - Instructions while, do-while, for - Comment choisir une boucle - Introduction aux méthodes - Utilisation de méthodes prédéfinies - Conception de méthodes - Visibilité - Introduction aux classes et objets - Concepts: classe, objet, instance - Classe prédéfinie String - Application d'une méthode à un objet - Conception d'une classe simple avec ses méthodes et ses variables - Constructeur - Tableaux - Déclaration et manipulation - Tableaux à plus d'une dimension - Traitement des exceptions - Fichiers - Fichiers de texte: lecture et écriture de données Communication ============= Une page générale du cours est disponible sur Moodle. Elle contient les informations essentielles à tous les groupes cours et de nombreuses ressources. Chaque groupe-cours a également une page Moodle dédiée qui rassemble les informations et les documents spécifiques à chaque groupe. Les communications importantes aux étudiant.e.s se feront par courriel UQAM. Les étudiant.e.s ont la responsabilité de consulter leurs courriels UQAM régulièrement. Formule pédagogique et matériel requis ====================================== Les cours et les démonstrations auront lieu aux jours et heures indiqués dans la description générale du cours fournie ici : . Vous aurez besoin d'un ordinateur personnel sur lequel vous devez pouvoir installer un environnement de développement Java pour réaliser les travaux et laboratoires. Modalités d'évaluation ====================== DESCRIPTION SOMMAIRE DATE PONDÉRATION ---------------------- ----------------------- ------------- Examen intra mardi 13 juin 2023 25% Examen final mardi 8 août 2023 25% Quiz 1 mardi 30 mai 2023 2,5% Quiz 2 mardi 25 juillet 2023 2,5% TP 1 \* 15% TP 2 \* 15% TP 3 \* 15% \* Les dates de remise sont spécifiées dans le site Moodle du cours. Aucune reprise possible pour les quiz, peu importe la raison. La note de passage du cours est de 50 %. Si la note moyenne pondérée des examens est inférieure à 50 % ou si la note moyenne pondérée des travaux pratiques est inférieure à 50 %, la mention échec (E) sera automatiquement attribuée au cours. À moins d'avis contraire, les travaux pratiques sont individuels et en cas de doute sur l'originalité des travaux, un rapport sera soumis au comité sur les infractions académiques. Les travaux doivent être remis aux dates spécifiées par chacun des enseignants. La politique concernant les retards pour les travaux pratiques est à la discrétion de chacun des enseignants. Il est de la responsabilité de l'étudiant de faire des copies de sauvegarde de ses fichiers. La perte de fichiers (à cause d'un virus ou de toute autre raison) n'est pas une raison valable pour remettre un travail en retard ou ne pas le remettre. La note finale littérale pour le trimestre sera attribuée en fonction de l'atteinte des objectifs spécifiques à travers les évaluations. La distribution des résultats dans le groupe pourrait aussi être utilisée. Aucune autre opportunité (travail supplémentaire, etc.) afin augmenter le nombre de points ne sera accordée. Les étudiants doivent consulter régulièrement le site Web des cours de programmation ainsi que le site Web de leur enseignant. On y trouve, entre autres, les énoncés des travaux pratiques, certains exemples et les questions de révision pour les examens. Nous rappelons aux étudiants qu'ils doivent s'attendre à fournir UNE MOYENNE DE 6 HEURES DE TRAVAIL PERSONNEL PAR SEMAINE pour un cours de trois crédits. Médiagraphie ============ VR DELANNOY, C -- *Programmer en Java : Couvre Java 10 à 14* -- 11E ÉDITION, EYROLLES, 2020. VC TASSO, A. -- *Le livre de Java premier langage* -- 11E ÉDITION, EYROLLES, 2016. VC BARNES, D.J., KÖLLING M -- *Conception objet en Java avec BlueJ* -- 4E ÉDITION PEARSON EDUCATION, 2009.