0711

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

Responsable : Bruno Bouchard
Regroupement de programmes : Module d'informatique et de mathématique
Secrétariat : (418) 545-5011, poste 5273
Coordonnatrice : Justine Lévesque
Coordonnatrice : Stéphanie Girard
Adresse électronique : sm_informatique-mathematique@uqac.ca
Grade :

Présentation du programme

Ce programme court s'adresse aux personnes inscrites dans un établissement universitaire à l'étranger qui désirent poursuivre une partie de leurs études à l'UQAC.

Objectifs

Ce programme court vise à offrir une structure d'accueil et d'encadrement aux étudiants qui séjournent à l'UQAC dans le cadre de programmes d'échanges.

Le programme permet de contribuer à la formation universitaire des étudiants, notamment sur le plan de l'acquisition des connaissances, du développement de l'autonomie et de l'esprit d'initiative.

Il permet également de valoriser les études faites au Québec par la délivrance d'un relevé de notes.

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.

Règles relatives au français

Les modalités et les règles qui régissent l'attestation de la maîtrise du français telles que résumées ci-dessous, sont définies dans la Politique et la Procédure relative à la valorisation du français.

Règlement relatif aux exigences liées à l'admission pour les candidats dont la langue maternelle n'est pas le français

Toute candidate ou tout candidat a un programme identifié, dont la langue maternelle n'est pas le français, est tenu de se soumettre au Test de français international (TFI) avant le début de son parcours universitaire à l'UQAC. Il est à noter que les candidates et les candidats en protocole d'échange provenant d'une université partenaire et dont la langue d'enseignement est le français, de même que les candidates et les candidats des Premières Nations sont exemptés de cette obligation.

Également, certaines candidates et certains candidats dont la langue maternelle n'est pas le français peuvent être exemptés de cette obligation lorsqu'ils répondent à l'une ou l'autre des exemptions prévues à la procédure ci-haut.

Règles administratives

L'admission au programme se fait aux trimestres d'automne et d'hiver.

Le programme d'études est offert à temps complet.

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.

Les programmes d'une durée de moins de trois mois ainsi que les programmes offerts uniquement à temps partiel ne sont pas reconnus pour l'attribution de prêts et de bourses.

Structure du programme

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

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
6GEI264Vérification et validation des logiciels (8PRO128)
6GEN723Réseaux d'ordinateurs (6GIN101 et 8INF259)
8GIF150Conception de jeux vidéo
8GIF185Réalisation d'un jeu vidéo (8INF259)
8INF257Informatique mobile (8PRO128)
8INF259Structures de données (8PRO107)
8INF333Sécurité des applications (8INF259)
8INF334Modélisation et développement objet (8PRO128)
8INF342Systèmes d'exploitation (8INF259)
8INF435Algorithmique (8INF259 et 8MAT122)
8MAP107Calcul avancé I
8MAT122Structures discrètes
8PRO128Programmation orientée objet (8PRO107)
8TRD151Introduction aux bases de données

Pour les étudiants admis au trimestre d'automne

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

6GEI186Architecture des ordinateurs
8ASY109Systèmes d'information organisationnelle
8ASY200Systèmes distribués (8PRO128 et 8SIF120)
8GIF150Conception de jeux vidéo
8GIF185Réalisation d'un jeu vidéo (8INF259)
8IAR125Intelligence artificielle pour le jeu vidéo (8INF259)
8IFG147Gestion de la production dans l'industrie du numérique
8INF138Sécurité des réseaux et du Web
8INF259Structures de données (8PRO107)
8INF422Systèmes distribués (6GEN723 et 8INF342)
8INF713Informatique théorique (8INF259 et 8MAT122)
8MAP107Calcul avancé I
8MAT122Structures discrètes
8PRO128Programmation orientée objet (8PRO107)
8ROP515Recherche opérationnelle ((8INF259 et 8MQG210) ou (8INF259 et 8STT117))
8STT117Probabilité et statistique
8TRD157Bases de données avancées (8TRD151)
8WEB101Conception et programmation de sites Web

Pour tous les étudiants

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

8INF206Projet
8INF700Sujet spécial en informatique

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

2MAN115Principes de management
2MAR120Principes de 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

2MAN115 Principes de management

Offrir des cadres de référence permettant d'intégrer les autres notions qui seront progressivement acquises durant le programme. Plus particulièrement, 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 face aux problèmes de management, ainsi que l'aptitude à les résoudre.

L'évolution des théories de management du 19e siècle à nos jours. L'organisation et son environnement (local, national et international). Perspectives classique et contemporaine des éléments du processus de management: planification (processus de planification, management stratégique), organisation (structure, dotation et GRH), direction (leadership, changement organisationnel) et contrôle (types et systèmes de contrôle).

Formule pédagogique : Cours Magistral

(03/2024)

2MAR120 Principes de marketing

Permettre la découverte, l'apprentissage et la connaissance des principaux concepts fondamentaux reliés au marketing. Permettre de comprendre les raisons d'être de la fonction marketing au sein de l'organisation et du monde des affaires.

É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, produit-service, distribution, prix, communication, analyse de la concurrence et positionnement, comportement du consommateur, et approche orientée vers les marchés.

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Cours Magistral

(03/2024)

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): (8PRO128)

Formule pédagogique : Cours Magistral

(03/2024)

6GEN723 Réseaux d'ordinateurs

Comprendre le fonctionnement, planifier l'installation et utiliser un réseau d'ordinateurs. Se familiariser aux diverses couches d'implantation d'un réseau d'ordinateurs. S'initier aux principaux protocoles de communication et de routage des messages. Se familiariser avec les principales composantes d'un réseau d'ordinateurs. 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 transport: modèle client-serveur, appel de procédure à distance. Couches sessions et présentation, cryptage des données. Couche application, Internet et ses protocoles.

Préalable(s): (6GIN101 et 8INF259)

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Cours Magistral

(03/2024)

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): (8PRO128 et 8SIF120)

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

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

Se familiariser avec tous les aspects de la réalisation d'un jeu vidéo, de l'idée à la distribution. Faire connaître les enjeux et les facteurs de succès de la réalisation d'un jeu. Effectuer l'ensemble des étapes relatives à la pré-production d'un jeu. Développer les compétences nécessaires à la mise en place d'une équipe de développement d'un jeu vidéo. Préparer un projet de jeu complet, incluant un prototype, pour validation devant jury.

Définition d'un concept de jeu suivant le modèle de l'industrie. Revue des éléments propres à la réalisation d'un jeu, de l'idée au déploiement : contexte, programmation, tests, commercialisation, support, ressources humaines et matérielles, gestion du projet, facteurs de risque, financement, etc. Réalisation de la phase de pré-production en vue des cours subséquents d'atelier de production. Démarrage d'un projet de production d'un jeu (portfolio) et mise en place des mécanismes de gestion (logiciel de gestion de projet, système de gestion des versions et de partage de code). Élaboration d'un prototype de jeu avec un moteur de jeu (ex. Unity 3D ou UDK). Présentation d'un projet devant un jury avec la pré-production complétée afin d'obtenir l'approbation de la phase de production.

Préalable(s): (8INF259)

Formule pédagogique : Cours Magistral

(03/2024)

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)

Formule pédagogique : Cours Magistral

(03/2024)

8IFG147 Gestion de la production dans l'industrie du numérique

Comprendre l'importance d'une bonne gestion de projets dans le domaine du développement de jeu vidéo. Développer la compréhension de la méthodologie Agile et du cadre de référence Scrum. Connaître les rôles, artéfacts et rituels Scrum. Comprendre la planification, le découpage et l'estimation des coûts de projet avec la méthode Agile. S'initier à la gestion d'équipes. Parfaire ses habiletés de communication et de résolution de conflits. Se familiariser avec la gestion de risques.

La production de jeux vidéo avec l'approche Agile/Scrum. Les trois piliers de Scrum : transparence, inspection et adaptation. La notion de rituel/point de contrôle et des « timebox ». L'aspect adaptatif et empirique de l'approche. Organisation du travail. Les rôles : Scrum Master, Product Owner et équipe multidisciplinaire de développement. Les rituels de planification : Release Planning et Sprint planning. Les trois points d'inspection et d'adaptation : rencontre quotidienne, revue de jeu et rétrospective. Les cinq artéfacts. Outils informatisés pour la gestion de projets (ex. Teams, Trello, Jira). Optimisation de la boucle de production Agile/Scrum. Définir le périmètre (scope) d'un projet en Agile/Scrum. Découper les fonctionnalités et estimer en continue en approche adaptative pour une production structurée et efficace. Définir son « backlog » de produit et son « backlog » de Sprint. L'équipe de projet : optimisation du processus de coordination des ressources. La nature d'une équipe de projet : bloquants et spécificités. La communication avec l'équipe et avec les individus : les stratégies. La gestion et la répartition de son temps. La gestion de projets à grande échelle en Agile/Scrum. Problématiques liées aux grandes équipes lors de l'utilisation d'approches Agiles. Modèles de gestion Agile à grande échelle : Nexus, LeSS, Spotify, Scrum of Scrum, Safe, etc. Évolution à venir dans le futur au niveau de la gestion de projets dans le secteur du numérique.

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

8INF138 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.

Formule pédagogique : Cours Magistral

(03/2024)

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).

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

8INF257 Informatique mobile

L'objectif du cours est d'amener les étudiants au cœur de la problématique de conception et du développement d'applications mobiles. L'étudiant sera en mesure 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.). Développement logiciel d'applications mobiles avec les langages et librairies utilisés en industrie.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

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)

Formule pédagogique : Cours Magistral

(03/2024)

8INF333 Sécurité des applications

Comprendre l'ensemble des pratiques, des vérifications et des prudences que devraient utiliser les informaticiens afin que leur code soit sécuritaire. Se familiariser avec les principes théoriques ainsi que les approches pratiques qui mènent à la création de codes robustes.

Enjeux liés au code de programmation en rapport à la sécurité informatique. Exemple de vulnérabilité du code. La conception sécuritaire des logiciels. Dépassements de tampon: outils et techniques de protection. Validation des entrées: injection SQL. Sécurité du système d'exploitation: accès aux ressources; protection des fichiers; authentification. Le déni de services : erreurs de programmation qui sont à leurs origines, l'attaque ReDoS et les contremesures. Le contrôle d'accès et la sécurisation des informations sensibles. Vulnérabilités dans manipulation de la mémoire et des types. Vulnérabilités introduites dans le processus de compilation. La génération des nombres aléatoires. Présentation d'études de cas réels, ainsi que des bonnes pratiques pour le développeur logiciel. Familiarisation avec les avancées scientifiques récentes dans ce domaine.

Préalable(s): (8INF259)

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

8INF334 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éthodologie orientée objet: frameworks, métaclasses, réflexivité, introspection. Comparaison des méthodes et outils logiciels orientés objet. Utilisation 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): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

8INF342 Systèmes d'exploitation

Initier aux principaux concepts reliés aux systèmes d'exploitation des ordinateurs. Étudier les concepts fondamentaux des systèmes d'exploitation, à l'aide d'exemples pratiques et simulés. Introduction à Linux et aux commandes de base dans le terminal. Gestion des processus sous Linux.

Historique et composantes principales des systèmes d'exploitation. Gestion des processus : définition et concept, modèles de processus, états des processus, modes d'exécutions du CPU, clonage en Linux. Threads : définition et concept, multithreading, avantages, threads niveau utilisateur et niveau kernel. Synchronisation : situation de course, exclusion mutuelle, mécanismes de synchronisation, sémaphores, problèmes classiques de synchronisation. Interblocage : diagrammes de trajectoire des ressources, graphe d'allocation des ressources, gestion, prévention et détection des interblocages. Ordonnancement : long-terme, moyen-terme (swapping) et court-terme (dispatcher), priorités, politiques d'ordonnancement, ordonnancement multiprocesseur et multicœur. Mémoire : concepts-clés, partitionnement simple et dynamique, mémoire virtuelle, pagination, segmentation, traduction des adresses, tables de page. Gestion de la mémoire : algorithmes de remplacement des pages. Systèmes de fichiers et entrées/sorties : gestion de la mémoire secondaire, DMA, accès aux disques. Illustration pratique et application des notions en C++.

Préalable(s): (8INF259)

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

8INF422 Systèmes distribués

Permettre à l'étudiant de maîtriser et approfondir les principes des échanges et de communication des systèmes distribués à base objet, composant et service. Approfondir les notions de protocoles de présentation, de session et d'application.

Modèles et architectures des applications réparties: client-serveur, deux-tiers, trois-tiers, peer-to-peer, code mobile, Grid et cloud computing. Plateformes distribuées et types de middlewares. Types de communication : par message, par procédure, et par objet. Modélisation d'applications distribuées avec UML. Développement des applications distribuées à l'aide d'un paradigme model-vue-contrôleur, notamment dans le contexte de l'Internet. Traitement du côté client versus traitement du côté serveur, contrôle de session, gestion des formulaires, contrôle des erreurs. Concepts d'applications riches (AJAX). Concept de services Web (SOAP) et de ressources (R).

Préalable(s): (6GEN723 et 8INF342)

Formule pédagogique : Cours Magistral

(03/2024)

8INF435 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 8MAT122)

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

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)

Formule pédagogique : Cours Magistral

(03/2024)

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étriques: 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 vitesses, 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.

Formule pédagogique : Cours Magistral

(03/2024)

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.

Formule pédagogique : Cours Magistral

(03/2024)

8PRO128 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. Qualités d'un langage de classe : modularité, réutilisabilité, extensibilité et maintenance. Refactorisation. Initiation au langage de modélisation UML. Technologies orientées objet. Illustration des concepts en utilisant le langage C++.

Préalable(s): (8PRO107)

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

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 8STT117))

Formule pédagogique : Cours Magistral

(03/2024)

8STT117 Probabilité et statistique

Présenter les principes fondamentaux des probabilités et de 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.

Concepts de population, échantillon, variable aléatoire et processus stochastique. Statistique descriptive. Moyenne mobile et exponentielle. Probabilité. Principales lois de probabilité paramétrique et non-paramétrique. Lois Bernoulli, uniforme, normale. Processus et loi de Poisson. Loi empirique. Estimation par noyau. Test d'hypothèse. Comparaison de deux proportions. Régression linéaire simple. Méthode de Monte Carlo. Introduction à la modélisation et simulation. Une partie des exemples et des exercices seront réalisés en Python.

Formule pédagogique : Cours Magistral

(03/2024)

8TRD151 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. 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.

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)

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): (8TRD151)

Formule pédagogique : Cours Magistral

(03/2024)

8WEB101 Conception et programmation de sites Web

Se familiariser avec la méthodologie, la conception et la gestion d'un site Web. Comprendre les notions de base du Web et de l'approche client-serveur.

Origines et évolution des technologies du Web. Notions de base du réseau Internet: adressage, protocole TCP/IP, fonctionnement du protocole HTTP. Architecture client-serveur. Structure d'un document avec le langage HTML. Présentation et mise en page des diverses composantes d'un site Web avec le langage CSS. Éléments dynamiques côté client: animations, utilisation élémentaire du langage JavaScript. Notions de design: formats et traitement d'images, ergonomie, accessibilité, support des standards par les navigateurs, optimisation du temps de chargement. Fonctionnement des moteurs de recherche. Configuration et gestion de base d'un serveur web; compilation de statistiques à partir des logs d'un serveur. 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.

Formule pédagogique : Magistral et/ou formation à distance

(03/2024)