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)

  • Dieser Kurs bietet ein fokussiertes Programm zur Verbesserung der Programmier- und Analysefähigkeiten in fünf Bereichen: Problemlösung, Datenstrukturen, objektorientierte Programmierung, Java-Programmiersprache und Verwendung der 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)

  • In diesem Kurs werden die grundlegenden Prinzipien der objektorientierten Programmierung vorgestellt. Die Schüler lernen, wiederverwendbare und besser gewartete Software zu schreiben, und integrieren dieses Wissen in Laboraufgaben und Projekte. Zu den Themen gehören: Grundprinzipien und Modelle objektorientierter Programmierung, UML-Klassendiagramme und Entwurfsprinzipien, 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)

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

  • 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

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

  • 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

  • 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

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

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

  • In nur wenigen Jahren haben sich Big Data-Technologien vom Hype zu einer der Kernkomponenten des neuen digitalen Zeitalters entwickelt. Diese Technologien sind sehr nützlich, um Informationen in Wissen umzuwandeln.

    Ziel des Kurses ist es, einige wirklich wichtige Tools in Ihr Arsenal aufzunehmen, mit denen Sie verschiedene Big-Data-Probleme lösen können. Wir beginnen mit Antworten auf Fragen wie „Was ist Big Data? Warum ist es wichtig oder nützlich? Wie speichern Sie diese Big Data? “ Anschließend untersuchen wir verschiedene Tools und Programmiermodelle aus dem Big-Data-Technologie-Stack, mit denen wir die Daten analysieren können. Zu den Themen gehören einige Projekte im Hadoop-Ökosystem, wie z. B. MapReduce-, Pig-, Hive-, Sqoop-, Flume-, HBase- (NoSQL DB), Zookeeper- und Apache Spark-Ökosystemprojekte. Wir werden auch eine Einführung in AWS und EMR behandeln. Sie arbeiten hauptsächlich mit einer Hadoop-Distribution mit einem Knoten von Cloudera. (4 Einheiten) (Keine Voraussetzungen)

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

  • 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 ist das Studiengebiet, das Computern die Fähigkeit verleiht, aus Daten zu lernen, ist das Herzstück fast jeder wissenschaftlichen Disziplin, und das Studium der Generalisierung (d. h. der Vorhersage) von Daten ist das zentrale Thema des maschinellen Lernens. Dieser Kurs bietet eine Einführung in das maschinelle Lernen auf Absolventenebene und eine eingehende Behandlung neuer und fortgeschrittener Methoden des maschinellen Lernens sowie der zugrunde liegenden Theorie. Es betont praxisrelevante Ansätze und diskutiert eine Reihe neuerer Anwendungen des maschinellen Lernens, wie beispielsweise Data Mining (in Big Data / Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotik, Bioinformatik sowie Text- und Webdatenverarbeitung. Maschinelles Lernen wird in verschiedenen Branchen eingesetzt, darunter Finanzdienstleistungen, Öl und Gas, Gesundheitswesen, Marketing und Werbung, Behörden, 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.

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

    Diese monatliche Reihe wird von Professor Renuka Mohanraj organisiert und moderiert.

    Gespräche finden Sie unter https://www.youtube.com/playlist?list=PLoBuI1C_-EtrAMdD45sldMnd8HXNhmyBQ.

    Sehen Sie sich unseren neuesten aufgezeichneten Vortrag vom Samstag, den 28. Mai 2022 an:

    MIU Computer Science Dozent Unubold Tumenbayar, ein AWS-zertifizierter professioneller Lösungsarchitekt, behandelte diese Themen in unserem neuesten ComPro Tech Talk:
    o Erstellung einer Full-Stack-App in wenigen Minuten in der Cloud
    o Diskussion über moderne Technologien
    o GraphQL
    o Reagieren
    o NoSQL mit AWS-Services und -Tools

    Siehe die Folien von Unbold hier.

    Dieser Vortrag ist eine gute Vorschau auf unseren Cloud-Computing-Kurs (CS516).

Studienoptionen

Es gibt 3 Studienmöglichkeiten für internationale Studierende.
Jeder bietet einen MS in Informatik.
Alle haben Eintrittsdaten im Januar, April, August oder Oktober.

Unsere AngeboteMonate des On-Campus-StudiumsBezahltes PraktikumFernstudium (DE) im Praktikum
CPT8-9Bis zu 2 Jahre CPT4 DE-Kurse
OPT9-10Bis zu 11.5 Monate CPT + 3 Jahre OPT (optional)3 DE-Kurse
Vollzeit auf dem Campus12-133-Jahres- OPT OptionNA

„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?