Erlernen Sie praktische Fertigkeiten mit den neuesten Technologien in der Softwareentwicklung

Bist du bereit zu Karriere voranbringen?

Sind Sie bereit, Ihre Karriere voranzutreiben?

In Absprache mit ihren Beratern wählen alle Studenten Fundamental Courses aus der linken Spalte unten und Advanced Courses aus der rechten Spalte.

Basierend auf den bei ihrer Ankunft auf dem Campus abgelegten Eignungsprüfungen können nur Studenten auf dem Vorbereitender Einstiegstrack müssen den 4-wöchigen Kurs Fundamental Programming Practices (CS 390) belegen. FOR 506 und CS 401 sind für alle Schüler erforderlich. Abschlussanforderungen anzeigen >

Grundlegende Kurse

  • Ihr erster Kurs wurde speziell entwickelt, um die Grundlage dafür zu schaffen, wie Sie ein leistungsstarker Informatiker werden können. Der Kurs basiert auf der Praxis der Transzendentalen Meditation, die zur Erfüllung Ihres wahren Potenzials führt. Sie lernen die Vorteile von TM kennen, einschließlich der Fähigkeit, komplexe Probleme durch überlegene mentale Funktionen zu lösen, die Kreativität und „out of the box“ -Denken fördern. Der Kurs konzentriert sich auf die Prinzipien, die die Spitzenleistung bei Aktivitäten unterstützen, indem sie eine optimale Mischung aus Ruhe und Aktivität entwickeln. Sie entwickeln und erleben einen idealen Tagesablauf, der den Erfolg im Leben unterstützt. (2 Einheiten)

  • Der FPP-Kurs bietet ein gezieltes Programm zur Verbesserung der Programmier- und Analysefähigkeiten in fünf Bereichen: Problemlösung, Datenstrukturen, objektorientierte Programmierung, die Programmiersprache Java und die Verwendung von Rekursion in Java-Programmen.

    Diese Themen sind als Voraussetzung für die Kurse im Graduiertenkolleg Informatik von besonderer Bedeutung.

    Zu den Themen gehören: Elemente der Java-Programmierung, objektorientiertes Design und Implementierung, Datenstrukturen (einschließlich Listen, Stapel, Warteschlangen, binäre Suchbäume, Hash-Tabellen und Mengen), die Ausnahmehierarchie, Datei-E / A und Streams sowie JDBC. (4 Credits) Voraussetzung: Für Studenten: CS 221; für Doktoranden: Zustimmung der Fakultät (4 Einheiten)

  • Der MPP-Kurs vermittelt die Grundprinzipien der objektorientierten Programmierung. Die Studierenden lernen, wie man wiederverwendbare und besser zu wartende Software schreibt und integrieren dieses Wissen in Laboraufgaben und Projekte. Zu den Themen gehören: grundlegende Prinzipien und Modelle der objektorientierten Programmierung, UML-Klassendiagramme und Designprinzipien, die die Wiederverwendbarkeit und Wartbarkeit von Software fördern. (4 Einheiten)

  • Dieser Kurs behandelt die Grundlagen der DB-Designprinzipien und eine Einführung in SQL- und NoSQL-Datenbanken.

    Themen sind ua: Relationale DB-Designprinzipien, Normalformen, Primär- und Fremd- und eindeutige Schlüssel; Abfragen (Aggregation, Verknüpfungen, Sortierung); Transaktionen; Dokumentenbasierte DB-Designprinzipien, Indizes, Skalierung von Datenbanken; Verfügbarkeit und Wiederherstellung (Dump, Restore, Export, Import); Datenbank als Dienst. Keine Voraussetzungen.

    (4-Einheiten)

  • Datenbanksysteme organisieren und rufen Informationen ab, sodass der Benutzer einfach und effizient auf die gewünschten Informationen zugreifen kann. Zu den Themen gehören: relationales Datenmodell; SQL; ER-Modellierung; relationale Algebra; Datennormierung; Transaktionen; Objekte in der Datenbank; Datensicherheit und Integrität; Data Warehousing, OLAP und Data Mining; verteilte Datenbanken; und Untersuchung eines spezifischen kommerziellen Datenbanksystems. (4-Einheiten) Voraussetzung: CS 401 oder Zustimmung der Fakultät der Fakultät.

  • Software Engineering ist ein Kurs, in dem der Student anhand einer Softwareentwicklungsmethodik Best Practices in der Softwareentwicklung vorgestellt wird. Die Studierenden haben bereits Erfahrungen in früheren Kursen mit dem objektorientierten Paradigma gesammelt und einige der grundlegenden UML-Diagramme zur Modellierung von Beziehungen zwischen Softwareobjekten verwendet. Im Software-Engineering wird der Student Fähigkeiten entwickeln, um diese Tools zusammenzustellen, um robuste, einfach zu wartende Software zu erstellen. Eine Softwareentwicklungsmethodik beschreibt, wann und wie OO-Konzepte und UML-Diagramme verwendet werden sollten, um das Ziel der Erstellung von Qualitätssoftware zu erreichen. Im Zentrum der Veranstaltung steht ein kleines Projekt, in dem die im Vorlesungsformat diskutierten Prinzipien veranschaulicht und angewendet werden können. Am Ende des Kurses wird der Student eine laufende Anwendung haben, die den hohen Anforderungen der RUP-Entwicklungsmethode (Rational Unified Process) entspricht.

  • In diesem Kurs werden Methoden zur Analyse der Effizienz von Algorithmen (einschließlich der Worst-Case- und Average-Case-Analyse) vorgestellt und eine Reihe bekannter, hocheffizienter Algorithmen vorgestellt. Analyse, Design und Implementierung von Algorithmen werden gleichermaßen hervorgehoben. Zu den Themen gehören Suchen und Sortieren, Effizienz von Operationen an Datenstrukturen (einschließlich Listen, Hashtabellen, symmetrische binäre Suchbäume, Prioritätswarteschlangen), Graphalgorithmen, kombinatorische Algorithmen, Wiederholungsbeziehungen, dynamische Programmierung, NP-vollständige Probleme und einige spezielle Themen wie Zeit erlaubt. (Spezielle Themen sind Berechnungsgeometrie, Algorithmen für Kryptosysteme, Approximation, Big Data und paralleles Rechnen.)

  • Dieser Kurs geht tief in asynchrone Webprogrammierkonzepte ein und behandelt die wichtigsten Entwurfsmuster für JS, darunter das Beobachtermuster, die Fabrik, den Dekorateur und viele mehr. Es behandelt auch die Arbeit mit Web-API und unveränderlichen Datenstrukturen.

    Themen sind ua: Kollaboratives Git; Einführung in TypeScript und Bundler; Asynchrones JavaScript; Ereignisschleife; Verlaufs-API, Geolokalisierungs-API; Ajax (HTTP, Ajax, JSON, Fetch, Einführung in CORS, Debugging); Promises und Async/Await; Reaktive Programmierung; RxJS Observables und Operatoren; Entwurfsmuster: Modul, Prototyp, Singleton, Beobachter, Fassade, Fabrik, Dekorateur, Proxy, Strategie, Memoisierung; Moderne Webbrowser. Keine Voraussetzungen.

    (4-Einheiten)

  • Die Zukunft des Computing ist parallel. Die Steigerung der sequentiellen Leistung hat ein Plateau erreicht, da Prozessordesigns an die Grenzen von Miniaturisierung, Taktfrequenz, Leistung und Hitze gestoßen sind. Im Jahr 2005 begann die Anzahl der Prozessorkerne abrupt von einem einzelnen Kern auf mehrere Kerne zu steigen, wodurch die Möglichkeit geschaffen wurde, Programme viel schneller auszuführen. Um dieses Potential zu nutzen, muss ein Programmierer jedoch einige Kenntnisse über parallele Programmiertechniken haben.

    Dieser Kurs vermittelt den Teilnehmern die grundlegenden Konzepte der parallelen Programmierung im Kontext von Java 9. Die parallele Programmierung ermöglicht es Entwicklern, Multicore-Computer zu verwenden, um ihre Anwendungen durch die gleichzeitige Verwendung mehrerer Kerne schneller laufen zu lassen. Am Ende dieses Kurses lernen Sie, wie Sie beliebte parallele Java-Frameworks (wie Multi-Threading, Streams und Executors) verwenden, um parallele Programme für eine Vielzahl von Multicore-Plattformen zu schreiben, darunter Server, Desktops oder mobile Geräte.

    Zu den in diesem Kurs verwendeten Softwaretools gehören Microsoft Visual Studio, die Java-Multithreading-Bibliothek und der OpenMP-Threading-Standard. (4 Einheiten) Voraussetzung: Kenntnisse der Computerprogrammierung mit Java, C oder C++.

    Weitere Informationen finden Sie in diesem fünfminütigen Video des Professors dieses Kurses:

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

  • Dieser Kurs bietet eine systematische Einführung in die Programmierung interaktiver und dynamischer Webanwendungen. Der Kurs richtet sich an Personen mit wenig oder keiner Vorerfahrung in der Programmierung von Webanwendungen. Dieses Angebot verwendet NodeJS und das Express-Framework für die serverseitige Verarbeitung.

    Der Kurs beginnt mit einer Wiederholung der Grundlagen von HTML und CSS, mit besonderem Schwerpunkt auf dem Webseiten-Layout mit CSS. JavaScript ist die Programmiersprache, die im gesamten Kurs verwendet wird, einschließlich Funktionen, Objekten, Modulen, jQuery-Framework, Ajax und Promises. Studenten verbringen die meiste Zeit damit, eine Reihe von immer komplexeren und anspruchsvoller werdenden Websites zu programmieren. Ein Abschlussprojekt während der letzten Kurswoche erstellt eine Website mit einem SQL-Datenbank-Backend, auf das der Client asynchron zugreift, um eine optimale Leistung zu erzielen.

    Dieser Kurs ist eine Voraussetzung für CS545 Web Application Architecture und CS572 Modern Web Applications. Voraussetzung: CS 220 oder CS 401 oder Zustimmung der Departementsfakultät

    (4-Einheiten)

  • Die Entwicklung von Android-Programmen ist eine aufregende und potenziell lukrative Erfahrung. Die Android-Entwicklung eröffnet dem Programmierer die Welt der Kreativität. Es ermöglicht Ihnen, sich auf eine Weise auszudrücken, von der Sie in einer digitalen Welt nie geträumt haben, in der Sie ein Produkt erstellen und es mit nur einem Klick auf eine Schaltfläche Milliarden von Benutzern zur Verfügung stellen können. In diesem Kurs lernen Sie, wie Sie Android-Anwendungen mit der Programmiersprache Kotlin entwickeln.

    Zu den Themen gehören: Einrichten Ihres Computers für die Android-Programmierung; Manifest-Grundlagen; Layouts, Aktivitäten, Ansichten und UI-Komponenten; Arbeiten mit Absichten, Fragmenten und gemeinsamen Einstellungen; Webansicht und HTML; Arbeiten mit Multimedia; Android Jetpack-Komponenten, Raumdatenbank und JSON; Understatement-Sensoren; Lokalisierung; Veröffentlichung der App im Google Play Store. (4 Einheiten) Es sind keine Voraussetzungen erforderlich.

  • Dieser Kurs konzentriert sich auf die Verwendung von JavaScript im Backend (NodeJS). Die Schüler lernen, wie NodeJS funktioniert, und erhalten ein tiefes Verständnis für die Kernanwendungsprogrammierschnittstelle (API). Der Kurs behandelt die Funktionsweise der JS-Compiler-Engine (V8), die Strukturierung von Code mithilfe von Modulen und die Funktionsweise von asynchronem Code in Node und der Node-Ereignisschleife. Der Kurs lehrt auch Node Package Manager (NPM), wie man einen Webserver erstellt, wie man mit dem Express-Framework arbeitet und wie man ODM wie Mongoose verwendet, um MongoDB zu verwalten. Die Teilnehmer lernen alle Techniken kennen, die eine moderne Webanwendung definieren, einschließlich der Authentifizierung von Benutzern mit JSON-Web-Tokens, der Speicherung von Daten in der Datenbank und der Erstellung einer Restful-API. Andere Informatikkonzepte werden ebenfalls behandelt.

    Themen sind ua: HTTP- und Rest-API-Design; Zustandslose vs. zustandsbehaftete Anwendungen; Knoten-API; Node Package Manager (npm); Model-Controller-Architektur, Express-Framework und Middleware; Serverseitiges Routing; Tokenbasierte Authentifizierung. Keine Voraussetzungen.

    (4-Einheiten)

  • Big Data ist die neue natürliche Ressource: Alle 12-18 Monate verdoppeln sich die Daten. Dieser neue Big Data Analytics-Kurs behandelt die grundlegenden Konzepte und Tools für das Mining großer unterschiedlicher Datensätze, um neue Erkenntnisse zu gewinnen. Sie beherrschen die Verwendung der R-Sprache, um Wordcloud, Pagerank, Datenvisualisierung, Entscheidungsbäume, Regression, Clustering, neuronale Netze und mehr zu erstellen. Sie werden mit einigen großen Datensätzen von mehreren Millionen arbeiten und auch Twitter-Feeds minen. Sie lernen Hadoop/MapReduce- und Streaming Data-Konzepte kennen und erkunden andere Apache Big Data-Projekte wie Spark, Flink, Kafka, Storm, Samza, NoSQL durch individuelle Forschungsarbeiten. Sie arbeiten in Gruppen an offenen Projekten von Kaggle.com, um um Preisgelder zu konkurrieren, indem Sie die besten datenanalytischen Herausforderungen lösen. Sie lernen auch, den branchenführenden IBM SPSS Modeler und Open-Source-Data-Mining-Plattformen zu verwenden. Der Kurs wird auch eine breite Palette von Video-Schulungsmaterialien von MIT, Coursera, Google und anderen verwenden. (4 Einheiten) Voraussetzung: Zustimmung der Fakultätsfakultät

  • Softwareentwicklung ist der systematische Prozess des Konzipierens, Spezifizierens, Analysierens, Entwerfens, Programmierens, Testens, Dokumentierens und Wartens im Zusammenhang mit der Produktion einer System- oder Anwendungssoftware.

    In diesem Kurs lernen die Studierenden, wie sie unternehmenstaugliche Softwarelösungen erstellen, indem sie die Anforderungen von der Konzeption über die Analyse, den Entwurf, die Implementierung und das Testen bis hin zur Lieferung und Bereitstellung funktionsfähiger Software berücksichtigen. Es vermittelt eine Reihe von Prinzipien, Best Practices und verwandten Tools und Technologien und wie diese bei der Produktion hochwertiger, robuster Softwarelösungen verwendet und angewendet werden. Die behandelten Techniken und Tools konzentrieren sich hauptsächlich auf die Java-Softwareplattform, sind jedoch nicht darauf beschränkt.

    Wir werden die Techniken untersuchen, wie man die richtigen Anforderungen für ein Softwareprodukt identifiziert und ermittelt, wie man diese Anforderungen analysiert, eine geeignete Softwarelösungsarchitektur auswählt und ein geeignetes Design erstellt. Und wie man den Entwurf im Code implementiert, einschließlich Tests, und wie man letztendlich das resultierende Artefakt für die Lieferung/Bereitstellung erstellt und verpackt. Wir werden verschiedene moderne Bereitstellungsmechanismen betrachten, einschließlich der Cloud. Voraussetzung: CS 401

    Themen sind ua:

    • Datenbank Design und Entwicklung
    • Objektorientierte Analyse und Design
    • Domänenmodellierung
    • Systemarchitektur
    • Webanwendungsentwicklung mit Spring Web MVC
    • Systemimplementierung und -tests; einschließlich Unit-Tests, Mocking und Integrationstests
    • Softwaresicherheit – einschließlich Identitäts- und Zugriffsmanagement
    • Containerisierung und Containertechnologien

    (4-Einheiten)

  • Das Ziel dieses Kurses ist es, den Studierenden Kenntnisse und Fertigkeiten in Führungspositionen zu vermitteln, einschließlich Kommunikationsfähigkeiten als Vorbereitung auf zukünftige Führungsrollen.

    Am Ende dieses Kurses werden die Studenten die Antworten auf die wichtigsten Fragen zur effektiven Führung verstehen, einschließlich der folgenden:

    Gibt es 'geborene' Führer?

    Müssen Sie Charisma haben, um effektiv führen zu können?

    Welches Gut ist erforderlich, um ein Führer zu sein?

    Was ist der Unterschied zwischen Führung und Führung?

    Was sind die vielen "Intelligenzen", die in dieser Zeit erforderlich sind?

    Was ist „Fehlverhalten des Managements“ und wie führt es zur Selbstsabotage?

    Zu wissen, dass Feedback für den Führungsprozess von wesentlicher Bedeutung ist, wie können wir die Angst vor dem Geben und Empfangen überwinden?

    Was ist die Ursache von 80% der Probleme am Arbeitsplatz?

    Gibt es wissenschaftliche Forschungsergebnisse, die die Organisation bei der Verbesserung ihrer individuellen und Teamführungsfähigkeiten unterstützen?

    Zu den Gastrednern zählen bedeutende Unternehmer, Informatiker, Philanthropen, Akademiker und andere führende Persönlichkeiten der Gesellschaft.

    (2-Einheiten)

Fortgeschrittene Kurse

  • Projektmanagement führt den Studenten in das Lernen durch praktische Entwicklung eines Projekts, Vorlesungen, Lektüre, Erfahrung des Projektmanagement-Frameworks, seiner Wissensbereiche (10 Wissensbereiche und verwandte Prozesse) und Einsatz ein. Die Studierenden arbeiten an einer realen Projektimplementierung und erleben die Rolle des Projektmanagements in allen Phasen des Softwareentwicklungslebenszyklus mithilfe einer Anwendungsentwicklungsmethodik.

    Die Studierenden sammeln echte Erfahrungen in den Bereichen Projektplanung, Anforderungsmanagement, Umfangsmanagement, Codierungsstandards, Kostenschätzungen für Module/Code in Bezug auf den Dollarwert sowie in Bezug auf die Arbeitsstunden, Terminmanagement, Qualitätsmanagement, Risikomanagement und Kommunikationsmanagement. Am Ende des Kurses verfügen die Studierenden über eine lauffähige Anwendung, die unter Verwendung der in der Industrie verwendeten PM-Prozesse entwickelt wurde. (Angefangen bei den Anforderungen bis hin zur Produktionsbereitstellung). Das Projekt wird unter Verwendung der neuesten Java-Technologien und ihrer Frameworks mit Webdiensten und Designmustern entwickelt.

  • In diesem Kurs werden fortgeschrittene Themen im Design von Programmiersprachen mit Schwerpunkt auf formalen Methoden und Abstraktionsmechanismen behandelt. Zu den Themen gehören die Abstraktion von Daten und Steuerelementen, die formale Festlegung von Syntax und Semantik, Nachweise für die Programmkorrektheit, nicht deterministische Programmierung, fortgeschrittene Steuerungsstrukturen und das Studium spezifischer Sprachen. (4-Einheiten) Voraussetzung: CS 401 oder Zustimmung der Fakultät der Fakultät.

  • Dieser Kurs behandelt Cloud-Programmiermuster und ermöglicht es den Teilnehmern, die Arbeit mit verschiedenen Web-Cloud-Diensten zu üben, einschließlich AWS Serverless-Funktionen.

    Zu den Themen gehören: Identity & Access Management (IAM); Virtual Private Cloud (VPC), Network Access Control Lists – NACL, Subnetze, Availability Zones, Simple Storage Service (S3), Elastic Cloud Compute (EC2), Simple Notification Service (SNS), Elastic Load Balancer (ELB), Auto Scaling, Route 53, API in der Cloud; AWS Lambda, serverlos; Internetdienste; Anwendungsbereitstellung, Abschlussprojekt. (4 Punkte). (Keine Voraussetzungen)

  • Moderne Informationsverarbeitung wird durch umfangreiche Datenbestände definiert, die von herkömmlichen Datenbanksystemen nicht verarbeitet werden können. Dieser Kurs behandelt die neuesten Technologien, die von Branchenführern entwickelt und eingesetzt werden, um dieses Problem auf die effizienteste Weise zu lösen. Zu den behandelten Themen gehören ua MapReduce-Algorithmen, MapReduce-Algorithmusentwurfsmuster, HDFS, Hadoop-Clusterarchitektur, YARN, Berechnen relativer Häufigkeiten, Sekundärsortierung, Web-Crawling, invertierte Indizes und Indexkomprimierung, Spark-Algorithmen und Scala. (4-Einheiten) Voraussetzung: CS 435-Algorithmen.

  • Big-Data-Technologien haben sich in nur wenigen Jahren vom Hype zu einem der Kernbestandteile des neuen digitalen Zeitalters entwickelt. Diese Technologien sind sehr nützlich, um Informationen in Wissen umzuwandeln. Ziel des Kurses ist es, Ihrem Arsenal einige wichtige Tools hinzuzufügen, die Ihnen bei der Lösung verschiedener Big-Data-Probleme helfen.

    Der Kurs beginnt mit der Beantwortung von Fragen wie „Was ist Big Data und seine Bedeutung? Wie speichert man Big Data zuverlässig und günstig? Welche Tools sollten verwendet werden, um hilfreiche Informationen aus diesen großen Datenmengen zu finden? usw." In diesem Kurs lernen die Studierenden verschiedene Tools und Programmiermodelle zur Analyse von Big Data kennen. Zu den Themen gehören Hadoop-Ökosystemprojekte wie MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper sowie Apache Spark-Ökosystemprojekte wie Spark SQL und Spark Streaming. Die Studierenden haben auch die Möglichkeit, eine vollständige Big-Data-Pipeline aufzubauen, beginnend mit der Datenerfassung in Echtzeit, der Verarbeitung, Analyse und schließlich der Anzeige der Ergebnisse in grafischem Format auf Dashboards. Die Schüler werden hauptsächlich mit einem Hadoop-Cluster mit einem Knoten der Cloudera-Distribution arbeiten. (4 Einheiten) (MPP ist die einzige Voraussetzung)

  • Mit dem schnellen Wachstum von Daten aus verschiedenen Quellen sind die meisten Unternehmen und Organisationen stark datengetrieben geworden. Schlüsselinformationen aus solchen Daten zu extrahieren und diese in Wissen und Intelligenz umzuwandeln, ist die Schlüsselfunktion von Big Data Analytics. Aus diesem Grund geben immer mehr Unternehmen mehr Geld für Data Analytics aus. Dies wird nun durch das schnelle Wachstum noch beschleunigt Digitale Transformation. Dieser Big Data Analytics-Kurs behandelt die grundlegenden Konzepte von Analysen, Algorithmen und Tools zum Mining großer, vielfältiger Datensätze, um neue Geschäftserkenntnisse zu generieren.

    Alle wichtigen Analysen – einschließlich Beschreibend, prädiktiv, präskriptiv und diagnostisch wird abgedeckt. Es behandelt algorithmische Ansätze zur Analyse großer Datensätze (unstrukturiert, gemischt, strukturiert, Graphen und Streaming): Maschinelles Lernen (Neuronale Netze, Deep Learning, Entscheidungsbäume, Random Forest und mehr), KI, Verarbeitung natürlicher Sprache (NLP), Statistik und Streaming-Algorithmen, über moderne verteilte Analyseplattformen (z. B. MapReduce, Hadoop, Spark,) für Regression (Vorhersage), Klassifizierung, Clustering, Empfehlungssysteme und mehr. Erweiterte Big-Data-Analyse, Insbesondere Kausale Analytik wird ebenfalls abgedeckt. Als Programmiersprachen kommen hauptsächlich Python / R zum Einsatz. Die Schüler werden auch ein Gruppenprojekt durchführen, um ein reales Problem mit Big Data Analytics zu lösen.

    (4 Einheiten) Voraussetzung: Zustimmung der Fachbereichsleitung

  • Dieser Kurs betrachtet die aktuellen Methoden und Praktiken für gutes Design von Softwaresystemen. Zu den Themen gehören Softwaredesignmuster, Frameworks, Architekturen und Designsysteme zur Anwendung dieser Abstraktionen auf mehreren Ebenen. (2-4 KP) Voraussetzung: CS 401 oder Zustimmung der Departementsfakultät.

  • Dieser Kurs konzentriert sich auf die Vermittlung der Prinzipien und Praktiken, die bei der Entwicklung größerer Unternehmensanwendungen verwendet werden. Wir werden die verschiedenen häufig verwendeten Architekturschichten und verschiedene mit diesen Schichten verbundene Technologien untersuchen, einschließlich Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP) und Integration mit anderen Anwendungen über Webdienste (RESTfull und SOAP), Messaging und Remote-Methodenaufruf. Grundkenntnisse in relationalen Datenbanken und SQL sind erforderlich. Wenn Sie keinen soliden Kurs oder keine guten Arbeitskenntnisse in SQL haben, sollten Sie sich für CS422 DBMS anmelden, bevor Sie sich für EA anmelden. (4 Einheiten)

  • Dieser Kurs konzentriert sich auf Webanwendungen in einer Unternehmensumgebung. Eine Unternehmensanwendung ist ein großes Softwaresystem, das für den Betrieb in einer großen Organisation wie einem Unternehmen oder einer Regierung entwickelt wurde. Unternehmensanwendungen sind komplex, skalierbar, komponentenbasiert, verteilt und geschäftskritisch. Dieser Kurs, CS545, konzentriert sich auf die Front-End- oder Präsentationsschicht einer Enterprise-Webanwendung. CS544 Enterprise Architecture ist ein Begleitkurs, der sich auf die Back-End- oder Business-Schicht konzentriert, einschließlich Geschäftslogik, Transaktionen und Persistenz. CS472, Web Application Programming, ist eine Voraussetzung, die HTML, CSS, JavaScript, Servlets und JSP abdeckt.

    Der Kurs vermittelt Prinzipien und Muster, die über Plattformen und Frameworks hinweg allgemein sind. In diesem Kurs werden die beiden vorherrschenden Java-Web-Frameworks Java Server Faces (JSF) und SpringMVC untersucht und mit ihnen gearbeitet. JSF ist ein Komponenten-basiertes Framework und ist die offizielle Spezifikation des Präsentations-Frameworks für den Java Enterprise Edition-Technologiestack. SpringMVC ist Teil des Core Spring-Frameworks und hat sich in den letzten Jahren zum am häufigsten verwendeten Java-Web-Framework entwickelt. (4-Einheiten) Voraussetzung: CS 472 oder Zustimmung der Fakultät der Fakultät.

  • React ist die beliebteste Bibliothek zum Erstellen leistungsstarker Webanwendungen. In diesem Kurs lernen die Teilnehmer, wie sie React und ES6 verwenden, um robuste, skalierbare Anwendungen von Grund auf zu erstellen, indem sie die neuesten Redux-Muster verwenden, um ihren Anwendungsstatus beizubehalten.

    Zu den Themen gehören: Entwicklung von komponentenbasierten Webanwendungen, Entwurfsmuster für Komponenten, Nutzung von Rest-APIs, Persistenz mit Browser-API, JSX und React-API (Props, Proptypes, Events, Refs), Anwendungsdatenfluss und Bereitstellen von React-Apps. Voraussetzungen WAP oder CS 477.

    (4-Einheiten)

  • In diesem Kurs lernen die Teilnehmer die reaktive Programmierarchitektur von Single-Page-Webanwendungen (SPA) zusammen mit allen notwendigen Fähigkeiten, um eine vollständige moderne Webanwendung mit TypeScript und Angular zu erstellen. Die Schüler erhalten ein tiefes Verständnis dafür, wie Angular funktioniert, einschließlich: Änderungserkennung; Reaktive RxJs-Programmierung mit Observables und Subjekten; Das Schatten-DOM; Zonen; Module, Komponenten, benutzerdefinierte Anweisungen und Pipes; Dienste und Abhängigkeitsinjektion; Angular-Compiler: JIT- und AOF-Kompilierung; Formulare (vorlagengesteuert und datengesteuert); Routing, Guards und Routenschutz; HTTP-Client; und JWT JSON Web Token-Authentifizierung. Voraussetzungen: WAP oder CS 477.

    (4-Einheiten)

  • Dieser Kurs wechselt von der Webentwicklung zur Entwicklung mobiler Anwendungen mit React Native, einem beliebten Framework von Facebook, mit dem plattformübergreifende native Anwendungen mit JavaScript ohne Java oder Swift ausgeführt werden können. Der Kurs stellt modernes JavaScript – JavaScript XML (JSX) – eine JavaScript-Erweiterung vor. Die Studierenden sammeln Erfahrungen mit React Native und seinen Paradigmen, Anwendungsarchitekturen und Benutzeroberflächen. Den Abschluss des Studiums bildet ein Abschlussprojekt, bei dem die Studierenden eine komplett selbst gestaltete mobile App umsetzen. Voraussetzungen: WAA oder CS568.

    (4-Einheiten)

  • In diesem Kurs lernen Sie die reaktive Programmierarchitektur von SPA (Single Page-Webanwendungen) mit allen erforderlichen Fähigkeiten, um eine vollständige moderne Webanwendung zu erstellen. Zu den Technologien gehören: NodeJS-, ExpressJS-, TypeScript-, AngularJS2-, Firebase- und NoSQL-Datenbanken (MongoDB). Der Kurs umfasst:

    • Funktionsweise der C ++ V8-Engine und des asynchronen Codes in Node und in der Node-Ereignisschleife.
    • So strukturieren Sie Ihren Code zur Wiederverwendung und zum Erstellen einer Restful-API mit Modulen und ExpressJS.
    • Funktionsweise von NoSQL-Datenbanken: Mongo Shell, Aggregationsframework, Replikatsätze, Clustering, Shards, Mongoose ORM.
    • Tiefes Verständnis für die Funktionsweise von Angular (unterstützt von Google), Änderungserkennung, Reactive RxJs-Programmierung mit Observables und Subjekten, The Shadow DOM, Zonen, Module und Komponenten, benutzerdefinierte Direktiven und Pipes, Services und Abhängigkeitsinjektion, Angular Compiler, JIT- und AOF-Kompilierung , Formulare (vorlagen- und datengesteuert), Datenbindung, Routing, Guards und Routenschutz, HTTP-Client, JWT JSON-Authentifizierung über Web-Token.

    (4-Einheiten)

  • In diesem Praktikum führen die Studierenden computerbezogene Aufgaben in einer technischen Fachposition aus. Die durchgeführten Aufgaben können im Entwurf und in der Entwicklung neuer Systeme oder in der Anwendung bestehender Systeme für bestimmte Zwecke liegen. Praktikumsbeschreibungen werden vom Arbeitgeber und vom Studenten formuliert und müssen vorab von einer der Graduiertenfakultäten der Abteilung in Absprache mit dem Praktikumsleiter, in dem der Student untergebracht ist, genehmigt werden. (Dieser Kurs richtet sich hauptsächlich an Studenten im Praktikum oder in Kooperationsprogrammen.) (0.5-1 Einheiten pro Block - kann wiederholt werden.)

  • Maschinelles Lernen (ML) ist das Forschungsgebiet, das Computern die Fähigkeit verleiht, aus Daten zu lernen. Es ist das Herzstück fast aller wissenschaftlichen Disziplinen und die Untersuchung der Generalisierung (d. h. Vorhersage) aus Daten ist das zentrale Thema des maschinellen Lernens . Dieser Kurs bietet eine Einführung für Hochschulabsolventen in maschinelles Lernen und eine ausführliche Behandlung neuer und fortgeschrittener Methoden des maschinellen Lernens sowie der zugrunde liegenden Theorie. Es betont Ansätze mit praktischer Relevanz und diskutiert eine Reihe aktueller Anwendungen des maschinellen Lernens, wie Data Mining (in Big Data / Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotik, Bioinformatik sowie Text- und Web-Datenverarbeitung. Maschinelles Lernen wird in verschiedenen Branchen eingesetzt, darunter Finanzdienstleistungen, Öl und Gas, Gesundheitswesen, Marketing und Werbung, Regierung, Internet und Internet der Dinge.

    Dieser Kurs behandelt eine Vielzahl von Lernparadigmen, Algorithmen, theoretischen Ergebnissen und Anwendungen. Es verwendet grundlegende Konzepte aus künstlicher Intelligenz, Informationstheorie, Statistik und Kontrolltheorie, soweit sie für das maschinelle Lernen relevant sind. Zu den Themen gehören: überwachtes Lernen (generatives / diskriminatives Lernen, parametrisches / nicht parametrisches Lernen, neuronale Netze, Unterstützungsvektormaschinen, Entscheidungsbaum, Bayes'sches Lernen und Optimierung); unbeaufsichtigtes Lernen (Clustering, Dimensionsreduktion, Kernel-Methoden); Lerntheorie (Bias / Varianz-Kompromisse; VC-Theorie; große Margen); Verstärkungslernen und adaptive Kontrolle. Weitere Themen sind HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (mit neuronalen Netzen) und das Entwerfen von Algorithmen, deren Leistung auf grundlegende Probleme des maschinellen Lernens genau analysiert werden kann.

    Ein wichtiger Teil des Kurses ist ein Gruppenprojekt. Die wichtigsten Open-Source-Tools, die für das parallele, verteilte und skalierbare maschinelle Lernen verwendet werden, werden kurz behandelt, um die Schüler bei der Durchführung der Projekte zu unterstützen. (4-Einheiten) Voraussetzung: Keine.

  • Künstliche Intelligenz (KI) ist die Disziplin, die versucht, intelligente Systeme aufzubauen und zu verstehen. Computer mit menschlicher Intelligenz hätten einen enormen Einfluss auf die Gesellschaft. Intelligente Software-Agenten und Multi-Agent-Systeme wachsen schnell und helfen in vielen Bereichen wie digitale Transformation, Automatisierung, Konversationssysteme, Websuche, Robotik, Fertigung, Gesundheit, Pharmazie, Bankwesen, Lieferkette, autonomes Fahren, Werbung, Spiele, nur um nenne ein paar. KI treibt eine Multi-Billionen-Dollar-Industrie an. Dieser Kurs vermittelt die Grundlagen der KI und vermittelt den Studierenden ein praktisches Verständnis des Bereichs. Die Themen umfassen die Kernkonzepte der KI – intelligente Agenten, Multiagentensysteme, intelligente Suche, Logik erster und höherer Ordnung, Wissensrepräsentation, Argumentation, Wahrnehmung, Lernen, Semantik (NLP, Bild, Objekt…), Planung, Entscheidungsfindung, handelnd, reaktiv, abwägend, rational, adaptiv, Kommunikation und Interaktion. Der Kurs betont Ansätze mit praktischer Relevanz und diskutiert eine Reihe aktueller populärer Anwendungen von KI. Wichtige Open-Source-Tools und Programmiersprachen für KI (einschließlich Low-Code und No-Code) werden kurz behandelt. Die Schüler werden auch ein Gruppenprojekt durchführen, um ein reales Problem mit KI zu lösen.

    (4 Einheiten) Voraussetzung: Zustimmung der Fachbereichsleitung

  • In diesem Kurs werden die Techniken, Prinzipien und Muster beschrieben, wie flexible, skalierbare, testbare und belastbare Softwaresysteme mithilfe von Mikrodienstleistungen entworfen werden können. Wir werden untersuchen, wie wir große Anwendungen in kleinere Mikrodienste aufteilen können, die einfacher zu erstellen sind, und andere Vorteile im Vergleich zu monolithischen Unternehmensanwendungen. Eine verteilte Microservice-Architektur bringt auch viele Herausforderungen mit sich. Wir werden diese Herausforderungen untersuchen und wie wir sie angehen können. Themen dieses Kurses sind Architekturstile, Integrationstechniken und -muster, domänengetriebenes Design, ereignisgesteuerte Architektur und reaktive Programmierung. (4-Gutschriften). (Keine Voraussetzungen)

  • Zu Ehren von 50 Jahren MIU-Ausbildung freut sich die Informatikabteilung, unsere neue Golden Jubilee ComPro Tech Talks-Reihe zu initiieren.

    Vorträge sind möglich hier.

Studienoptionen

Es gibt 3 Studienmöglichkeiten für internationale Studierende.
Jeder bietet einen MS in Informatik.
Alle haben Eintrittstermine im Februar, Mai, August oder November.

ProgrammeMonate des On-Campus-StudiumsBezahltes PraktikumFernstudium (DE) im Praktikum
CPT8-9Bis zu 2 Jahre CPT4 DE-Kurse
OPT8-9Bis zu 11.5 Monate CPT + 3 Jahre OPT (optional)4 DE-Kurse
Vollzeit auf dem Campus12-133-Jahres- OPT zu erhaltenNA

„Als ich zum ersten Mal von dem MSCS-Programm hörte, bezweifelte ich es. Ich konnte nicht glauben, dass so etwas existiert. Aber eines Tages trat ein Freund von mir dem Programm bei. Da habe ich bestätigt, dass es echt ist. Dann nahm ich meinen Bewerbungsprozess wieder auf. Gut! Es ist wahr, ich bin hier, ich habe das Programm abgeschlossen und ich bin so glücklich. “

Sind Sie bereit, eine neue Karriere zu beginnen?

Neu Rekrutierungstour durch West- und Nordafrika vom 7. bis 22. Dezember

> Sehen Sie sich die Details an und reservieren Sie Ihr kostenloses Ticket

(Tickets sind ab sofort für alle 5 Veranstaltungen erhältlich)

WARTEZEITEN FÜR INTERVIEWS IN DER US-BOTSCHAFT UND BEARBEITUNGSZEITEN FÜR MSCS-ANMELDUNGEN

Wir haben festgestellt, dass viele Länder sehr verzögerte Interviewtermine haben. Bitte sehen Wartezeiten für Visa-Termine (state.gov) um herauszufinden, wie lange es dauert, einen Interviewtermin für Ihr Land/Ihre Stadt zu bekommen.

Wenn die Wartezeit für das Vorstellungsgespräch mehr als 2 Monate beträgt, empfehlen wir Ihnen, sich sofort zu bewerben und Ihre Bewerbung auszufüllen, auch wenn Sie planen, sich für einen zukünftigen Eintrag zu bewerben. Auf diese Weise können Sie den Bewerbungsprozess abschließen, Ihr I-20 erhalten und dann einen Interviewtermin erhalten. Sie müssen über ein I-20 verfügen, um das Interviewdatum zu erhalten. Wenn das Datum vor Ihrem geplanten Einreisedatum in die USA liegt, können Sie Ihr Ankunftsdatum jederzeit verschieben, sobald Sie das Visum erhalten haben. Wir würden Ihnen einfach ein neues I-20 für das Einreisedatum ausstellen, für das Sie kommen möchten.

Bei Fragen zu diesen Informationen wenden Sie sich bitte an unsere Zulassungsstelle unter Zulassungsdirektor@miu.edu.

Stellen Sie sich diese 4 Fragen:

  1. Sie haben einen Bachelor-Abschluss in einem technischen Bereich? Ja oder Nein?

  2. Hatten Sie gute Noten im Bachelor? Ja oder Nein?

  3. Sie haben nach Ihrem Bachelor-Studium mindestens 12 Monate hauptberufliche, bezahlte Berufserfahrung als Software-Entwickler/in? Ja oder Nein?

  4. Können Sie für Kurse in die USA kommen (dieses Programm ist nicht online verfügbar)? Ja oder Nein?

Wenn Sie alle obigen Fragen mit „Ja“ beantwortet haben, Sie können sich bewerben (Dies garantiert jedoch nicht, dass Sie akzeptiert werden.)