STRATÉGIES D’APPRENTISSAGE :
Le Département d'informatique dispose de laboratoires munis de logiciels et d'équipements de haute qualité destinés à répondre aux besoins de la variété de cours qui y sont offerts, tels que la réseautique, l'architecture, le calcul numérique ou encore l'intelligence artificielle. Le département offre ses cours de façon magistrale, à l'aide d'exercices et de laboratoires de programmation ou de conception logicielle ou matérielle. Plusieurs des cours comportent des projets de groupe où les étudiantes et étudiants apprennent à travailler en équipe. Au terme de ces projets, elles ou ils écrivent un rapport et font une présentation publique.
(3-2)Fonctionnement, systèmes et architecture d'un ordinateur. Environnement de travail, sécurité. Stratégies pour la résolution de problèmes : décomposition et raffinement graduel, algorithmes, description informelle. Langage de programmation évolué : syntaxe, structures de données élémentaires, structures de contrôle, pseudo-code, codage, bon style de programmation. Introduction à la récursivité et aux tableaux.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- analyser un problème pour comprendre ses exigences et ses contraintes;
- rédiger une série d'instructions logiques et structurées qui permettent de résoudre un problème;
- écrire un programme informatique en C/C++ qui résout ce problème.
(3-2)Préalables : INFO1101
Approfondissement de la connaissance du langage de programmation vu lors du cours préalable. Structures de données abstraites (liste, fichiers, pile, file, dèque, tables, etc.). Algorithmes de recherche et de tri. Algorithmes itératifs et récursifs. Allocations dynamiques. Évaluation des programmes : complexité, vérification. Introduction à la programmation orientée objet. Programmation événementielle.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne sera en mesure de/d' :
- utiliser les structures avancées du C/C++ (pointeurs, classes, etc.) pour des applications complexes;
- développer des algorithmes récursifs, en évaluant leur efficacité par rapport aux solutions itératives;
- gérer efficacement les données à travers des tableaux multidimensionnels et des fichiers variés (textes, binaires);
- appliquer les principes de la programmation orientée objet (héritage polymorphisme) pour créer des applications modulaires;
- utiliser les structures de données abstraites (listes, piles, files) avec des tableaux ou allocations dynamiques;
- connaître les structures de données dynamiques (listes chaînées, etc.) et les algorithmes de tri/recherche associés;
- analyser la complexité des algorithmes pour optimiser les performances logicielles.
(3-1)Systèmes numériques et représentation des données. Logique numérique et implantation. Logique de base et théorie de commutation. Technologie d'implantation des circuits. Conception des circuits combinatoires et des systèmes séquentiels synchrones et asynchrones. Systèmes de mémoires. Transfert des données. Introduction à la microprogrammation.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître différents systèmes de codage;
- concevoir des circuits combinatoire et séquentiels;
- utiliser les lois et théorèmes pour simplifier les expressions booléennes;
- faire la conversion entre les différents systèmes de numérotations.
(3-0)Préalables : INFO1102 et (MATH1173 ou MATH1563)
Rappel des structures linéaires (listes, piles, files d'attente). Structures de données abstraites, leurs opérateurs, et leurs implémentations (arbres binaires, de recherche, de Huffman, manceaux, graphes). Algorithmes récursifs. Analyse asymptotique. Suite des algorithmes de recherche, de hachage et de tri. Introduction à la complexité P et NP.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître les structures de données fondamentales en algorithmique et les utiliser efficacement dans la résolution de problèmes;
- implémenter en C/C++ ces structures de données et des algorithmes en les utilisant pour la résolution efficace de problèmes;
- connaître les principales classes de complexité permettant de mesurer l'efficacité d'algorithmes.
(3-2)Préalables : INFO2001
Organisation de base d'un ordinateur : le modèle Von Neumann, processeur central, mémoire centrale, bus, entrées/sorties, Représentation de données et codage d'instructions. L'architecture du processeur au niveau registres. Mémoire physique et mémoire virtuelle. Transfert de données dans l'ordinateur. Langage assembleur, modes d'adressage, entrées/sorties, interruptions.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- décrire l'architecture d'un ordinateur en se référant au modèle de Von Neumann et en identifiant le rôle des principaux composants (processeur, mémoire, bus et interfaces E/S);
- expliquer les principes fondamentaux du langage assembleur et des modes d'adressage qui régissent l'environnement de programmation;
- analyser la gestion de la mémoire (physique et virtuelle) ainsi que les mécanismes de transfert de données qui assurent la communication entre les composants.
(3-0)Préalables : INFO2012
Modèles de cycle de vie. Conception. Documentation. Gestion et contrôle de configuration/version. Fiabilité, sécurité, responsabilité, évaluation du risque. Entretien. Outils de spécification, de conception et d'implantation. Spécifications : informelles, formelles, algébriques. Conceptions fonctionnelle et orientée-tâche. Réutilisation. Stratégies d'implantation. Vérification. Validation. Assurance de qualité. Métriques. Estimation du coût, échéanciers.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître les techniques utilisées dans le développement logiciel;
- appliquer des méthodes et outils propres au génie logiciel;
- développer un projet logiciel;
- comprendre les activités nécessaires pour la production d'un système logiciel.
(3-0)Préalables : INFO2012
Fichiers et supports externes. Représentation des enregistrements. Gestion de l'espace. Tri externe, B-arbres et indexation, adressage aléatoire. Introduction aux SGBD. Modèles relationnels et orienté-objets. Formes normales. Langages de définition de données et d'interrogation. Optimisation des requêtes. Récupération et accès concurrentiel aux bases de données. Introduction aux bases de données réparties.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre comment est implémenté un système de gestion de bases de données;
- connaître les modèles courants de conception de bases de données;
- normaliser adéquatement une base de données;
- connaître le langage SQL pour définir et manipuler des données relationnelles.
(3-1)Préalables : INFO3103
Microprogrammation : organisation, séquenceur, codage vertical et horizontal, comparaison entre contrôles câblé et microprogrammé. Opérations en virgules flottantes. Microprocesseurs : CISC versus RISC, superscalaire, superpipeline, effets de branchement sur le pipeline. Cache de mémoire : hiérarchie, cache de données, caches d'instructions, méthodes de mapping. Circuits d'entrées/sorties. Introduction aux architectures parallèles.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- analyser les principes fondamentaux de la microprogrammation et les modalités de contrôle;
- comprendre les distinctions principales entre les microprocesseurs et l'impact de stratégies d'exécution;
- évaluer l'influence des techniques d'optimisation sur la performance des systèmes;
- décrire la hiérarchie de la mémoire en identifiant le rôle des caches et les différentes méthodes de mapping;
- appréhender les concepts de base des architectures parallèles et leur contribution à l'optimisation des performances informatiques.
(3-0)Préalables : INFO3103
Structures et fonctions des systèmes d'exploitation. Tâches et processus. Synchronisation et coordination des processus. Blocages. L'ordonnancement de l'unité centrale : modèles déterministes et probabilistes. Gestion de la mémoire : organisation de la mémoire physique, implantation de la mémoire virtuelle, gestion de la mémoire secondaire. Sécurité et protection.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître les différents composants d'un système d'exploitation;
- comprendre les mécanismes de communication entre processus;
- connaître le fonctionnement des algorithmes d'ordonnancements;
- comprendre les mécanismes de synchronisation entre processus.
(3-0)Préalables : INFO2012
Rappel des notions d'algorithme et de complexité temporelle et spatiale. Relations de récurrence. Algorithmes de retour en arrière, voraces, diviser-pour-régner, probabilistes, heuristiques, parallèles et distribués. Programmation dynamique. Classes de complexité P, NP.NP-complétude. Introduction aux fonctions calculables et à la décidabilité.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître les graphes et leurs applications pratiques;
- implémenter des algorithmes de graphes en langage C++;
- comprendre la programmation dynamique;
- comprendre les algorithmes de retour arrière, voraces et diviser-pour-régner;
- évaluer la complexité temporelle et spatiale d'un algorithme.
(3-2)Préalables : INFO2001
Concepts et terminologie des réseaux informatiques. Modèle en couches : OSI, TCP/IP. Couche application : HTTP, DNS, courriel, P2P, multimédia. Couche transport : multiplexage, pipelining, contrôle de flux, contrôle de congestion. Couche réseau : adressage, routage. Couche liaison : accès multiple, correction d'erreur, commutation, VLAN. Couche physique : codage, multiplexage.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre les principes fondamentaux des réseaux informatiques, y compris les architectures, les protocoles et les modèles de communication;
- analyser le fonctionnement des réseaux en s'appuyant sur les modèles OSI et TCP/IP ainsi que sur les protocoles associés;
- appliquer les concepts de réseautique pour des architectures réseaux différentes.
(3-0)Préalables : INFO2012
Étude comparative des paradigmes des langages de programmation. Modalités d'accès et types de données, gestions de l'allocation dynamique de la mémoire, traduction de programmes et sémantique. Paradigmes fonctionnel, logique et orienté-objets.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre les principes fondamentaux des différents paradigmes de programmation et leurs applications;
- identifier les notions essentielles de grammaire, de sémantique et les principes sous-jacents aux langages de programmation;
- appliquer les concepts des paradigmes étudiés pour résoudre des problèmes concrets à l'aide de langages adaptés.
(3-0)Préalables : INFO2012
Langages réguliers et automates à états finis et à piles. Langages libres de contexte. Hiérarchie de Chomsky. Machine de Turing. Machine universelle. Hypothèse de Church. Calculabilité et déterminisme, problèmes indécidables. Applications dans les traitements de texte et les compilateurs.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- faire des démonstrations par récurrence;
- maîtriser le fonctionnement des automates finis non déterministes et les algorithmes associés;
- connaître les expressions régulières;
- connaître les grammaires formelles+ hors contexte et leurs applications;
- comprendre le fonctionnement d'une machine de Turing.
(3-1)Préalables : MATH30411C (secondaire du NB) ou MATH1023
Rappels. Fonctions et opérations. Fonctions polynomiales, rationnelles, trigonométriques, exponentielles et logarithmiques. Fonction réciproque. Limites et continuité. Dérivée et fonction dérivée, interprétation géométrique, dérivées d'ordres supérieurs. Dérivation en chaîne, dérivation implicite. Approximations linéaires. Règles de l'Hôpital. Tracés de courbes et optimisation. Méthode de Newton-Raphson.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre les propriétés des diverses classes de fonctions (e.g. polynomiales, exponentielles, logarithmiques et trigonométriques);
- calculer la limite d'une fonction;
- appliquer les règles de dérivation pour calculer la dérivée d'une fonction;
- analyser la croissance et la décroissance des fonctions.
(3-0)Préalables : MATH1073
Fondements: logique, ensembles et fonctions. Algorithmes. Complexité des algorithmes. Matrices. Méthodes de preuves. Induction mathématique. Permutations et combinaisons. Relations d'équivalence et ordres partiels. Introduction aux graphes: graphes connexes, graphes planaires, arbres et applications.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre la logique mathématique et la théorie des ensembles;
- appliquer les propriétés des fonctions et des relations;
- utiliser le raisonnement mathématique pour résoudre des problèmes de mathématiques discrètes;
- comprendre les notions de base de la théorie des graphes.
(3-1)Préalables : MATH1073 ou MATH1153
Matrices. Opérations sur les matrices. Algorithme de Gauss-Jordan. Résolution de systèmes d'équations linéaires. Déterminants. Valeurs et vecteurs propres. Introduction aux espaces vectoriels. Applications linéaires et changement de base. Diagonalisation. Applications diverses : animation, méthode des moindres carrés, graphes orientés, chaînes de Markov. Utilisation d'un logiciel de calcul numérique.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- résoudre des systèmes d'équations linéaires;
- appliquer les différentes opérations sur les matrices;
- comprendre la notion d'espace vectoriel et d'application linéaire;
- calculer les valeurs propres et les vecteurs propres;
- résoudre des problèmes concrets à l'aide des outils de l'algèbre matricielle.
(3-3)Concomitant : MATH1073
Force électrique. Champ électrique. Théorème de Gauss. Potentiel électrique. Condensateurs et diélectriques. Courant et résistance. Circuits à courant continu. Lois de Kirchoff. Champ magnétique. Sources de champ magnétique. Induction électromagnétique. Circuits alimentés en courant alternatif. Certaines parties de la théorie sont appliquées en laboratoire.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- connaître les lois fondamentales de l'électricité et du magnétisme;
- comprendre la signification de ces lois et les appliquer dans des situations concrètes;
- appliquer en laboratoire certains principes vus dans les cours théoriques de même que des concepts complémentaires à ceux-ci;
- analyser les résultats obtenus en laboratoire et les interpréter.
(3-0)Préalables : MATH1173
Statistique descriptive. Probabilité élémentaire. Lois de probabilité. Distributions discrètes et continues (de Poisson, normale...). Tests d'hypothèse et estimation de paramètres. Lissage de courbe. Régression.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- appliquer les méthodes de statistique descriptive, inférentielle et de régression linéaire simple de manière appropriée;
- utiliser les notions de probabilité élémentaire et de probabilités conditionnelles;
- appliquer les principales lois de probabilité pour les variables discrètes et continues;
- réaliser des tests d'hypothèse pour l'inférence statistique;
- interpréter de façon critique les résultats statistiques.
(3-0)Préalables : MATH1153 ou MATH1073
Types de variables; représentation graphique; population et échantillon; mesures de tendance centrale, dispersion et position; tableau de contingence; corrélation; notions de probabilités; théorème de Bayes; distributions discrètes et continues : binomiale, Poisson, normale, Student; méthodes d'échantillonnage; théorème limite centrale; inférence statistique pour la moyenne et la proportion; marge d'erreur.
RÉSULTATS D’APPRENTISSAGE :
À la fin de ce cours, la personne étudiante sera en mesure de/d' :
- comprendre les notions de variable, population, échantillon et classifier les données selon le type de variable;
- comprendre les notions de probabilité élémentaire et de probabilités conditionnelles;
- appliquer les méthodes de statistique descriptive et de régression linéaire simple de manière appropriée;
- effectuer des inférences statistiques pour la moyenne et la proportion à partir d'échantillons;
- interpréter de façon critique les résultats statistiques.
Choisir 3 crédits parmi les sigles suivants : ASTR, BIOL, CHIM, FSCI, PHYS
Avis pour les exigences en français
6.
EXIGENCES LINGUISTIQUES
6.1.1
Il faut posséder une connaissance et une compréhension suffisantes du français pour étudier à l’Université de Moncton. Dès lors, tous les programmes de baccalauréat ou de diplôme de premier cycle comprennent un minimum de 6 crédits obligatoires de français; ces crédits font partie des exigences minimales requises pour l’obtention d’un diplôme en vertu du règlement 12.2.
6.1.2
Évaluation du niveau de français
La compétence en français des personnes candidates admises à temps complet ou à temps partiel est évaluée par l’Université. À partir du dossier d’admission, l’Université décide si l’évaluation du niveau de français se fait par le test de classement ou par entrevue.
6.1.3
Résultats à l’évaluation du niveau de français
Selon les résultats de l’évaluation du niveau de français, l’Université dirige la personne candidate admise vers des cours de français langue maternelle (FRAN) ou de français langue seconde (avancé) (FLSA).
6.2
EXIGENCES DE FRANÇAIS LANGUE MATERNELLE
6.2.1
La personne étudiante qui, selon l’évaluation faite en vertu du règlement 6.1.3, suit des cours de français langue maternelle (FRAN) doit réussir les cours FRAN1500 et FRAN1600 et, ainsi, satisfaire l’objectif de formation générale 8.
6.2.2
Si le résultat au test de classement en français est faible, la personne étudiante doit réussir le cours de mise à niveau FRAN1003 avant de s’inscrire aux cours prescrits au règlement 6.2.1.
6.2.3
Si le résultat au test de classement en français est très faible, la personne étudiante doit réussir les cours de mise à niveau FRAN1101 et FRAN1102 avant de s’inscrire aux cours prescrits au règlement 6.2.1.
6.2.4
Si la personne étudiante réussit le cours FRAN1101 avec une lettre finale de A ou mieux, elle est exemptée du cours FRAN1102 et peut s’inscrire aux cours prescrits au règlement 6.2.1.
6.2.6
Les personnes étudiantes doivent avoir obtenu tous les crédits de français exigés pour combler leurs besoins de formation linguistique avant de pouvoir s’inscrire à tout cours de niveau 3000, 4000 ou 5000.
6.3
EXIGENCES DE FRANÇAIS LANGUE SECONDE (AVANCÉ)
Est normalement ainsi considérée la personne qui a suivi un programme de cours secondaires pour élèves non francophones et qui est inscrite à la Formation continue.
6.3.1
La personne étudiante qui suit des cours de français langue seconde (avancé) (FLSA) doit réussir les cours FLSA1401, FLSA1402, FLSA1500 et FLSA1600 Rédaction avancée, et, ainsi, satisfaire l’objectif de formation générale 8.
6.3.2
Les crédits de cours FLSA1401 et FLSA1402 peuvent être comptabilisés comme crédits de cours au choix.
6.3.3
Les personnes étudiantes qui suivent des cours FLSA en vertu du règlement 6.3.1 peuvent demander à la doyenne ou au doyen de la faculté responsable du programme d’études la permission de répondre à leurs évaluations en anglais, sauf celles des cours de langue. La doyenne ou le doyen peut accorder cette permission pour la première année d’études à temps complet à l’Université.
6.3.4
La personne étudiante peut demander à la doyenne ou au doyen responsable du programme d’études un prolongement d’un an à l’application du règlement 6.3.3. La doyenne ou le doyen peut prolonger la permission accordée en vertu du règlement 6.3.3 une seule fois.
6.4.1
Tous les programmes de premier cycle comprennent un cours obligatoire d’anglais, soit ANGL1022 ou un autre cours d’anglais de niveau supérieur.
6.4.2
La personne étudiantes qui démontre, par un test de classement, avoir satisfait aux exigences d’anglais de son programme d’études est exempté du cours et doit le remplacer, soit par un cours au choix, soit par un cours d’anglais de niveau supérieur, selon les exigences particulières de son programme d’études. Toutefois, selon le résultat obtenu au test de classement et selon les exigences particulières de son programme d’études, il se peut que des personnes étudiantes aient à suivre plus d’un cours d’anglais.