0711

Programme court de premier cycle en informatique pour étudiants en séjour d'études

Responsable : François Lemieux
Regroupement de programmes : Module d'informatique et de mathématique
Secrétariat : (418) 545-5011, poste 5273
ADRESSE ÉLECTRONIQUE :sm_informatique-mathematique@uqac.ca
Grade :

Objectifs

Ce programme court vise à permettre aux étudiants internationaux inscrits dans un programme d'informatique dans leur institution d'origine d'approfondir leurs connaissances dans le domaine en effectuant un séjour d'études à l'UQAC.

Conditions d'admission

Être inscrit dans un programme d'informatique de niveau universitaire;

ET

Avoir satisfait aux conditions d'admissibilité à un séjour à l'étranger de l'institution d'attache.

Contingentement

Ce programme n'est pas contingenté.

Règlement relatif à la qualité du français chez les étudiants dont la langue maternelle est autre que le français.

Tout étudiant admis à partir du trimestre d'hiver 2013, dont la langue maternelle est autre que le français, est tenu de se soumettre au test identifié par l'UQAC pour évaluer ses compétences en français. L'étudiant doit atteindre le résultat exigé avant d'entreprendre son programme d'études. Les modalités relatives à ce test sont définies dans la Procédure relative à l'évaluation de la qualité du français écrit chez les étudiants lors de l'admission à un programme de premier cycle.

Règles administratives

Ce programme est offert à temps complet.

L'admission des étudiants se fait aux trimestres d'hiver et d'automne.

Le choix de cours peut être limité en fonction de l'horaire et du trimestre d'admission. Certains cours peuvent être annulés si le nombre d'inscriptions est trop faible.

Structure du programme

Ce programme comprend quinze (15) crédits répartis comme suit* :

(*)Les cours entre parenthèses sont préalables et sont jugés réussis dans l'institution d'attache.

Plan de formation

Pour les étudiants admis au trimestre d'hiver

Trois à cinq cours (neuf à quinze crédits) parmi les suivants

4ETH236 Éthique et informatique
6GEI264 Vérification et validation des logiciels (8PRO114)
6GEN720 Réseaux d'ordinateurs (6GEI186)
8GIF150 Conception de jeux vidéo
8GIF180 Réalisation d'un jeu vidéo (8SIF109)
8INF257 Informatique mobile (8PRO114)
8INF259 Structures de données (8PRO107)
8INF327 Modélisation et développement objet (8PRO114)
8INF333 Sécurité des applications (8INF259)
8INF341 Systèmes d'exploitation (8INF259)
8INF433 Algorithmique ((8INF259 et 8MAP107) ou (8MAT122 et 8SIF109))
8MAP107 Calcul avancé I
8MAT122 Structures discrètes
8PRO114 Programmation orientée objet (8INF259)
8PRO139 Programmation client/serveur (8PRO114)
8STT105 Probabilité et statistique I
8TRD149 Introduction aux bases de données ((8INF259) ou (8TRD134))

Pour les étudiants admis au trimestre d'automne

Trois à cinq cours (neuf à quinze crédits) parmi les suivants

6GEI186 Architecture des ordinateurs
6GEN715 Infographie (8INF259)
8ASY109 Systèmes d'information organisationnelle
8ASY200 Systèmes distribués (8PRO114 et 8SIF120)
8GIF150 Conception de jeux vidéo
8GIF180 Réalisation d'un jeu vidéo (8SIF109)
8IAR125 Intelligence artificielle pour le jeu vidéo (8INF259)
8IFG145 Gestion de projets informatiques
8INF128 Conception et programmation de sites Web
8INF135 Sécurité des réseaux et du Web (8SIF120)
8INF713 Informatique théorique (8INF259 et 8MAT122)
8MAP107 Calcul avancé I
8MAT122 Structures discrètes
8PRO114 Programmation orientée objet (8INF259)
8ROP515 Recherche opérationnelle ((8INF259 et 8MQG210) ou (8INF259 et 8STT105))
8TRD157 Bases de données avancées (8TRD149)

Pour tous les étudiants

Zéro ou un cours (zéro ou trois crédits) parmi les suivants

8INF206 Projet
8INF700 Sujet spécial en informatique

Zéro ou un cours (zéro ou trois crédits) parmi les suivants

2MAN105 Principes de management
2MAR100 Marketing

ou un cours d'anglais en fonction du résultat au test de classement (English Skills I, II, III ou IV)

DESCRIPTION DES COURS

2MAN105 Principes de management

Familiariser avec les principales notions de base en matière de théorie administrative et introduire aux divers principes et systèmes qui régissent l'articulation, le développement et la croissance de l'entreprise. Accroître la sensibilisation de l'étudiant face aux problèmes de management, ainsi que son aptitude à les solutionner en prenant en considération les principes d'une saine gestion. Offrir des cadres de référence, selon une approche systémique, permettant d'intégrer les autres notions qui seront progressivement acquises durant le programme.

Management, concept de base et domaine d'intervention. Évolution chronologique de la civilisation industrielle, principales écoles de management, processus décisionnel. Selon l'approche traditionnelle et selon l'approche système, étude des grands concepts managérials : planification, organisation, direction et contrôle. Application des théories dans les grandes fonctions de l'entreprise : marketing, production, finance, gestion des ressources humaines.

(10/2017)

2MAR100 Marketing

Permettre de comprendre les raisons d'être de la fonction marketing au sein de l'organisation et dans la société nord-américaine. Permettre l'apprentissage et la connaissance des concepts fondamentaux reliés au marketing. Rendre apte à appliquer l'approche marketing à l'ensemble des décisions administratives.

Étude des concepts fondamentaux du marketing. Connaissance théorique et opérationnelle des variables du marketing: environnement marketing, marché et segmentation, système d'information marketing, prévision des ventes, produit-service, distribution, prix, communication: de masse, personnalisée, concurrence.

(10/2017)

4ETH236 Éthique et informatique

Initier les étudiants aux enjeux éthiques, légaux et sociaux du développement de certains usages de l'informatique dans différents domaines d'activité scientifique, technique ou industriel (nanotechnologies, domotique, télécommunications, etc.) dans les secteurs de la santé, l'éducation et la sécurité. Comprendre le système social des valeurs éthiques et les dispositifs normatifs encadrant les pratiques, notamment les lois, les règlements, les codes d'éthiques, etc. Développer la délibération éthique et le dialogue sur ces enjeux.

Les notions fondamentales de l'éthique appliquée et les principales théories éthiques contemporaines dans l'évaluation des impacts des technologies. Le droit de l'informatique, les principes moraux et les valeurs éthiques du développement des technologies. Acceptabilité sociale et acceptabilité éthique dans les études d'impact. Le processus d'analyse globale d'impacts et d'acceptabilité éthique.

(10/2017)

6GEI186 Architecture des ordinateurs

Familiariser avec la structure et le fonctionnement des ordinateurs modernes.

Organisation vs architecture, évolution des ordinateurs et de leur performance, rappel d'arithmétique binaire (virgule fixe, virgule flottante), jeu d'instructions d'un microprocesseur, modes d'adressage, opération d'un ordinateur (composantes et fonctions, interconnexions), fonctionnement des antémémoires («caches»), mémoires vives (DRAM), mémoires de masse (disques, RAID), entrées/sorties (périphériques, DMA), support au système d'exploitation, structure et fonction d'un CPU (registres, pipelines), ordinateurs à jeu d'instructions réduit (RISC), systèmes multi-coeurs, traitement parallèle.

(10/2017)

6GEI264 Vérification et validation des logiciels

Donner à l'étudiant les techniques de vérification et de validation requises pour le développement de logiciels de qualité.

Qu'est-ce que la vérification et la validation (V&V). Améliorer la qualité par la V&V. Évaluation et gestion du risque. Coût des défectuosités. Processus de développement: «waterfall», spirale, agile, . V&V selon les étapes du processus de développement: spécification, architecture, codage et test formels. Test unitaires, d'intégration, de régression et d'acceptation. Configuration d'un logiciel pour testabilité. Encapsulation, composants et interfaces. Utilisation de SVN. Règles de codage. Définir les cas de test et les critères d'acceptation. Documents de V&V: plan, procédures et rapports. Outils de V&V: «walk-throught», réunion pour revue, inspection, revue par les pairs, liste d'items, tests. Les techniques de V&V sont appliquées à la spécification, à la conception, au codage et aux tests d'un environnement de développement similaire à Visual Studio, incluant un mini-compilateur C.

Préalable(s): (8PRO114)

(10/2017)

6GEN715 Infographie

Fournir à l'étudiant les connaissances de logiciel et de matériel permettant l'affichage graphique, la production de dessins automatiques et la réalisation de programmes d'application avec divers types d'ordinateurs.

Familiarisation avec les moyens matériels en infographie interactive. Technologies d'affichage et dispositifs de manipulation d'images. Techniques de base pour la création et la gestion de fichiers graphiques: espace virtuel réel, fenêtre, clôture, découpage, segmentation et gestion de la liste d'affichage, mémoire d'image, processeur graphique. Modélisation des objets graphiques : structuration de l'information et différents modèles géométriques.

Transformation et manipulateurs d'images en 2D en 3D, coordonnées homogènes, projection, perspectives. Problèmes des objets en 3D: les lignes et surfaces cachées, courbes et surfaces gauches, primitives solides.

Structure des données géométriques: bases de données et manipulation, étude de quelques logiciels commerciaux. Visualisation des solides et des surfaces ombragés, animation. Standard de programmation graphique et d'échange de données. Introduction au traitement d'image.

Préalable(s): (8INF259)

(10/2017)

6GEN720 Réseaux d'ordinateurs

Rendre l'étudiant apte à comprendre le fonctionnement, à planifier l'installation et à utiliser un réseau d'ordinateurs. Familiariser l'étudiant aux diverses couches d'implantation d'un réseau d'ordinateurs. Initier l'étudiant aux principaux protocoles de communication et de routage des messages. Familiariser l'étudiant avec les principales composantes d'un réseau d'ordinateurs. Rendre l'étudiant apte à utiliser les services de base d'un réseau à l'intérieur d'un programme.

Topologies, modèle de référence OSI, les standards, exemples de réseaux. La couche physique: supports de transmission, propagation des signaux, interfaces standards, transmission de l'information (asynchrone, synchrone, composants de communication). La sous-couche d'accès physique: les protocoles CSMA, anneau à jeton et bus à jeton (norme 802), format des trames, comparaison des performances, les réseaux à fibres optiques (FDDI). La couche liaison de données: reconnaissance de trames, contrôle des erreurs, protocoles élémentaires. La couche réseau: interconnexion (répéteurs, ponts, aiguilleurs), algorithmes de routage, les protocoles d'applications spécifiques. Couche session: modèle client-serveur, appel de procédure à distance. Couche présentation: cryptage des données. Couche application: Internet et ses protocoles.

Préalable(s): (6GEI186)

(10/2017)

8ASY109 Systèmes d'information organisationnelle

Comprendre l'importance de l'information dans le monde qui nous entoure et en particulier dans les organisations. Familiariser avec les concepts liés aux systèmes d'information et à leur intégration dans les organisations.

Notion de système d'information (SI). Les différentes technologies de l'information. Les systèmes et la systémique, l'information et la décision. La recherche d'information. La relation entre SI et organisation. Les types de SI. Les étapes du développement et introduction aux méthodologies de développement. Survol d'un progiciel de gestion intégré. Problèmes et stratégies de mise en place des SI. Gestion de l'informatique. SI, stratégie et avantages concurrentiels.

(10/2017)

8ASY200 Systèmes distribués

Se familiariser avec les stratégies utilisées dans les différents types de systèmes distribués. Revoir et approfondir les notions de protocoles. Concevoir et mettre en oeuvre des applications distribuées, notamment dans le contexte de l'Internet.

Architecture des systèmes ouverts selon ISO. Protocoles de présentation, de session et d'application. Conception d'applications distribuées: client/serveur, CORBA, DCM, WAP. Modélisation d'applications distribuées avec UML. Langages de bases du web: HTML, XML, CSS, XSL. Programmation client : JavaScript, Applet JAVA, Flash. Programmation serveur : SSI, CGI, ASP, PHP, Servlet JAVA.

Préalable(s): (8PRO114 et 8SIF120)

(10/2017)

8GIF150 Conception de jeux vidéo

Initier à la conception de jeux vidéo et aux techniques propres à leur programmation. Sensibiliser au contexte et aux pratiques de l'industrie du jeu vidéo ainsi qu'aux exigences du domaine et à la formation nécessaire pour y oeuvrer.

Historique des jeux vidéo. Définition et caractéristiques fondamentales : contexte, concepts, histoire, interface, apparence visuelle, son, monde virtuel, support, documentation et distribution. Industrie du jeu vidéo : historique, contexte, réalité et défis. Conception et développement dans un environnement commercial. Méthodes de développement et de travail en équipe. Gestion de projet. Conception de jeux. Relations entre les éléments du jeu, les règles et la jouabilité. Caractérisation des conditions initiales et de victoire. Étude des stratégies, des tactiques et de leur équilibre. Étude de cas : Échec, Go, Civilisation, Colons de Cathane, Mage Knight, etc. Techniques de base de programmation des jeux vidéo. Choix de la plate-forme technologique du langage de programmation. Modélisation du monde virtuel. Introduction à un langage de script tel que Lua, Python, etc.

(10/2017)

8GIF180 Réalisation d'un jeu vidéo

Familiariser avec tous les aspects de la réalisation d'un jeu vidéo, de l'idée à distribution. Faire connaître les enjeux et les facteurs de succès de la réalisation d'un jeu. Rendre apte à définir un concept de jeu, à l'évaluer selon les critères propres à l'industrie. Développer les compétences nécessaires à la mise en place d'une équipe de conception et de réalisation.

Définition d'un concept de jeu selon les règles de l'art et évaluation du concept. Document de concept et aspects de la réalisation du jeu : contexte, programmation, tests, commercialisation, support, ressources humaines et matérielles, gestion du projet, facteurs de risque, financement etc. Planification du développement. Démarrage d'un projet de réalisation d'un jeu (portfolio) et mise en place des mécanismes de gestion. Développement d'un prototype de jeu. Choix technologique et environnement de prototypage. Engin de développement de jeu. Langages de prototypage et de scriptage : Python, Pygame, Flash, etc.

Préalable(s): (8SIF109)

(10/2017)

8IAR125 Intelligence artificielle pour le jeu vidéo

Introduire aux techniques d'intelligence artificielle utilisées dans la conception de jeux vidéo. Utiliser ces techniques pour atteindre un haut niveau de réalisme. Mettre en oeuvre différents concepts à l'aide d'un langage de programmation orienté objet.

Application des techniques de l'intelligence artificielle au domaine des jeux vidéo. Modélisation du jeu: incertitude et dynamique du jeu, représentation de l'environnement, architecture d'agents intelligents, modélisation de comportements (d'équipes, de conduite,...) utilisation des graphes dans les jeux vidéo. Comportement des agents et choix d'actions: Heuristiques, algorithmes de recherche (tel que A*, Hill-climbing, Alpha-Beta, Minimax, etc.), applications des processus de Markov. Apprentissage et représentation de connaissances: Réseaux de neurones, réseaux bayesiens, logique classique et logique floue, systèmes à base de règles. Chaque concept sera illustré par des exemples tirés du domaine des jeux vidéo.

Préalable(s): (8INF259)

(10/2017)

8IFG145 Gestion de projets informatiques

Amener à comprendre l'importance d'une bonne gestion de projet pour le succès du développement de projets en informatique et en jeu vidéo. Familiariser avec les différentes méthodologies de développement de logiciels dont les méthodes agiles. Initier aux outils utilisés pour gérer le développement de logiciels. Amener à comprendre la relation entre l'aspect technique et l'aspect gestion. Développer des habiletés de travail en équipe, de communication et d'animation de réunions de production.

Les problèmes du développement informatique. Rôle de la gestion des projets informatiques comme partie de la solution. Établissement des exigences et validation. Méthodes de développement traditionnelles. Méthodes agiles: Extreme Programming, Scrum, etc. Choix de la méthode de développement et gestion de projets. Arborescence du projet (WBS). Échéancier et outils de gestion de projets. Suivi de projet et coordination. Gestion de la configuration et ses outils. Revues formelles. Assurance et mesure de la qualité. Amélioration de la productivité et sa mesure. Effet de l'importance des données sur le projet, la méthodologie de développement et la gestion du projet. Autres sujets connexes: la gestion des connaissances, apprentissage individuel et organisationnel en gestion de projets; le problème de l'estimation: les métriques applicables; le risque dans un projet: son estimation et sa gestion.

(10/2017)

8INF128 Conception et programmation de sites Web

Familiariser avec la méthodologie, la conception et la gestion d'un site Web.

Structure d'un document avec les langages HTML et XHTML. Structures de présentation et mise en page des diverses composantes d'un site Web avec le langage CSS. Notions de design: formats et traitement d'images, ergonomie, accessibilité, support des standards par les navigateurs. Création de pages dynamiques du côté client au moyen de JavaScript. Notions de base du réseau Internet: le protocole HTTP. Fonctionnement, gestion et configuration de base d'un serveur Web. Analyse des logs d'un serveur. Fonctionnement des moteurs de recherche. Optimisation du temps de chargement. Mise en place d'un système de gestion de contenu (CMS). Enjeux de sécurité informatique pour un utilisateur du Web: cookies, hameçonnage.

(10/2017)

8INF135 Sécurité des réseaux et du Web

Amener à comprendre les concepts de base de la sécurité informatique et de la protection de l'environnement de travail grâce à des logiciels et des protocoles de sécurité. Faire acquérir une approche pratique de la sécurité dans l'environnement de l'Internet.

Concepts de base de la sécurité informatique. Menaces. Vulnérabilité des systèmes. Survol des technologies utilisées en sécurité informatique: cryptographie, cryptanalyse, authentification, confidentialité, codes malicieux, pare-feux, audits, détection d'intrusions, etc. Principes de base pour sécuriser un environnement réseau. La taxonomie d'attaques malicieuses sur les réseaux informatiques. Les faiblesses des protocoles réseaux. Installation et configuration des outils de sécurité réseau. Protocoles de sécurité. Sécurité du Web. Concepts de politique de sécurité pour les réseaux. Étude approfondie des technologies utilisées pour la protection des réseaux informatiques. Sécurité de commerce électronique. Modèles de sécurité des langages de programmation. Vérification des mécanismes de sécurité implantés dans une organisation donnée.

Préalable(s): (8SIF120)

(10/2017)

8INF206 Projet

Concevoir, élaborer et réaliser un logiciel, ou adapter un logiciel relié au champ d'intérêt de l'étudiant.

À partir d'une problématique qu'il identifiera, l'étudiant franchira toutes les étapes de réalisation ou d'adaptation d'un logiciel. Il devra analyser le problème, le structurer et en construire une image riche. Il devra le conceptualiser sous forme modulaire et élaborer des solutions de rechange. Il devra traduire la meilleure solution dans un langage de programmation (cours terminal).

(10/2017)

8INF257 Informatique mobile

Concevoir et développer des programmes informatiques exploitant les technologies mobiles (ex.: téléphones, tablettes, etc.). Rendre capable d'exploiter efficacement les multiples senseurs des périphériques mobiles (ex.: téléphones, tablettes, etc.) afin d'offrir des services appropriés au contexte d'utilisation.

Composants et caractéristiques d'une application mobile, multithread, interfaces utilisateur, services, senseurs physiques et logiques, base de données, services basés sur la localisation, débogage, communication (wifi, Bluetooth etc).

Préalable(s): (8PRO114)

(10/2017)

8INF259 Structures de données

Poursuivre le développement des connaissances en méthodologies de résolution de problèmes et de programmation. Initier aux types abstraits de données, à leurs applications. Mettre en oeuvre des structures de données classiques et analyser leurs avantages et leurs défauts respectifs. Initier aux principes de l'algorithmique. Utiliser efficacement la librairie standard du C++ (STL).

Structures de données abstraites: piles, files, listes, arbres, graphes, tables de hachage, B-arbres. Analyse théorique et mise en oeuvre des algorithmes de gestion de ces structures: insertion, élimination, recherche, tri, etc. Analyse de l'efficacité des algorithmiques: introduction à la notation asymptotique. Introduction au langage C++: notions de classes et de modèles (templates). Organisation matérielle des fichiers: séquentielle, indexée, séquentielle-indexée. Utilisation de la STL: étude des principaux conteneurs (vector, list, stack, queue, map, set, etc.), utilisation des itérateurs (standard, constants et inversés).

Préalable(s): (8PRO107)

(10/2017)

8INF327 Modélisation et développement objet

Maîtriser les principes d'analyse et de développement logiciel suivant une méthodologie de conception des systèmes informatiques orientée objet.

Méthodes d'analyse et de conception orientées objet: modélisation avec le langage UML, procédures de factorisation de programmes orientés objet, cycle de vie du logiciel, passage de la conception à l'implantation. Concepts avancés de la méthogologie orientée objet: frameworks, métaclasses, réflexivité, introspection. Comparaison des méthodes et outils logiciels orientés objet. Utilisation avancée et application des patrons de conception (design patterns) dans un contexte applicatif réel. Génération de code : que reste-t-il à coder? Assurance qualité et techniques de tests de logiciels. Illustration des concepts à l'aide du langage JAVA.

Préalable(s): (8PRO114)

(10/2017)

8INF333 Sécurité des applications

Faire prendre conscience des risques informatiques les plus fréquents et apprendre à maitriser les outils et les bonnes pratiques de programmation permettant de les éviter. Familiariser avec le vocabulaire et les notions fondamentales nécessaires à la compréhension des problèmes de sécurité auxquels un informaticien fait face durant sa carrière.

Pourquoi la sécurité informatique est importante. Exemple de vulnérabilité. La conception sécuritaire des logiciels. Dépassements de tampon: outils et techniques de protection. Vulnérabilité de format de chaîne: représentation sur la pile des fonctions variadiques; mécanismes de détection et contremesures. Validation des entrées: injection SQL; injection de code; injection http; mécanismes de détection et contremesures. Introduction au model-checking; Analyse statique et son utilisation en sécurité: typage et sécurité des types, taint checking; assertion de sécurité, analyse de bornes. Sécurité du système d'exploitation: accès aux ressources; protection des fichiers; authentification. Tests d'évaluation de la sécurité: différence avec les tests fonctionnels; tests black-box et white-box; tests de pénétration. Les HIDS (host-bases intrusion detection systems): principes de bases; attaques par imitation. Aspects éthiques et légaux de la sécurité informatique.

Préalable(s): (8INF259)

(10/2017)

8INF341 Systèmes d'exploitation

Initier aux principaux concepts reliés aux systèmes d'exploitation des ordinateurs. Étudier l'interdépendance entre les systèmes d'exploitation et les architectures des systèmes ordinés, à l'aide d'exemples réels et simulés.

Composantes d'un système ordiné. Microprogrammation, langage machine, assemblage, compilation, interprétation, édition de liens, chargement; langage de contrôle, moniteur, utilitaires. Gestion de la mémoire: hiérarchie mnémonique, mémoire virtuelle, pagination et segmentation, protection, mémoire auxiliaire, fichiers, entrées-sorties. Gestion des processus: traitement par lots, temps réel, multiprogrammation, asynchronicité, interruptions, priorités, allocation dynamique, exclusion mutuelle, listes d'attente, ordonnancement, retard indéfini. Évaluation, embouteillages, vérification formelle, modèles statistiques et autres, initialisation et récupération, sécurité, réseaux, comptabilité. Exemples: VAX/VMS, MS-DOS, UNIX, etc. Simulation ou implantation de fragments d'un système sur un ordinateur.

Préalable(s): (8INF259)

(10/2017)

8INF433 Algorithmique

Faire comprendre la notion de complexité du traitement informatique. Étudier les différentes techniques permettant d'analyser l'efficacité des algorithmes. Rendre apte à concevoir et implanter des algorithmes efficaces.

Analyse: Complexité de temps et d'espace, notation asymptotique, résolution d'équations de récurrence. Conception: Algorithmes voraces, méthode diviser-pour-régner, programmation dynamique, algorithmes probabilistes et parallèles. Problèmes indécidables et intraitables. NP-complétude.

Préalable(s): ((8INF259 et 8MAP107) ou (8MAT122 et 8SIF109))

(10/2017)

8INF700 Sujet spécial en informatique

Permettre à l'étudiant de bénéficier d'une formation adaptée.

Le contenu est variable selon les besoins des étudiants et l'expertise professorale disponible.

(10/2017)

8INF713 Informatique théorique

Étudier les fondements théoriques de l'informatique afin de comprendre quelles sont les propriétés et les limites des ordinateurs.

Formalisation des notions de problème et de langage. Automates finis, expressions régulières et langages réguliers. Automates à pile et langages hors-contextes. Machines de Turing, langages récursifs et récursivement énumérables. Indécidabilité. Réductibilité. Classes de complexité. Hiérarchies.

Préalable(s): (8INF259 et 8MAT122)

(10/2017)

8MAP107 Calcul avancé I

Comprendre les notions et les outils du calcul différentiel à plusieurs variables, en particulier la dérivée vectorielle, le gradient et la dérivée directionnelle, avec une insistance sur les interprétations géométriques et physiques.

Introduction aux équations différentielles: exemples, ordre d'une équation, équations linéaires. Équations différentielles linéaires d'ordre 1: facteur intégrant, problème de valeur initiale, comportement à l'infini, représentation graphique, champ de directions. Les vecteurs de Rn et les vecteurs géométiques: repère cartésien, vecteur position d'un point, norme et distance, coordonnées polaires. Produits scalaire, vectoriel et mixte: propriétés, interprétations géométrique et physique (travail, moment vectoriel, flux). Projections scalaire et vectoriel d'un vecteur. Différentes équations d'une droite et d'un plan: paramétrique, normal-point et algébrique. Introduction aux nombres complexes. Fonctions vectorielles d'une variable: courbes paramétrées, hélices circulaire et elliptique, cubique gauche, intersection d'un plan et d'un cylindre conique, trajectoire d'une particule, dérivée et règles de dérivation, vecteur tangent, intégrale définie, intégration et condition initiale, longueur d'arc, vecteurs vitesse et accélération, vitesse et accélération. Fonctions scalaires: relation entre variables, fonction de plusieurs variables et graphe, surface de révolution, les quadriques, courbes et surfaces de niveau, limite et continuité, dérivées partielles et dérivée le long d'une droite parallèle à un axe, dérivée directionnelle et dérivée le long d'une droite orientée, vecteur gradient et interprétation géométrique, variation optimale d'une fonction, dérivation des fonctions composées et dérivée le long d'une courbe orientée, plan tangent à une surface définie par une relation, plan tangent à une graphe et approximation linéaire, dérivées partielles d'ordre supérieur, introduction à l'optimisation (extremums locaux, points critiques, test de dérivées secondes, ensemble fermé et borné, frontière, extremums globaux, multiplicateurs de Lagrange). Utilisation de la différentielle totale pour le calcul d'erreurs. Formules et séries de Taylor à une et deux variables : approximations d'une fonction. Applications en ingénierie: principe de superposition des forces et des vecteurs vitesse, les 3 lois de Newton, intégration de la deuxième loi de Newton et conditions initiales, vecteurs accélérations normale et tangentielle, topographie, équations de Laplace, de la chaleur et des ondes. Utilisations d'un logiciel de calcul.

(10/2017)

8MAT122 Structures discrètes

Connaître diverses structures et méthodes mathématiques utilisées en mathématiques, en informatique et en recherche opérationnelle.

Éléments de la logique: propositions, quantificateurs, prédicats, déduction. Éléments de la théorie des ensembles: relations, opérations et fonctions. Éléments de la combinatoire: nombre, induction, comptage, énumération. Éléments de la théorie des graphes: arbres, treillis, traversées. Structures algébriques de base: monoïdes, algèbre de Boole, groupes. Applications à l'informatique: numéros, langages, automates, circuits logiques, codes.

(10/2017)

8PRO114 Programmation orientée objet

Familiariser avec le paradigme de la programmation orientée objet (POO). Faire connaître les outils de développement objet. Réaliser des applications informatiques basées sur l'approche de la programmation objet.

Notions de base relatives à la méthodologie orientée objet : type abstrait de données, classe, objet, héritage simple et multiple, objet complexe, les mécanismes d'abstraction et de paramétrisation en POO, surcharge, généricité, polymorphisme, etc. Introduction aux aspects avancés reliés au développement logiciel suivant une méthodologie orientée objet: utilisation des patrons de conception (design patterns), la refactorisation, la mesure de qualité et les tests unitaires, etc. Qualités d'un langage de classe : modularité, réutilisabilité, extensibilité et maintenance. Initiation au langage de modélisation UML. Technologies orientées objet. Illustration des concepts en utilisant le langage C++.

Préalable(s): (8INF259)

(10/2017)

8PRO139 Programmation client/serveur

Permettre de maîtriser le modèle, l'architecture et la programmation client/serveur dans l'environnement de l'Internet.

Survol des principaux protocoles client/serveur sur TCP/IP. Architectures client-serveur sur Internet. Méthodologie de conception et d'implémentation de logiciels clients et serveurs. Clients et serveurs itératifs et concurrentiels. Langages de base du Web: HTML, XHTML, XML, CSS, XSL. Approfondissement des notions de protocole: HTTP (Get et Post). Développement des logiciels orientés client (CSI): technologies Applets et Ajax. Développement de logiciels orientés serveur (SSI): la passerelle CGI (C, VB, PHP, PERL); technologies Java Servlet et JSP (Java Server Pages) et ASP.Net. Le développement par composant (java beans, taglib, service Web). Les technologies du Web (ex. SOAP et RESTful). Plateformes distribuées: Spring, SharPoint. Les applications Web et les bases de données: JDBC, ODBC. L'intérêt et la problématique des agents.

Préalable(s): (8PRO114)

(10/2017)

8ROP515 Recherche opérationnelle

Fournir une connaissance des approches et des outils modernes permettant de modéliser et de solutionner différents problèmes d'optimisation.

Approches exactes: programmation linéaire, programmation linéaire en nombres entiers, programmation dynamique. Approches spécifiques à des problèmes de réseaux: gestion de projet, transport, affectation, le plus court chemin, flot maximal, flot à coût minimal, etc. Approches heuristiques: heuristiques simples et méthodes d'intelligence artificielle. Simulation. Problèmes de satisfaction de contraintes (CSP). Utilisation de logiciels et applications.

Préalable(s): ((8INF259 et 8MQG210) ou (8INF259 et 8STT105))

(10/2017)

8STT105 Probabilité et statistique I

Présenter les principes fondamentaux des probabilités et de ses applications à la statistique. Développer une appréciation du rôle des modèles probabilistes dans les sciences et dans le monde du travail en général.

Probabilité. Variables aléatoires. Lois discrètes. Lois continues. Statistiques descriptives. Estimation ponctuelle et par intervalles. Tests d'hypothèses. Comparaisons de moyennes. Test du khi-deux.

(10/2017)

8TRD149 Introduction aux bases de données

Connaître les différentes composantes des bases de données, leurs niveaux d'abstraction et les techniques d'organisation des données en mémoire secondaire. Développer un logiciel en Java et PL/SQL utilisant une base de données en passant par toutes les étapes de conception. Introduire aux principaux concepts des systèmes de gestion de bases de données relationnelles.

Historique des types de SGBD (Hiérarchique, Réseau, Relationnel et Relationnel/Objet), Les grands fabricants de SGBD et les produits du logiciel libre, processus de conception de BD relationnelle: analyse, modélisation conceptuelle et introduction à la théorie de la normalisation. Les bases du langage SQL pour la définition des données (LDD), la manipulation des données (LMD) et le contrôle des données (LCD). Extensions procédurales de SQL pour l'interface entre les bases de données et les programmes d'application Java (SQLJ, JBDC et PL/SQL). Gestion des données en mémoire secondaire et organisation unidimensionnelle des données. Étude et expérimentation d'un SGBD réel. Utilisation d'un système de gestion de bases de données d'entreprise (Oracle). Réalisation d'un travail de conception et d'exploitation d'une base de données.

Préalable(s): ((8INF259) ou (8TRD134))

(10/2017)

8TRD157 Bases de données avancées

Faire connaître les composants avancés des bases de données: bases de données multimédia (Textes, Images et XML) et bases de données pour le commerce électronique (centralisées et/ou client/serveur). Introduire aux concepts avancés des systèmes de gestion de bases de données relationnelles. Initier aux architectures de bases de données impliquées dans le commerce électronique. Approfondir les concepts de modélisation, de conception, d'implantation et d'administration de bases de données hétérogènes centralisées ou réparties auxquelles on peut accéder par des applications conventionnelles ou en mode client/serveur (intranet ou Internet).

Introduction aux bases de données multimédia: 1) base de données de gestion documentaire: types de données multimédia, modèle relationnel-objet, requêtes multimédia (ABR, CBR et CBIR), méthodes de classification, d'indexation et de segmentation des données multimédia. Particularités des techniques de requêtes, présentation et conception des BDMM texte, image et XML. Méthodes d'interrogation et de manipulation des bases de données multimédia (SQL3). Réalisation d'un système d'applications multimédia dans un environnement multi-analystes et multi-usagers selon une approche centralisée et client-serveur en passant par toutes les étapes de conception. Problèmes d'intégrité des données. Problématique des bases de données pour le commerce électronique et stratégies d'accès par intranet ou Internet aux bases de données de production. Particularités des méthodes d'accès et techniques de protection de l'intégrité des données. Liaison de tables locales clientes avec des tables externes par un protocole normalisé (ex. odbc, ...) ou propriétaire (ex. Net8). Concepts d'importation, d'exportation et d'attache de tables. Stratégies de réplication synchrone et asynchrone. Configuration d'un environnement répliqué et le concept maître - esclave. Gestion des collisions et les mécanismes de solution. Règles de répartition des données et des fonctions dans un environnement client/serveur. Solutions propriétaires et publiques pour la compatibilité http-html-sql-dbms (ex. PHP, JSS,...).

Préalable(s): (8TRD149)

(10/2017)