Jste připraveni Pokrokujte svou kariéru?

Náš program se specializuje na oblasti softwarových systémů a vývoj softwaru s využitím OOP (Java), webových aplikací a datové vědy. Hlavní oblasti studia zahrnují: pokročilý vývoj softwaru, programování a architekturu webových aplikací, rozsáhlou analýzu dat a technologií, strojní učení a několik důležitých aplikačních oblastí.

Všechny kurzy jsou navrženy tak, aby vám pomohly rozvíjet svou kariéru a každý kurz obsahuje praktické úkoly. Pohled požadavky na absolvování studia.

NOVÝ! Ocenění Data Science Track

Standardní jádrové kurzy

  • Moderní programovací postupy (programování Java) (CS 401)

    Tento kurz představuje základní principy objektově orientovaného programování. Studenti se naučí psát opakovaně použitelný a lépe udržovaný software a integrují tyto znalosti do laboratorních úkolů a projektů. Témata zahrnují: základní principy a modely objektově orientovaného programování, diagramy tříd UML a zásady návrhu, které podporují opětovnou použitelnost a udržovatelnost softwaru. (Jednotky 4)

  • Pokročilý vývoj softwaru (CS 525)

    Tento kurz se zabývá současnými metodami a postupy pro správný návrh softwarových systémů. Témata zahrnují: návrhy softwarových návrhů, rámce, architektury a navrhování systémů pro použití těchto víceúrovňových abstrakcí. (Kredity 2-4) Předpoklad: CS 401 nebo souhlas oddělení fakulty.

  • Algoritmy (CS 435)

    Tento kurz představuje metody pro analýzu efektivity algoritmů (včetně analýz nejhorších a průměrných případů) a zavádí řadu známých, vysoce účinných algoritmů. Analýza, návrh a implementace algoritmů mají stejný důraz. Témata zahrnují vyhledávání a třídění, efektivitu operací na datových strukturách (včetně seznamů, hashtables, vyvážené binární vyhledávací stromy, prioritní fronty), grafové algoritmy, kombinatorické algoritmy, relační relace, dynamické programování, NP-kompletní problémy a některé speciální témata umožňuje. (Zvláštní témata zahrnují výpočetní geometrii, algoritmy pro kryptosystémy, aproximaci, velké údaje a paralelní výpočty.)

  • Počítačové sítě (CS 450)

    Cílem tohoto kurzu je seznámit se s pojmy, architektonickými principy a terminologií počítačových sítí tím, že zkoumá, jak fungují sítě a rozvíjí síťové aplikace. Tento kurz sleduje přístup shora dolů k pochopení sítí pomocí architektury a protokolů internetu jako primárního příkladu implementace zásad sítě. Začínáme na aplikační vrstvě a pokračujeme přes transportní vrstvu, síťovou vrstvu, vrstvu propojení a fyzickou vrstvu počítačových sítí. Studenti vyvíjejí několik síťových aplikací a dokončují několik laboratoří určených k vysledování a pochopení převládajících síťových protokolů používaných v Internetu. (Jednotky 4) Předpoklad: CS 401 nebo souhlas oddělení fakulty.

  • Systémy pro správu databází (CS 422)

    Databázové systémy organizují a načítá informace a umožňují uživateli snadno a efektivně přistupovat k požadovaným informacím. Témata zahrnují: relační datový model; SQL; ER modelování; relační algebra; normalizace dat; transakce; objekty v databázi; bezpečnost a integritu dat; datové sklady, OLAP a dolování dat; distribuované databáze; a studium konkrétního komerčního databázového systému. (Jednotky 4) Předpoklad: CS 401 nebo souhlas oddělení fakulty.

  • Softwarové inženýrství (CS 425)

    Softwarové inženýrství je kurz, který studentovi představí osvědčené postupy při vývoji softwaru prostřednictvím metodiky vývoje softwaru. Studenti již měli zkušenosti s předchozími kurzy s objektově orientovaným paradigmatem a používali některé základní diagramy UML pro účely modelování vztahů mezi softwarovými objekty. V oblasti softwarového inženýrství student rozvíjí dovednosti v sestavování těchto nástrojů a vytváří tak robustní, snadno udržovatelný software. Metodika vývoje softwaru popisuje, kdy a jak se mají koncepce OO a diagramy UML použít k dosažení cíle budování softwaru kvality. Kurz se zaměřuje na malý projekt, ve kterém lze ilustrovat a aplikovat principy diskutované v přednáškovém formátu. Na konci kurzu bude mít student běžící aplikaci, postavená v souladu s vysokými standardy metodiky vývoje RUP (Rational Unified Process).

  • Architektura a rámce webových aplikací (CS 545)

    Tento kurz se zaměřuje na webové aplikace v podnikovém prostředí. Podniková aplikace je rozsáhlý softwarový systém navržený tak, aby fungoval ve velké organizaci, jako je společnost nebo vláda. Podnikové aplikace jsou složité, škálovatelné, založené na komponentech, distribuované a kritické. Tento kurz, CS545, se zaměřuje na přední nebo prezentační vrstvu podnikové webové aplikace. CS544 Enterprise Architecture je doprovodný kurz zaměřený na zadní nebo obchodní vrstvu, včetně obchodní logiky, transakcí a vytrvalosti. CS472, programování webových aplikací, je předpokladem pro HTML, CSS, JavaScript, servlety a JSP.

    Kurz učí principy a vzory, které jsou obecné v různých platformách a rámcích. Kurz bude zkoumat a pracovat s dvěma převládajícími Java frameworky, Java Server Faces (JSF) a SpringMVC. JSF je komponentní systém a je oficiální specifikací rámce pro technologii Java Enterprise Edition. SpringMVC je součástí rámce jádra jádra a v posledních letech se stala nejpoužívanějším webovým rámcem jazyka Java. (Jednotky 4) Předpoklad: CS 472 nebo souhlas oddělení fakulty.

  • Programování webových aplikací (CS 472)

    Tento kurz poskytuje systematický úvod do programování interaktivních a dynamických webových aplikací. Kurz je určen jednotlivcům s malou nebo žádnou předchozí zkušeností z programování webových aplikací. Tato nabídka použije Java servlety a JSP pro zpracování na straně serveru. Předmět bude představovat HTML a CSS. JavaScript je zaměření kurzu a je pokryto funkčním programovacím jazykem, včetně jména a moduly jQuery, Ajax a JavaScript. Je to předpoklad pro architekturu webových aplikací CS545. Netýká se AngularJS nebo NodeJS, ale JavaScript, který je zde obsažen, vás připraví k tomu, abyste se naučili tyto technologie. (Jednotky 4)
    Předpoklad: CS 220 nebo CS 401 nebo souhlas oddělení fakulty.

  • Věda a technologie vědomí pro počítačové profesionály (FOR 506)

    Váš první kurz je speciálně navržen tak, aby dokázal vytvořit základ pro to, jak se můžete stát profesionálem v oblasti výpočetní techniky s nejlepším výkonem. Kurz je zakořeněn v praxi Transcendentální meditace, která vede k naplnění vašeho skutečného potenciálu. Dozvíte se o výhodách technologie TM, včetně schopnosti řešit složité problémy pomocí vynikajícího duševního fungování, které zvyšuje kreativitu a myšlení "mimo krabici". Kurz se zaměří na principy, které podporují špičkový výkon v aktivitě tím, že rozvíjí optimální kombinaci odpočinku a aktivity. Vyvinete a zažijete ideální každodenní rutinu, která podporuje úspěch v životě. (Jednotky 2)

  • Vedení technických manažerů (FOR 506B)

    Cílem tohoto kurzu je poskytnout studentům znalosti a dovednosti ve vedení, včetně komunikačních dovedností jako přípravy na budoucí vedoucí úlohy.

    Na konci tohoto kurzu studenti pochopí odpovědi na klíčové otázky týkající se efektivního vedení, včetně následujících:

    Existují vůdci?

    Musíte mít charisma vést efektivně?

    Jaký jeden majetek musí být vůdcem?

    Jaký je rozdíl mezi řízením a vedením?

    Jaká je řada "inteligencí", které musí vést v této době?

    Co je to "management malpractice" a jak to vede k self-sabotáž?

    Vědět, že zpětná vazba je nezbytná pro vedoucí proces, jak se dostáváme přes strach z dávání a přijímání?

    Jaký je zdroj 80% problémů nalezených na pracovišti?

    Je k dispozici vědecký výzkum, který pomůže organizaci zlepšit své individuální a týmové vedoucí schopnosti?

    Hostující mluvčí budou zahrnovat významné podnikatele, počítačoví vědky, filantropové, akademici a další významné vůdce ve společnosti.

    (Jednotky 2)

Další kurzy MSCS

  • Pokročilé programovací jazyky (CS 505)

    Tento kurz se zabývá pokročilými tématy v oblasti programovacího jazyka s důrazem na formální metody a abstrakční mechanismy. Témata zahrnují data a řídící abstrakci, formální specifikaci syntaxe a sémantiky, důkaz správnosti programu, non-deterministické programování, pokročilé řídicí struktury a studium specifických jazyků. (Jednotky 4) Předpoklad: CS 401 nebo souhlas oddělení fakulty.

  • Velká data (stopa datové vědy) (CS 522)

    Moderní zpracování informací je definováno obrovskými repozitáři dat, které nelze ovládat tradičními databázovými systémy. Tento kurz se zabývá nejnovějšími technologiemi, které vyvinuly a používají vedoucí představitelé průmyslu k řešení tohoto problému co nejefektivněji. Konkrétní témata zahrnují algoritmy MapReduce, modely návrhů algoritmů MapReduce, HDFS, cluster architektury Hadoop, YARN, relativní výpočty, sekundární třídění, procházení webu, invertované indexy a komprese indexů, algoritmy Spark a Scala. (Jednotky 4) Předpoklad: CS 435 algoritmy.

  • Analýza velkých dat (datová stopa) (CS 488)

    Big Data je nový přírodní zdroj: údaje se zdvojnásobují každý měsíc 12-18. Tento nový kurz Big Data Analytics zahrnuje základní koncepty a nástroje pro těžbu rozsáhlých datových sad, které generují nové poznatky. Budete ovládat používání jazyka R pro vytvoření Wordcloud, Pagerank, vizualizace dat, rozhodovací stromy, regrese, clustering, neuronové sítě a další. Budete pracovat s některými velkými více miliony záznamových datových souborů a také s mými Twitterovými kanály. Naučíte se koncepty Hadoop / MapReduce a Streaming Data a prozkoumáte další aplikace Apache Big Data jako Spark, Flink, Kafka, Storm, Samza a NoSQL. Budete pracovat ve skupinách na otevřených projektech od Kaggle.com, abyste mohli soutěžit o finanční výhru tím, že vyřešíte nejlepších datových a analytických výzev. Naučíte se také používat špičkové platformy IBM SPSS Modeler a open-source platformy pro dolování dat. V učebnici bestselleru #1 použitou v tomto kurzu napsal sám instruktor. Kurz bude také využívat širokou škálu video tréninkových materiálů od MIT, Coursera, Google a jinde. (Jednotky 4) Předpoklad: Souhlas oddělení fakulty

  • Velké datové technologie (Data Science track) (CS 523)

    Během několika málo let se rozsáhlé datové technologie dostaly z oblasti hype na jednu z hlavních složek nového digitálního věku. Tyto technologie jsou velmi užitečné pro transformaci informací na znalosti.

    Cílem kurzu je doplnit do vašeho arzenálu některé opravdu důležité nástroje, které vám pomohou vyřešit různé velké problémy s daty. Začneme tím, že poskytneme odpovědi na otázky, jako je "Co je to velká data? Proč je to důležité nebo užitečné? Jak ukládáte tato velká data? "Potom budeme studovat různé nástroje a programovací modely z velkého množství datových technologií, které nám pomohou analyzovat data. Témata zahrnují některé projekty v ekosystému Hadoop, jako jsou ekosystémy MapReduce, Prase, Úl, Sqoop, Flume, HBase (NoSQL DB), Zookeeper a Apache Spark. Představíme také úvod do AWS a EMR. Budete pracovat hlavně s distribucí Cloudovy jediným uzlem Hadoop. (Jednotky 4) (žádné předpoklady)

  • Zabezpečení počítače (CS 466)

    Tento kurz se hluboce zaměřuje na tři aspekty počítačové bezpečnosti: důvěrnost, integritu a dostupnost. Prozkoumává se několik modelů důvěrných bezpečnostních politik a zásad integrity. Je zkoumána úloha kryptografie při zajišťování důvěrnosti a integrity. Mezi další témata patří autentizace, audit, penetrační testování, časté zranitelnosti a detekce narušení. Kurz je zakončen případovou studií realistického zabezpečeného systému. Studenti budou požádáni, aby si přečetli články z bezpečnostní literatury a aplikovali je na materiály uvedené v přednáškách. (Kredity 4) Předpoklad: CS 401 nebo souhlas fakulty fakulty.

  • Podniková architektura (CS 544)

    Tento kurz se zaměřuje na výuku principů a postupů používaných při vývoji rozsáhlých podnikových aplikací. Budeme zkoumat různé architektonické vrstvy, které jsou často používány, a různé technologie spojené s těmito vrstvami, včetně Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP) a integrace s dalšími aplikacemi prostřednictvím webových služeb (RESTfull a SOAP), Zprávy a vzdálené volání metod. Musí mít pracovní znalosti relačních databází a SQL. Pokud nemáte silný kurz nebo dobré pracovní znalosti o SQL, měli byste se zaregistrovat do CS422 DBMS, než se zaregistrujete pro EA. (Jednotky 4)

  • Strojové učení (stopa datové vědy) (CS 582)

    Strojové učení, obor, který dává počítačům schopnost učit se z dat, je jádrem téměř každé vědecké disciplíny a studium zobecnění (tj. Predikce) z dat je ústředním tématem strojového učení. Tento kurz poskytuje poznatky o strojovém učení a hloubkové pokrytí nových a pokročilých metod v strojovém učení, stejně jako jejich základní teorie. Zdůrazňuje přístupy s praktickým významem a diskutuje o řadě nedávných aplikací strojového učení, jako je dolování dat (Big Data / Data Science, Data Analytics), zpracování přirozeného jazyka, počítačová vize, robotika, bioinformatika a zpracování textových a webových dat. Strojové učení se používá v různých odvětvích, včetně finančních služeb, ropy a plynu, zdravotní péče, marketingu a reklamy, vlády, internetu a internetu věcí.

    Tento kurz pokrývá celou řadu učebních paradigmat, algoritmů, teoretických výsledků a aplikací. Používá základní pojmy z umělé inteligence, teorie informací, statistiky a teorie řízení, pokud jsou relevantní pro strojní učení. Témata zahrnují: supervizované učení (generativní / diskriminační učení, parametrické / neparametrické učení, neuronové sítě, podpůrné vektorové stroje, rozhodovací strom, Bayesovské učení a optimalizace); bez dohledu (shlukování, zmenšení dimenzí, metody jádra); teorie učení (porozumění / odchylka, teorie VC, velké marže); posilování učení a adaptivní řízení. Mezi další témata patří HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (s neurálními sítěmi) a návrhové algoritmy, jejichž výkonnost může být důkladně analyzována pro základní problémy se strojním učením.

    Důležitou součástí kurzu je skupinový projekt. Hlavní nástroje s otevřeným zdrojovým kódem, které se používají pro paralelní, distribuované a škálovatelné strojní učení, budou stručně pokryty, aby pomohly studentům, kteří projekty provádějí. (Jednotky 4) Předpoklad: Žádný.

  • Programování mobilních zařízení (CS 473)

    Význam programování mobilních zařízení se v posledních letech objevil jako nová oblast vývoje softwaru. Tento kurz připravuje studenty k vývoji aplikací, které běží na mobilních zařízeních, jako je IPhone, IPad nebo telefon Android. Jedná se o rychle se rozvíjející trh. Kurz se zaměřuje na instalaci, vývoj, testování a distribuci mobilních aplikací. Na konci tohoto kurzu jsou studenti schopni vyvíjet aplikaci pro pokryté platformy, simulovat je, otestovat je na skutečném zařízení a nakonec zveřejnit v obchodě s aplikacemi a zpřístupnit je uživatelům. (Jednotky 4) Předpoklad: CS472 nebo souhlas fakulty oddělení.

  • Moderní webové aplikace (CS 572)

    V tomto kurzu se naučíte Reaktivní programovací architekturu SPA (Single Page Web Applications) spolu se všemi potřebnými dovednostmi pro vybudování kompletní moderní webové aplikace. Mezi technologie patří: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase a NoSQL databáze (MongoDB). Kurz bude zahrnovat:

    • Jak funguje modul C ++ V8 a asynchronní kód v uzlu a uzlu události uzlu.
    • Struktura kódu pro opětovné použití a vytvoření modulu Restful API pomocí modulů a ExpressJS.
    • Jak pracují databáze NoSQL: Mongo Shell, Agregační rámec, Sady replik, Clustering, Shards, Mongoose ORM.
    • Hluboké porozumění tomu, jak Angular (podporované společností Google) funguje, detekce změn, programování reaktivních RxJs se sledovateli a subjekty, DOM stínu, zóny, moduly a komponenty, vlastní směrnice a potrubí, služby a závislostní injekce, kompilace úhlů, kompilace JIT a AOF , Formuláře (šablonové a datové řízení), vázání dat, směrování, ochrana stráže a trasy, klient HTTP, ověřování JWT JSON Web Token.

    (Jednotky 4)

  • Operační systémy (CS 465)

    Operační systém řídí centrální zdroje počítačového systému a přiděluje je jednotlivým uživatelům. Témata kurzu zahrnují postupné a souběžné procesy, vzájemné vyloučení, sdílení zdrojů, procesní spolupráci, zablokování, přidělování zdrojů, plánování procesorů, správa paměti, algoritmy segmentace a stránkování, systémy časového sdílení, algoritmy plánování a ochrana zdrojů. (Jednotky 4) Předpoklad: CS 401 nebo souhlas oddělení fakulty.

  • Paralelní programování (CS 471)

    Standardní procesor pro všechny nové počítače je nyní vícejádrový procesor, který má potenciál spouštět programy mnohem rychleji. K využití tohoto potenciálu však programátor musí mít znalosti paralelních programovacích technik. Během tohoto kurzu studenti utrácejí většinu času psaním a laděním paralelních programů. Očekávaným výsledkem bude vytvoření nové úrovně praktických dovedností v oblasti programování. Tato dovednost nebude užitečná pouze pro programování vícejádrových procesorů, ale také pro programování operačních systémů a distribuované programování databáze. Mezi softwarové nástroje používané během tohoto kurzu patří Microsoft Visual C / C ++, knihovna Java multithreading a OpenMP threading standard. (Jednotky 4) Předpoklad: Znalost programování pomocí Java, C nebo C ++.

  • Softwarová architektura (CS 590)

    V tomto kurzu se budeme zabývat technikami, principy a vzory, jak navrhnout flexibilní, škálovatelné, testovatelné a odolné softwarové systémy využívající služby microservices. Budeme studovat, jak můžeme rozdělit velké aplikace na menší služby, které jsou jednodušší budovat a jiné výhody ve srovnání s monolitickými podnikovými aplikacemi. Distribuovaná architektura mikro služeb také přináší řadu výzev. Budeme studovat tyto výzvy a jak je řešit. Témata tohoto kurzu jsou architektonické styly, integrační techniky a vzory, doméně řízený design, událostně řízená architektura a reaktivní programování. (Kredity 4). (Žádné předpoklady)

  • Cvičení v oblasti vývoje softwaru (CS 575)

    V tomto praktickém kurzu, studenti vykonávají úkoly spojené s počítačem v technické profesní pozici. Úkolem může být navržení a vývoj nových systémů nebo aplikace stávajících systémů pro konkrétní účely. Popisy praxe jsou formulovány zaměstnavatelem a studentem a předem musí být schváleny jednou z pozdějších fakult katedry, po konzultaci s praktickým supervisorem, kde je student umístěn. (Tento kurz je určen především pro studenty ve stážích nebo družstevních programech.) (Jednotka 0.5-1 na blok - může se opakovat.)

"Když jsem poprvé slyšel o programu MSCS, pochyboval jsem. Nemohla jsem uvěřit, že něco takového existuje. Ale jednoho dne se můj přítel připojil k programu. Tehdy jsem potvrdil, že je to skutečné. Poté jsem pokračoval v procesu podávání žádostí. Dobře! Je pravda, že jsem tady, dokončil jsem program a jsem tak šťastný. "

Edwin BwambaleUganda