4202

Certificat en informatique

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 :

Résumé de l'évaluation périodique du programme (en 2012)

Objectifs

Utilisé comme certificat ou comme mineure, ce programme offre une formation universitaire de base en informatique, tout en confrontant l'étudiant aux nouvelles technologies, et veut permettre à des étudiants inscrits dans un programme de majeure, autre qu'en informatique, de faire un baccalauréat en se donnant une compétence en informatique.

Note:

Pour les fins d'émission d'un grade de bachelier par cumul de certificats, le secteur de rattachement de ce programme est «SCIENCES APPLIQUÉES».

Conditions d'admission

Base Études collégiales (DEC)

Être titulaire d'un diplôme d'études collégiales (DEC) ou l'équivalent;

ou

Base Préparation suffisante

Posséder les connaissances et les compétences jugées suffisantes pour la poursuite d'études dans le programme. Le candidat peut être invité à se présenter à une entrevue et à passer un test d'admission. Le candidat peut se voir imposer une formation préparatoire;

ou

Base Études universitaires

Avoir réussi quinze (15) crédits de niveau universitaire avec une moyenne cumulative d'au moins 2,3/4,3.

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ègle administrative

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

Règlements pédagogiques particuliers

Tout cours crédité dans un programme de mineure ne peut être à la fois crédité dans un autre programme de majeure menant à l'obtention d'un même baccalauréat et vice versa.

Note :

Lorsqu'un ou des cours obligatoires de la majeure auront été suivis et réussis dans le cadre d'un certificat ou mineure, l'étudiant complètera sa formation par l'ajout d'un nombre de cours optionnels correspondant au nombre de cours obligatoires déjà crédités à son dossier.

Reconnaissance des acquis

En vertu de l'article 86 du Règlement des études de premier cycle de l'UQ, les études collégiales techniques peuvent conduire à des reconnaissances d'acquis pour certains cours. Pour en savoir plus.

Le candidat qui désire obtenir une reconnaissance de ses acquis sur la base de sa formation antérieure ou de son expérience professionnelle doit faire une demande au Bureau du registraire à la suite de la confirmation de son admission en conformité avec la Procédure relative à la reconnaissance des acquis et des compétences.

PARTICULARITÉS POUR LE PROGRAMME:

Structure du programme

Ce programme comprend trente (30) crédits répartis comme suit:

(*) Les cours entre parenthèses sont préalables.

Plan de formation

Cours obligatoires

Les quatre cours suivants (douze crédits)

8INF111 Environnements de développement en informatique
8INF241 Multimédia: concepts et méthodes ((8PRO107) ou (8PRO140))
8INF259 Structures de données (8PRO107)
8PRO107 Éléments de programmation

Cours optionnels

Cinq cours parmi les suivants (quinze crédits)

6GEI340 Génie logiciel: composants et réutilisation (8INF259 et 8PRO114)
6GEN536 Génie logiciel: processus et événements (6GEI340)
8ALG135 Algèbre linéaire
8ASY109 Systèmes d'information organisationnelle
8GIF128 Conception et programmation de sites Web (8PRO107)
8INF206 Projet
8INF327 Modélisation et développement objet (8PRO114)
8INF341 Systèmes d'exploitation (8INF259)
8INF713 Informatique théorique (8INF259 et 8MAT122)
8MAP107 Calcul avancé I
8MAP109 Calcul numérique et symbolique
8MAP111 Calcul avancé II (8MAP107)
8MAT122 Structures discrètes
8PRO102 Langages de programmation (8INF259)
8PRO114 Programmation orientée objet (8INF259)
8SIF107 Programmation en assembleur (8PRO107)
8SIF120 Fondements, architecture et programmation réseau (8INF259)
8SIF135 Sécurité informatique (8SIF120)
8STT105 Probabilité et statistique I
8TRD134 Gestion de fichiers (8PRO107)
8TRD149 Introduction aux bases de données ((8INF259) ou (8TRD134))

Cours d'enrichissement

Un cours d'enrichissement (trois crédits)

DESCRIPTION DES COURS

6GEI340 Génie logiciel: composants et réutilisation

Donner les éléments essentiels du génie logiciel afin d'être en mesure de concevoir des logiciels simples et de qualité et d'aborder les concepts avancés d'architecture des logiciels.

Introduction aux composants et à l'ingénierie du logiciel: spécification des besoins, architecture, analyse, conception, codage, tests formels. Caractéristiques du produit informatique et des composants. Réutilisation, normes de codage, style, règles de conception. Documentation des logiciels et utilisation de «doxygen». Réutilisation et STL - Standard Template Library. Concept de composants en POO. Structure physique des composants et encapsulation. Revue des mécanismes d'encapsulation en C/C++. Composition versus héritage. Techniques de test, traitement des erreurs. Composants et interface utilisateur - GUI. Composants commerciaux et concept d'interfaces. Component Object Model - COM. Indépendance du langage et de la plate-forme. Modèle client, serveur «in-process». Librairies dynamiques. Aspects éthiques du développement des logiciels.

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

(10/2017)

6GEN536 Génie logiciel: processus et événements

Donner à l'étudiant les méthodes de conception associées aux systèmes pilotés par événement.

Techniques de programmation et de test: algorithmes de gestion des événements, pilotage événementiel, schémas d'architecture et d'interface, modèle d'un composant piloté par événement, utilisation d'automates, techniques de test, programmation multi-processus et «thread», partage des ressources, blocage, priorités, événements dans le système d'exploitation et les réseaux.

Méthodes de conception et applications: interface usager, communication interprocessus, simulation par événement, systèmes en temps réel.

Préalable(s): (6GEI340)

(10/2017)

8ALG135 Algèbre linéaire

Introduire les concepts et les résultats de base de l'algèbre linéaire et ainsi développer une maîtrise raisonnable des modes de raisonnement, des méthodes de calcul et des heuristiques, propres à ce domaine. Introduire l'aspect historique par l'étude de situations ayant nécessité l'emploi de l'algèbre linéaire.

Matrices. Systèmes d'équations. Systèmes d'inéquations linéaires. Espaces vectoriels réels: dépendance linéaire, indépendance linéaire, bases, dimensions, applications linéaires, représentations matricielles. Déterminants, valeurs et vecteurs propres, diagonalisation.

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

8GIF128 Conception et programmation de sites Web

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

Le réseau Internet et ses principaux protocoles. Normes HTML et XML. Principes ergonomiques de base. Types, modèles et conception d'architecture de sites. Structures de présentation et mise en page des diverses composantes d'un site Web. Création d'un site. Méthodologie de création et de diffusion de sites Web par l'utilisation de logiciels spécialisés. Les logiciels serveurs et clients accessibles par une page html. Les interfaces clients et serveurs. Éléments de html dynamiques. Élaboration de sites Web interactifs. Intégration d'éléments multimédia et de ressources. Intégration des CSS (feuilles de styles) simples. Introduction à la sécurité d'un site Web. Gestion d'un site. Connexion à une base de données. Utilisation des formulaires.

Préalable(s): (8PRO107)

(10/2017)

8INF111 Environnements de développement en informatique

Introduire à l'informatique, à ses champs d'études et ses domaines d'application. Familiariser avec l'utilisation des systèmes d'exploitation, les outils de développement ainsi que les technologies de l'Internet.

Les différents champs disciplinaires: algorithmes et structures de données, réseaux, service Web, systèmes d'information, sécurité, bases de données, intelligence artificielle, infographie, théorie du calcul, etc. Structure et fonctionnement d'un ordinateur, réseaux d'ordinateurs, protocoles sftp, ssh, etc. Initiation aux systèmes d'exploitation: rôle du système d'exploitation, systèmes multi-taches et multi-usagers, fichiers et répertoires, processus (avant-plan et arrière-plan), interfaces graphiques (X-Windows, Linux, Windows). Outils de développement: interpréteurs de commandes (shells), compilation et édition des liens, sécurité, éditeurs, expressions régulières, outils de recherche et de traitement de fichiers (e.g. find, sed, awk sur UNIX), scripts et programmation d'un interpréteur de commande. Initiation au développement Web : protocole http. Introduction aux concepts de sécurité informatique : encryption, pare-feu, virus, encodage des données. Utilisation des systèmes de documentation en informatique (man, bibliothèque MSDN, etc.)

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

8INF241 Multimédia: concepts et méthodes

Initier à l'utilisation et à la compréhension des concepts et des environnements multimédias.

Compréhension théorique et pratique des représentations analogiques et numériques. Relations entre la vue et l'ouïe. Introduction aux normes de codage audio et vidéo. Compréhension de base des composants: texte, audio analogique et numérique, image numérisée, graphique (bit map et vectoriel), vidéo analogique et numérique, animations 2D, 3D. Introduction aux algorithmes de compression: objectifs, normes. Compréhension des compromis quantitatifs et qualitatifs. Mesure d'impact du multimédia sur les plans du traitement, du stockage, de l'affichage et du transport. Initiation aux technologies matérielles et logicielles de support. Initiation aux méthodes de synchronisation. Initiation à la scénarisation. Conception d'applications multimédia à échelle réduite. Production de disque compact.

Préalable(s): ((8PRO107) ou (8PRO140))

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

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)

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)

8MAP109 Calcul numérique et symbolique

Familiariser avec l'utilisation de l'ordinateur comme outil de résolution de problèmes mathématiques.

Choix d'un logiciel. Environnement: feuille de travail, sauvegarde de fichier, aide, bibliothèques. Notions de base: représentation des nombres, variables, fonctions, listes, vecteurs, matrices, opérations sur les types de base. Programmation: structures de contrôle, routines, algorithmes. Calcul symbolique et numérique: résolution d'équations et de systèmes d'équations, approximation, limites, dérivation, intégration, représentation graphique en dimensions 2 et 3, algèbre vectorielle et matricielle. Applications à des thèmes au choix: algèbre linéaire, développements finis, suites et séries, équations différentielles, géométrie de l'espace, polynômes, optimisation, programmation linéaire, théorie des graphes, statistiques.

(10/2017)

8MAP111 Calcul avancé II

Familiariser avec les notions d'intégrales multiples, curvilignes et de surfaces, de nombres et de variables complexes et de fonctions de variables complexes permettant ainsi de les utiliser pour des applications en ingénierie.

Fonctions vectorielles de plusieurs variables: coordonnées cylindriques et sphériques, cylindres et solides cylindriques, sphères et boules, surfaces et solides paramétrés, taux de variation le long d'une courbe orientée et matrice jacobienne, plans tangents à une surface paramétrée. Intégrales multiples : rappel sur l'intégrale simple, principe de Cavalieri, intégrales doubles et triples, changement de variables, applications au génie, méthodes numériques (méthodes des rectangles, du trapèze et de Simpson). Intégration vectorielle: intégration de champs scalaire et vectoriel et interprétations, travail d'une force et circulation d'un champ vectoriel, intégrale d'une surface d'un champ scalaire et d'un champ vectoriel, flux d'un champ vectoriel, applications au génie. Théorèmes fondamentaux en analyse vectorielle: divergence et rotationnel, théorèmes de Green et de Stokes, champs conservatifs et potentiel scalaire, théorème de divergence, flux et divergence, champs solénoïdaux et potentiel vecteur, applications au génie. Fonctions d'une variable complexe : les nombres complexes (plan complexe, algèbre des nombres complexes), fonctions d'une variable complexe, fonctions exponentielle et trigonométriques, fonction logarithmique et puissances complexes. Applications au génie. Utilisations d'un logiciel de calcul.

Préalable(s): (8MAP107)

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

8PRO102 Langages de programmation

Amener à la compréhension de la chaîne de production d'un programme. Faire acquérir les connaissances permettant de choisir un langage de programmation en fonction du problème à résoudre.

Paradigmes de programmation : structurée (C, Cobol), événementiel (ADA, VisualBasic), fonctionnel (Lisp), logique (Prolog), orienté objet (C++, Java). Compilation. Interprétation des scripts. Systèmes experts (Clips).

Préalable(s): (8INF259)

(10/2017)

8PRO107 Éléments de programmation

Initier au langage de programmation C++ tout en développant la créativité et l'esprit d'analyse. Initier à la résolution de problèmes et aux étapes à suivre pour résoudre un problème à l'aide d'un ordinateur. Familiariser avec les méthodes de résolution de problèmes par ordinateur dans le cadre de la programmation modulaire et structurée en C++. Sensibiliser au développement de programmes en C++ de bonne qualité, faciles à comprendre, faciles à utiliser et faciles à modifier.

Éléments du langage de programmation C++ : types simples et composés, variables locales et globales, entrées et sorties, expressions, structures de contrôle, fonctions, tableaux et pointeurs. Algorithmes interactifs et récursifs. Passage de paramètres par valeur et par référence. Allocation dynamique de la mémoire. Modularité et organisation des données. Notions d'algorithmique et de conception de programmes lisibles, compréhensibles et modifiables. Convention d'écriture de programmes et de documentations. Méthodologies de résolution de problèmes. Mise au point et vérification de programmes.

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

8SIF107 Programmation en assembleur

Amener à l'apprentissage d'un langage d'assemblage. Donner une bonne compréhension de la structure logique des processeurs.

Systèmes numériques : binaire, octal, hexadécimal. Organisation des ordinateurs : mémoire, CPU registres, interruptions, modes réels et protégés. Éléments de base du langage assembleur : opérations booléennes et arithmétiques avec les entiers, modes d'adressage, structures de contrôle, tableaux et structures, appels de fonctions, variables locales, récursivité, entrées/sorties. Calcul en virgule flottante: représentation IEEE, arithmétique, coprocesseur arithmétique. Systèmes numériques : binaire, octal, hexadécimal. Niveaux d'organisation : assembleur. Architecture des processeurs : mémoire, registres, pile, modes réels et protégés, etc. Types de processeurs : CISC, RISC, etc. Langage d'assemblage, assembleur. Opérations booléennes et arithmétiques avec les entiers. Modes d'adressage. Appel de fonctions, variables locales, récursivité. Point flottant, coprocesseur arithmétique. Structures. Interruptions. Entrées/sorties.

Préalable(s): (8PRO107)

(10/2017)

8SIF120 Fondements, architecture et programmation réseau

Permettre de comprendre les concepts fondamentaux de télécommunication et de téléinformatique indispensables à l'étude des réseaux actuels et des réseaux de nouvelle génération.

Concepts de base des réseaux téléinformatiques. Les différentes couches du modèle OSI et exemples tirés du modèle TCP/IP. Normes et protocoles associés aux diverses couches du modèle OSI, de la couche physique à la couche application. Transmission de données, correction d'erreurs, codage, multiplexage, équipements d'interconnexion. Protocoles de liaison de données, de routage et de transport. Adressage et analyse des paquets IP. Congestion et temps de réponse. Applications sur Internet (HTTP, FTP, SNMP, etc.). Technologies NAT et PAT. Réseau de téléphonie IP (VoIP, ToIP, etc.). Exemples de programmation réseau. Aspects matériels et logiciels des réseaux sans fil (radio, satellite, WiFi).

Préalable(s): (8INF259)

(10/2017)

8SIF135 Sécurité informatique

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)

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)

8TRD134 Gestion de fichiers

Familiariser avec les concepts de structures de fichiers par l'apprentissage d'un langage de programmation commercial.

Structures de données. Structures de données sur fichier. Organisation de fichiers séquentielle et indexée. Modes d'accès séquentiel et direct. Supports physiques : disque, CD, DVD. Mécanismes de transfert des données entre les périphériques et la mémoire. Organisation physique et organisation logique des fichiers. Justification de la réorganisation physique périodique. Concepts d'enregistrement physique et logique. Éléments du langage COBOL et la gestion des fichiers. Modes d'ouverture de fichiers et fonctionnalités d'accès: lecture, écriture, ré-écriture et élimination d'enregistrements. Justification et utilisation des fichiers maîtres et temporaires. Modélisation, conception et mise en oeuvre d'une application utilisant l'organisation indexée et séquentielle.

Préalable(s): (8PRO107)

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