Apprenez des compétences pratiques avec les dernières technologies en développement logiciel

Êtes-vous prêt à Avancer votre carrière?

Êtes-vous prêt à faire avancer votre carrière ?

En consultation avec leurs conseillers, tous les étudiants choisissent les cours fondamentaux dans la colonne de gauche ci-dessous et les cours avancés dans la colonne de droite.

Sur la base des examens de qualification passés à leur arrivée sur le campus, seuls les étudiants du Parcours d'entrée préparatoire devra suivre le cours de 4 semaines sur les pratiques de programmation fondamentales (CS 390). FOR 506 et CS 401 sont obligatoires pour tous les étudiants. Voir les exigences d'obtention du diplôme >

Cours fondamentaux

  • Votre premier cours est spécifiquement conçu pour établir les bases de la façon dont vous pouvez devenir un professionnel de l'informatique performant. Le cours est enraciné dans la pratique de la méditation transcendantale qui mène à la réalisation de votre véritable potentiel. Vous découvrirez les avantages de la MT, notamment la capacité de résoudre des problèmes complexes par un fonctionnement mental supérieur améliorant la créativité et la pensée «hors des sentiers battus». Le cours se concentrera sur les principes qui sous-tendent les performances de pointe dans l'activité en développant un mélange optimal de repos et d'activité. Vous développerez et vivrez une routine quotidienne idéale qui favorise la réussite dans la vie. (2 unités)

  • Ce cours propose un programme ciblé pour améliorer les compétences en programmation et en analyse dans cinq domaines: la résolution de problèmes, les structures de données, la programmation orientée objet, le langage de programmation Java et l'utilisation de la récursivité dans les programmes Java.

    Ces sujets revêtent une importance particulière en tant que condition préalable aux cours du programme d'études supérieures en informatique.

    Les sujets incluent: les éléments de programmation Java, la conception et la mise en œuvre orientées objet, les structures de données (y compris les listes, les piles, les files d'attente, les arbres de recherche binaires, les tables de hachage et les ensembles), la hiérarchie des exceptions, les entrées / sorties de fichiers et les flux, et JDBC. (4 crédits) Préalable: Pour les étudiants de premier cycle: CS 221; pour les étudiants diplômés: accord de la faculté du département (4 crédits)

  • Ce cours présente les principes fondamentaux de la programmation orientée objet. Les étudiants apprendront comment rédiger des logiciels réutilisables et mieux entretenus, et intégreront ces connaissances aux tâches et projets de laboratoire. Les sujets abordés comprennent: les principes fondamentaux et les modèles de programmation orientée objet, les diagrammes de classes UML et les principes de conception qui favorisent la réutilisation et la maintenabilité des logiciels. (Unités 4)

  • Ce cours couvre l'essentiel des principes de conception de bases de données et une introduction aux bases de données SQL et NoSQL.

    Les sujets abordés sont les suivants : Principes de conception de bases de données relationnelles, formes normales, clés primaires, étrangères et uniques ; Requêtes (Agrégation, Jointures, Tri); Transactions; Principes de conception de base de données basés sur des documents, index, bases de données de mise à l'échelle ; Disponibilité et récupération (vidage, restauration, exportation, importation) ; Base de données en tant que service. Aucun pré-requis.

    (unités) 4

  • Les systèmes de base de données organisent et récupèrent les informations, ce qui permet à l'utilisateur d'accéder aux informations souhaitées facilement et efficacement. Les sujets comprennent: le modèle de données relationnel; SQL; Modélisation des urgences; algèbre relationnelle; normalisation des données; transactions; objets dans la base de données; sécurité et intégrité des données; entreposage de données, OLAP et exploration de données; bases de données distribuées; et étude d'un système de base de données commercial spécifique. (Unités 4) Prérequis: CS 401 ou consentement de la faculté du département.

  • L'ingénierie logicielle est un cours qui introduit l'étudiant aux meilleures pratiques en développement logiciel à travers une méthodologie de développement logiciel. Les étudiants ont déjà acquis une expérience dans les cours précédents du paradigme orienté objet et ont utilisé certains des diagrammes UML de base à des fins de modélisation des relations entre des objets logiciels. En génie logiciel, l'étudiant développera les compétences nécessaires pour assembler ces outils afin de produire un logiciel robuste, facile à gérer. Une méthodologie de développement logiciel décrit quand et comment les concepts OO et les diagrammes UML doivent être utilisés pour atteindre l'objectif de création de logiciels de qualité. Le cours est centré sur un petit projet dans lequel les principes discutés dans le format de conférence peuvent être illustrés et appliqués. À la fin du cours, l'étudiant disposera d'une application en cours d'exécution, construite conformément aux normes élevées de la méthodologie de développement RUP (Rational Unified Process).

  • Ce cours présente les méthodes d'analyse de l'efficacité des algorithmes (y compris l'analyse des cas les plus défavorables et des cas moyens) et présente divers algorithmes connus et hautement efficaces. L’analyse, la conception et la mise en œuvre des algorithmes ont la même importance. Les sujets incluent la recherche et le tri, l'efficacité des opérations sur les structures de données (y compris les listes, les tables de hachage, les arbres de recherche binaires équilibrés, les files d'attente de priorité), les algorithmes de graphes, les algorithmes combinatoires, les relations de récurrence, la programmation dynamique, les problèmes NP-complets et certains sujets spécifiques comme le temps permet. (Les sujets spéciaux incluent la géométrie informatique, les algorithmes pour les cryptosystèmes, l'approximation, le Big Data et l'informatique parallèle.)

  • Ce cours approfondit les concepts de programmation Web asynchrone et couvre les modèles de conception les plus essentiels pour JS, notamment le modèle d'observateur, l'usine, le décorateur et bien d'autres. Il couvre également l'utilisation de l'API Web et des structures de données immuables.

    Les sujets abordés sont les suivants : Git collaboratif ; Introduction à TypeScript et Bundlers ; JavaScript asynchrone ; Boucle d'événement ; API d'historique, API de géolocalisation ; Ajax (HTTP, Ajax, JSON, Fetch, Introduction à CORS, Débogage) ; Promesses et asynchrone/attente ; Programmation réactive ; Observables et Opérateurs RxJS ; Design Patterns : Module, Prototype, Singleton, Observer, Façade, Factory, Decorator, Proxy, Strategy, Memoization ; Navigateurs Web modernes. Aucun pré-requis.

    (unités) 4

  • L'avenir de l'informatique est parallèle. L'augmentation des performances séquentielles a atteint un plateau alors que les conceptions de processeurs ont atteint les limites de la miniaturisation, de la fréquence d'horloge, de la puissance et de la chaleur. En 2005, le nombre de cœurs de processeur a brusquement commencé à augmenter d'un seul cœur à plusieurs cœurs, créant ainsi la possibilité d'exécuter des programmes beaucoup plus rapidement. Cependant, pour utiliser ce potentiel, un programmeur doit avoir une certaine connaissance des techniques de programmation parallèle.

    Ce cours enseigne aux étudiants les concepts fondamentaux de la programmation parallèle dans le contexte de Java 9. La programmation parallèle permet aux développeurs d'utiliser des ordinateurs multicœurs pour accélérer l'exécution de leurs applications en utilisant plusieurs cœurs en même temps. À la fin de ce cours, vous apprendrez à utiliser les frameworks Java parallèles populaires (tels que Multi-Threading, Streams et Executors) pour écrire des programmes parallèles pour une large gamme de plates-formes multicœurs, y compris les serveurs, les ordinateurs de bureau ou les appareils mobiles.

    Les outils logiciels utilisés pendant ce cours incluent Microsoft Visual Studio, la bibliothèque de multithreading Java et la norme de threading OpenMP. (4 crédits) Préalable : Connaissance de la programmation informatique en Java, C ou C++.

    Pour plus d'informations, regardez cette vidéo de cinq minutes réalisée par le Professeur de ce cours :

    https://www.youtube.com/watch?v=dWcWAnn0Ppc

  • Ce cours fournit une introduction systématique à la programmation d'applications Web interactives et dynamiques. Le cours est destiné aux personnes ayant peu ou pas d'expérience préalable en programmation d'applications Web. Cette offre utilisera NodeJS et le framework Express pour le traitement côté serveur.

    Le cours commence par un examen des principes fondamentaux de HTML et CSS, avec un accent particulier sur la mise en page de pages Web à l'aide de CSS. JavaScript est le langage de programmation utilisé tout au long du cours, y compris les fonctions, les objets, les modules, le framework jQuery, Ajax et Promises. Les étudiants passent la majeure partie de leur temps à programmer une série de sites Web de plus en plus complexes et sophistiqués. Un projet de synthèse au cours de la dernière semaine du cours crée un site Web avec une base de données SQL accessible de manière asynchrone par le client pour des performances optimales.

    Ce cours est un prérequis pour CS545 Architecture d'application Web et CS572 Applications Web modernes. Prérequis : CS 220 ou CS 401 ou consentement de la faculté du département

    (unités) 4

  • Développer des programmes Android est une expérience passionnante et potentiellement lucrative. Le développement Android ouvre le monde de la créativité au programmeur. Il vous permet de vous exprimer d'une manière dont vous n'auriez jamais rêvé dans un monde numérique où vous pouvez créer un produit et le mettre à la disposition de milliards d'utilisateurs en un seul clic. Ce cours vous apprendra à développer des applications Android à l'aide du langage de programmation Kotlin.

    Les sujets incluent : Configuration de votre ordinateur pour la programmation Android ; Bases du manifeste ; Mises en page, activités, vues et composants d'interface utilisateur ; Travailler avec des intentions, des fragments et des préférences partagées ; Affichage Web et HTML ; Travailler avec le multimédia ; Composants Android Jetpack, Room Database et JSON ; Comprendre les capteurs ; Localisation; Application de publication dans Google Play Store. (4 unités) Aucun prérequis n'est requis.

  • Ce cours se concentre sur l'utilisation de JavaScript en backend (NodeJS). Les étudiants apprendront comment fonctionne NodeJS et acquerront une compréhension approfondie de son interface de programmation d'application (API) de base. Le cours couvre le fonctionnement du moteur de compilation JS (V8), la structure du code à l'aide de modules et le fonctionnement du code asynchrone dans Node et la boucle d'événements Node. Le cours enseigne également Node Package Manager (NPM), comment créer un serveur Web, comment travailler avec le framework Express et comment utiliser ODM tel que Mongoose pour gérer MongoDB. Les étudiants apprendront toutes les techniques qui définissent une application Web moderne, y compris l'authentification des utilisateurs avec des jetons Web JSON, la persistance des données dans la base de données et la création d'une API Restful. D'autres concepts informatiques sont également abordés.

    Les sujets abordés sont les suivants : Conception d'API HTTP et Rest ; Applications sans état ou avec état ; API de nœud ; Gestionnaire de paquets de nœuds (npm) ; Architecture Model-Controller, framework Express et middlewares ; Routage côté serveur ; Authentification basée sur des jetons. Aucun pré-requis.

    (unités) 4

  • Le Big Data est la nouvelle ressource naturelle : les données doublent tous les 12 à 18 mois. Ce nouveau cours Big Data Analytics couvre les concepts et outils fondamentaux pour l'exploration de grands ensembles de données diversifiés afin de générer de nouvelles informations. Vous maîtriserez l'utilisation du langage R pour créer Wordcloud, Pagerank, Data Visualization, Decision Trees, Regression, Clustering, Neural Networks, etc. Vous travaillerez avec de grands ensembles de données d'enregistrements de plusieurs millions et exploiterez également des flux Twitter. Vous apprendrez les concepts Hadoop/MapReduce et Streaming Data, et explorerez d'autres projets Apache Big Data tels que Spark, Flink, Kafka, Storm, Samza, NoSQL à travers des articles de recherche individuels. Vous travaillerez en groupe sur des projets ouverts de Kaggle.com pour concourir pour des prix en résolvant les meilleurs défis d'analyse de données. Vous apprendrez également à utiliser IBM SPSS Modeler, leader du secteur, et des plateformes d'exploration de données open source. Le cours utilisera également un large éventail de supports de formation vidéo du MIT, Coursera, Google et ailleurs. (4 crédits) Prérequis : Consentement du corps professoral du département

  • L'objectif de ce cours est de fournir aux étudiants des connaissances et des compétences en leadership, y compris des compétences en communication, afin de préparer leurs futurs rôles de leadership.

    À la fin de ce cours, les étudiants comprendront les réponses aux questions clés concernant l’efficacité du leadership, notamment:

    Existe-t-il des leaders «nés dans la nature»?

    Devez-vous avoir du charisme pour diriger efficacement?

    Quel atout est nécessaire pour être un leader?

    Quelle est la différence entre gérer et diriger?

    Quelles sont les nombreuses "intelligences" nécessaires pour diriger à cette époque?

    Qu'est-ce qu'une "faute professionnelle" et en quoi cela mène-t-il à l'auto-sabotage?

    Sachant que les commentaires sont essentiels au processus directeur, comment pouvons-nous surmonter la peur de donner et de recevoir?

    Quelle est la source de 80% des problèmes rencontrés sur le lieu de travail?

    Existe-t-il des recherches scientifiques pour aider l'organisation à améliorer ses compétences en leadership individuel et d'équipe?

    Parmi les orateurs invités figureront des entrepreneurs éminents, des informaticiens, des philanthropes, des universitaires et d'autres personnalités éminentes de la société.

    (unités) 2

Cours avancés

  • La description du cours CS 490 sera bientôt disponible.

  • Ce cours aborde des sujets avancés dans la conception de langages de programmation en mettant l’accent sur les méthodes formelles et les mécanismes d’abstraction. Les sujets abordés comprennent l'abstraction des données et des contrôles, la spécification formelle de la syntaxe et de la sémantique, les preuves de l'exactitude des programmes, la programmation non déterministe, les structures de contrôle avancées et l'étude de langages spécifiques. (Unités 4) Prérequis: CS 401 ou consentement de la faculté du département.

  • Ce cours couvrira les modèles de programmation cloud et permettra aux étudiants de s'entraîner à travailler avec divers services cloud Web, y compris les fonctions AWS Serverless.

    Les sujets incluent : Gestion des identités et des accès (IAM) ; Cloud privé virtuel (VPC), listes de contrôle d'accès au réseau - NACL, sous-réseaux, zones de disponibilité, service de stockage simple (S3), Elastic Cloud Compute (EC2), service de notification simple (SNS), équilibreur de charge élastique (ELB), mise à l'échelle automatique, Route 53, API dans le cloud ; AWS Lambda, sans serveur ; Services Web; Déploiement d'applications, projet final. (4 crédits). (Aucun prérequis)

  • Le traitement moderne de l'information est défini par de vastes référentiels de données qui ne peuvent pas être gérés par les systèmes de base de données traditionnels. Ce cours couvre les dernières technologies développées et utilisées par les leaders de l'industrie pour résoudre ce problème de la manière la plus efficace. Les sujets abordés incluent les algorithmes MapReduce, les modèles de conception d’algorithmes MapReduce, HDFS, l’architecture de cluster Hadoop, YARN, le calcul des fréquences relatives, le tri secondaire, l’exploration Web, les index inversés et la compression d’index, les algorithmes Spark et Scala. (Unités 4) Condition préalable: algorithmes CS 435.

  • En quelques années seulement, les technologies du big data sont passées du domaine du battage médiatique à l'un des composants essentiels de la nouvelle ère numérique. Ces technologies sont très utiles pour transformer l'Information en Connaissance. L'objectif du cours est d'ajouter des outils importants à votre arsenal pour vous aider à résoudre divers problèmes liés au Big Data.

    Le cours commence par donner des réponses à des questions telles que « Qu'est-ce que le Big Data et son importance ? Comment stocker le Big Data de manière fiable et économique ? Quels outils utiliser pour trouver des informations utiles à partir de ces mégadonnées ? etc." Dans ce cours, les étudiants étudieront différents outils et modèles de programmation pour analyser le Big Data. Les sujets incluent des projets d'écosystème Hadoop tels que MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper ainsi que des projets d'écosystème Apache Spark tels que Spark SQL et Spark Streaming. Les étudiants ont également la possibilité de construire un pipeline complet de données volumineuses à partir de la collecte de données en temps réel, du traitement, de l'analyse et enfin de la visualisation des résultats sous forme graphique sur des tableaux de bord. Les étudiants travailleront principalement avec un cluster Hadoop à nœud unique de la distribution Cloudera. (4 crédits) (MPP est le seul prérequis)

  • Avec la croissance rapide des données provenant de diverses sources, la plupart des entreprises et des organisations sont devenues fortement axées sur les données. Extraire des informations clés de ces données et les convertir en connaissances et en intelligence est la fonction clé de Big Data Analytics. C'est pourquoi de plus en plus d'entreprises dépensent de plus en plus d'argent pour l'analyse de données. Ceci est maintenant encore accéléré par la croissance rapide Transformation numérique. Ce cours Big Data Analytics couvre les concepts fondamentaux de l'analyse, des algorithmes et des outils pour l'exploration de grands ensembles de données diversifiés afin de générer de nouvelles informations commerciales.

    Toutes les principales analyses, y compris Descriptif, Prédictif, Prescriptif et Diagnostique Sera couvert. Il couvrira les approches algorithmiques d'analyse de grands ensembles de données (non structurés, mixtes, structurés, graphiques et en continu) : apprentissage automatique (réseaux de neurones, apprentissage en profondeur, arbres de décision, forêt aléatoire, etc.), IA, traitement du langage naturel (NLP), statistique et algorithmes de streaming, sur des plates-formes d'analyse distribuées modernes (par exemple MapReduce, Hadoop, Spark,) pour la régression (prédiction), la classification, le clustering, les systèmes de recommandation et plus encore. Analytique avancée des mégadonnées, notamment Analyse causale seront également couverts. Les langages de programmation Python/R seront majoritairement utilisés. Les étudiants réaliseront également un projet de groupe pour résoudre un problème réel à l'aide de Big Data Analytics.

    (4 crédits) Prérequis : Consentement du corps professoral du département

  • Ce cours considère les méthodes et pratiques actuelles pour une bonne conception de systèmes logiciels. Les sujets incluent les modèles de conception de logiciels, les cadres, les architectures et la conception de systèmes pour appliquer ces abstractions à plusieurs niveaux. (2-4 crédits) Prérequis : CS 401 ou consentement de la faculté du département.

  • Ce cours se concentre sur l'enseignement des principes et des pratiques utilisés lors du développement d'applications d'entreprise à grande échelle. Nous examinerons les différentes couches architecturales fréquemment utilisées et les différentes technologies associées à ces couches, notamment le mappage relationnel objet (ORM), l'injection de dépendance (DI), la programmation orientée aspect (AOP) et l'intégration avec d'autres applications via des services Web (RESTfull et SOAP), messagerie et invocation de méthode à distance. Doit avoir une connaissance pratique des bases de données relationnelles et de SQL. Si vous n'avez pas un cours solide ou une bonne connaissance pratique de SQL, vous devez vous inscrire au SGBD CS422 avant de vous inscrire à EA. (4 unités)

  • Ce cours met l'accent sur les applications Web dans un contexte d'entreprise. Une application d'entreprise est un grand logiciel conçu pour fonctionner dans une grande organisation telle qu'une entreprise ou un gouvernement. Les applications d'entreprise sont complexes, évolutives, basées sur des composants, distribuées et critiques. Ce cours, CS545, est consacré à la couche frontale ou de présentation d’une application Web d’entreprise. CS544 Enterprise Architecture est un cours complémentaire qui se concentre sur la couche d’arrière-plan ou la couche de gestion, y compris la logique d’entreprise, les transactions et la persistance. CS472, Programmation d'applications Web, est un cours préalable couvrant HTML, CSS, JavaScript, les servlets et JSP.

    Le cours enseigne des principes et des modèles généraux pour toutes les plateformes et tous les cadres. Le cours examinera et travaillera avec les deux infrastructures Web prédominantes, Java Server Faces (JSF) et SpringMVC. JSF est une infrastructure à base de composants. Il s'agit de la spécification officielle de l'infrastructure de présentation de la pile technologique Java Enterprise Edition. SpringMVC fait partie du framework Core Spring et est devenu le framework web Java le plus utilisé ces dernières années. (Unités 4) Prérequis: CS 472 ou consentement de la faculté du département.

  • React est la bibliothèque la plus populaire pour créer des applications Web puissantes. Dans ce cours, les étudiants apprendront à utiliser React et ES6 pour créer des applications robustes et évolutives à partir de zéro en utilisant les derniers modèles Redux pour maintenir l'état de leur application.

    Les sujets incluent : le développement d'applications Web basées sur des composants, les modèles de conception de composants, la consommation d'API restantes, la persistance avec l'API de navigateur, JSX et l'API React (props, proptypes, événements, références), le flux de données d'application et le déploiement d'applications React. Prérequis WAP ou CS 477.

    (unités) 4

  • Dans ce cours, les étudiants apprennent l'architecture de programmation réactive des applications Web à page unique (SPA) ainsi que toutes les compétences nécessaires pour créer une application Web moderne complète à l'aide de TypeScript et Angular. Les étudiants acquièrent une compréhension approfondie du fonctionnement d'Angular, notamment : la détection des changements ; Programmation réactive RxJs avec observables et sujets ; Le DOM de l'Ombre ; zone ; Modules, composants, directives personnalisées et canaux ; Services et injection de dépendances ; Compilateur angulaire : compilation JIT et AOF ; Formulaires (basés sur des modèles et basés sur des données) ; Acheminement, gardes et protection d'itinéraire ; Client HTTP ; et l'authentification par jeton Web JWT JSON. Prérequis : WAP ou CS 477.

    (unités) 4

  • Ce cours passe du développement Web au développement d'applications mobiles à l'aide de React Native, un framework populaire de Facebook qui permet aux applications natives multiplateformes de s'exécuter à l'aide de JavaScript sans Java ni Swift. Le cours présente le JavaScript moderne–JavaScript XML (JSX)–une extension JavaScript. Les étudiants acquièrent de l'expérience avec React Native et ses paradigmes, son architecture d'application et ses interfaces utilisateur. Le cours se termine par un projet final dans lequel les étudiants implémentent une application mobile entièrement de leur propre conception. Prérequis : WAA ou CS568.

    (unités) 4

  • Dans ce cours, vous apprendrez l’architecture de programmation réactive de SPA (applications Web à page unique) ainsi que toutes les compétences nécessaires pour créer une application Web moderne complète. Les technologies comprennent: les bases de données NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase et NoSQL (MongoDB). Le cours couvrira:

    • Comment le moteur C ++ V8 et le code asynchrone fonctionnent-ils dans le noeud et la boucle d'événements du noeud?
    • Comment structurer votre code en vue de la réutilisation et de la construction d'une API reposante à l'aide de modules et d'ExpressJS.
    • Fonctionnement des bases de données NoSQL: shell Mongo, structure d'agrégation, jeux de réplicas, mise en cluster, fragments, ORM Mongoose.
    • Compréhension approfondie du fonctionnement angulaire (avec Google), détection de changement, programmation de RxJ réactifs avec observables et sujets, DOM Shadow, zones, modules et composants, directives et tuyaux personnalisés, services et injection de dépendances, compilateur angulaire, compilateur JIT et AOF , Formulaires (gérés par les modèles et pilotés par les données), liaison de données, routage, protection et protection de la route, client HTTP, authentification par jeton Web JWT JSON.

    (unités) 4

  • Dans ce cours de stage, les étudiants effectuent des tâches liées à l'informatique dans un poste professionnel technique. Les tâches exécutées peuvent concerner la conception et le développement de nouveaux systèmes ou l'application de systèmes existants à des fins spécifiques. Les descriptions de travail des stages sont formulées par l'employeur et l'étudiant et doivent être approuvées à l'avance par l'une des facultés diplômées du département, en consultation avec le superviseur de stage où l'étudiant est placé. (Ce cours s'adresse principalement aux étudiants des programmes de stages ou coopératifs.) (0.5-1 unité par bloc - peut être répété.)

  • L'apprentissage automatique est le domaine d'étude qui donne aux ordinateurs la capacité d'apprendre à partir des données, est au cœur de presque toutes les disciplines scientifiques, et l'étude de la généralisation (c'est-à-dire la prédiction) à partir des données est le sujet central de l'apprentissage automatique. Ce cours donne une introduction de niveau supérieur à l'apprentissage automatique et une couverture approfondie des méthodes nouvelles et avancées d'apprentissage automatique, ainsi que de leur théorie sous-jacente. Il met l'accent sur des approches ayant une pertinence pratique et examine un certain nombre d'applications récentes de l'apprentissage automatique, telles que l'exploration de données (en Big Data / Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotics, Bioinformatics and Text and Web data processing. L'apprentissage automatique est utilisé dans divers secteurs, notamment les services financiers, le pétrole et le gaz, les soins de santé, le marketing et la publicité, le gouvernement, l'Internet et l'Internet des objets.

    Ce cours couvre une variété de paradigmes d'apprentissage, d'algorithmes, de résultats théoriques et d'applications. Il utilise des concepts de base de l'intelligence artificielle, de la théorie de l'information, des statistiques et de la théorie du contrôle dans la mesure où ils sont pertinents pour l'apprentissage automatique. Les sujets comprennent: l'apprentissage supervisé (apprentissage génératif / discriminatif, apprentissage paramétrique / non paramétrique, réseaux de neurones, machines vectorielles de support, arbre de décision, apprentissage bayésien et optimisation); apprentissage non supervisé (clustering, réduction de dimensionnalité, méthodes de noyau); théorie de l'apprentissage (compromis biais / variance; théorie de la CV; grandes marges); apprentissage par renforcement et contrôle adaptatif. D'autres sujets incluent HMM (modèle de Markov caché), l'informatique évolutive, l'apprentissage en profondeur (avec des réseaux neuronaux) et la conception d'algorithmes dont les performances peuvent être rigoureusement analysées pour des problèmes fondamentaux d'apprentissage automatique.

    Une partie importante du cours est un projet de groupe. Les principaux outils open source utilisés pour l'apprentissage automatique parallèle, distribué et évolutif seront brièvement abordés pour aider les étudiants à réaliser les projets. (Unités 4) Condition préalable: Aucune.

  • L'intelligence artificielle (IA) est la discipline qui tente de construire et de comprendre les systèmes intelligents. Les ordinateurs dotés d'une intelligence de niveau humain auraient un impact énorme sur la société. Les agents logiciels intelligents et les systèmes multi-agents se développent rapidement et aident dans de nombreux domaines tels que la transformation numérique, l'automatisation, les systèmes conversationnels, la recherche sur le Web, la robotique, la fabrication, la santé, la pharmacie, la banque, la chaîne d'approvisionnement, la conduite autonome, la publicité, les jeux, juste pour nommez-en quelques-uns. L'IA est le moteur d'une industrie de plusieurs billions de dollars. Ce cours enseignera les bases de l'IA et donnera aux étudiants une compréhension pratique du domaine. Les sujets incluent les concepts de base de l'IA - agents intelligents, systèmes multi-agents, recherche intelligente, logique de premier ordre et d'ordre supérieur, représentation des connaissances, raisonnement, perception, apprentissage, sémantique (PNL, Image, Objet..), planification, prise de décision, agissant, réactif, délibératif, rationnel, adaptatif, communication et interaction. Le cours met l'accent sur les approches ayant une pertinence pratique et aborde un certain nombre d'applications populaires récentes de l'IA. Les principaux outils open source et langages de programmation pour l'IA (y compris Low code et No code) seront brièvement couverts. Les étudiants réaliseront également un projet de groupe pour résoudre un problème réel à l'aide de l'IA.

    (4 crédits) Prérequis : Consentement du corps professoral du département

  • Dans ce cours, nous examinerons les techniques, les principes et les modèles permettant de concevoir des systèmes logiciels souples, évolutifs, testables et résilients à l'aide de microservices. Nous étudierons comment diviser les applications volumineuses en microservices plus petits, plus faciles à créer, ainsi que d’autres avantages par rapport aux applications monolithiques d’entreprise. Une architecture de microservice distribuée présente également de nombreux défis. Nous étudierons ces défis et la manière de les résoudre. Les sujets de ce cours sont les styles architecturaux, les techniques et modèles d'intégration, la conception pilotée par domaine, l'architecture pilotée par les événements et la programmation réactive. (Crédits 4). (Pas de prérequis)

  • En l'honneur de 50 ans d'éducation MIU, le département d'informatique est heureux de lancer notre nouvelle série de discussions sur le jubilé d'or ComPro Tech Talks.

    Cette série mensuelle est organisée et animée par le professeur Renuka Mohanraj.

    Les conférences sont disponibles sur https://www.youtube.com/playlist?list=PLoBuI1C_-EtrAMdD45sldMnd8HXNhmyBQ.

    Voir notre dernière conférence enregistrée, du samedi 28 mai 2022 :

    Unubold Tumenbayar, instructeur en informatique du MIU, un architecte de solutions professionnelles certifié AWS, a abordé ces sujets dans notre dernier ComPro Tech Talk :
    o Création d'une application Full-stack en quelques minutes dans le cloud
    o Discussion sur les technologies modernes
    o GraphQL
    o Réagir
    o NoSQL utilisant les services et outils AWS

    Voir les diapositives d'Unbold ici.

    Cette conférence est un bon aperçu de notre Cours d'informatique en nuage (CS 516).

Options d'étude

Il existe 3 options d'études pour les étudiants internationaux.
Chacun fournit un MS en informatique.
Tous ont des dates d'entrée en janvier, avril, août ou octobre.

ProgrammesMois d'études sur le campusStage rémunéréFormation à distance (DE) pendant le stage
CPT8-9Jusqu'à 2 années CPT4 cours DE
OPT9-10Jusqu'à mois 11.5 CPT + 3 ans OPT (Optionnel)3 cours DE
Temps plein sur le campus12-133 ans OPT optionNA

«La première fois que j'ai entendu parler du programme MSCS, j'en ai douté. Je ne pouvais pas croire que quelque chose comme ça existe. Mais un jour, un de mes amis a rejoint le programme. C'est à ce moment-là que j'ai confirmé que c'était réel. Puis j'ai repris mon processus de candidature. Bien! C'est vrai, je suis ici, j'ai terminé le programme et je suis tellement content.

Êtes-vous prêt à commencer une nouvelle carrière?

TEMPS D'ATTENTE POUR L'ENTRETIEN À L'AMBASSADE AMÉRICAINE ET TEMPS DE TRAITEMENT DES DEMANDES MSCS

Nous avons constaté que de nombreux pays ont des dates d'entretien très tardives. S'il te plait regarde Temps d'attente pour les rendez-vous de visa (state.gov) pour connaître le délai d'obtention d'une date d'entretien pour votre pays/ville.

Si le temps d'attente pour l'entretien est supérieur à 2 mois, nous vous encourageons à postuler et à compléter votre candidature immédiatement, même si vous envisagez de postuler pour une future entrée. De cette façon, vous pouvez terminer le processus de candidature, obtenir votre I-20, puis obtenir une date d'entretien. Vous devez avoir un I-20 pour obtenir la date de l'entretien. Si la date est antérieure à la date à laquelle vous prévoyez de venir aux États-Unis, vous pouvez toujours reporter votre date d'arrivée une fois que vous avez obtenu le visa. Nous vous délivrerons simplement un nouveau I-20 pour la date d'entrée pour laquelle vous prévoyez de venir.

Pour toute question concernant ces informations, veuillez contacter notre bureau des admissions au csadmissions@miu.edu.

Posez-vous ces 4 questions :

  1. Vous êtes titulaire d'un baccalauréat dans un domaine technique? Oui ou non?

  2. Avez-vous eu de bonnes notes au baccalauréat? Oui ou non?

  3. Avez-vous au moins 6 mois d'expérience de travail rémunéré à temps plein en tant que développeur de logiciels après votre baccalauréat ? Oui ou non?

  4. Êtes-vous disponible pour venir aux États-Unis pour suivre des cours (ce programme n'est pas disponible en ligne) ? Oui ou non?

Si vous avez répondu "oui" à toutes les questions ci-dessus, vous pouvez postuler (Bien que cela ne garantisse pas que vous serez accepté.)