Jeste li spremni Unaprijedite svoju karijeru?

Naš program je specijaliziran za područja softverskih sustava i razvoja softvera pomoću OOP-a (Java), web aplikacija i znanosti o podacima. Temeljna područja studija uključuju: napredni razvoj softvera, programiranje i arhitekturu web aplikacija, analitiku velikih podataka i tehnologije, strojno učenje i nekoliko važnih područja primjene.

Svi tečajevi osmišljeni su kako bi vam pomogli da unaprijedite svoju karijeru i svaki tečaj sadrži praktične zadatke. Pogled zahtjevi za diplomiranje.

NOVI! Dobitnik nagrade Data Science Track

Standardni osnovni tečajevi

  • Suvremene prakse programiranja (Java programiranje) (CS 401)

    Ovaj kolegij predstavlja temeljna načela objektno-orijentiranog programiranja. Studenti će naučiti pisati softver koji se može ponovno koristiti i bolje održavati te integrirati to znanje s laboratorijskim zadacima i projektima. Teme uključuju: temeljna načela i modele objektno-orijentiranog programiranja, UML dijagrame razreda i načela dizajna koja promiču ponovnu upotrebljivost i održivost softvera. (Jedinice 4)

  • Napredni razvoj softvera (CS 525)

    Ovaj kolegij razmatra aktualne metode i prakse za dobro projektiranje softverskih sustava. Teme uključuju: obrasce dizajna softvera, okvire, arhitekture i sustave za projektiranje za primjenu ovih višestupanjskih apstrakcija. (2-4 krediti) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Algoritmi (CS 435)

    Ovaj kolegij predstavlja metode za analizu učinkovitosti algoritama (uključujući analizu najgoreg slučaja i prosječnog slučaja) te uvodi niz poznatih, visoko učinkovitih algoritama. Analiza, dizajn i implementacija algoritama imaju jednaki naglasak. Teme uključuju pretraživanje i razvrstavanje, učinkovitost operacija na strukturama podataka (uključujući popise, hashtables, uravnotežena binarna stabla pretraživanja, prioritetne redove), grafičke algoritme, kombinatorne algoritme, povratne odnose, dinamičko programiranje, NP-kompletne probleme i neke posebne teme kao vrijeme dopušta. (Posebne teme uključuju računsku geometriju, algoritme za kriptosustave, aproksimaciju, Big Data i paralelno računanje.)

  • Računalne mreže (CS 450)

    Cilj ovog kolegija je upoznavanje s konceptima, principima arhitekture i terminologijom računalnih mreža istraživanjem rada mreža i razvojem mrežnih aplikacija. Ovaj tečaj prati top-down pristup razumijevanju mreža korištenjem internetske arhitekture i protokola kao primarnog primjera implementacije mrežnih načela. Počinjemo na aplikacijskom sloju i nastavljamo kroz transportni sloj, mrežni sloj, sloj veze i fizički sloj računalnih mreža. Studenti razvijaju nekoliko mrežnih aplikacija i završavaju nekoliko laboratorija dizajniranih za praćenje i razumijevanje dominantnih mrežnih protokola koji se koriste na Internetu. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Sustavi za upravljanje bazama podataka (CS 422)

    Sustavi baza podataka organiziraju i dohvaćaju informacije, omogućujući korisniku da lako i učinkovito pristupi željenim informacijama. Teme uključuju: model relacijskih podataka; SQL; ER modeliranje; relacijska algebra; normalizacija podataka; transakcije; objekti u bazi podataka; sigurnost i integritet podataka; skladištenje podataka, OLAP i data mining; distribuirane baze podataka; i proučavanje određenog komercijalnog sustava baze podataka. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Softversko inženjerstvo (CS 425)

    Softverski inženjering je tečaj koji studente upoznaje s najboljim praksama u razvoju softvera kroz metodologiju razvoja softvera. Studenti su već imali neko iskustvo u prethodnim kolegijima s objektno orijentiranom paradigmom i koristili su neke od osnovnih UML dijagrama za potrebe modeliranja odnosa između softverskih objekata. U softverskom inženjerstvu učenik će razviti vještine stavljanja tih alata zajedno u proizvodnju robusnog, lako održivog softvera. Metodologija razvoja softvera opisuje kada i kako bi se OO koncepti i UML dijagrami trebali koristiti za postizanje cilja izgradnje kvalitetnog softvera. Tečaj se usredotočuje na mali projekt u kojem se mogu ilustrirati i primijeniti načela o kojima se raspravlja u formatu predavanja. Na kraju tečaja student će imati otvorenu aplikaciju, izgrađenu u skladu s visokim standardima metodologije razvoja RUP-a (Rational Unified Process).

  • Arhitektura i okviri web-aplikacija (CS 545)

    Ovaj tečaj usredotočuje se na web aplikacije u postavkama poduzeća. Poduzeće je veliki softverski sustav dizajniran za rad u velikoj organizaciji kao što je korporacija ili vlada. Enterprise aplikacije su složene, skalabilne, temeljene na komponentama, distribuirane i kritične za misiju. Ovaj tečaj, CS545, fokusira se na prednji kraj ili sloj prezentacije web aplikacije tvrtke. CS544 Enterprise Architecture je kolegij koji se usredotočuje na zadnju ili poslovnu razinu, uključujući poslovnu logiku, transakcije i upornost. CS472, programiranje web aplikacija, preduvjet je tečaja koji obuhvaća HTML, CSS, JavaScript, servlets i JSP.

    Tečaj uči principe i obrasce koji su općeniti za sve platforme i okvire. Tečaj će ispitati i raditi s dva dominantna Java web okvira, Java Server Faces (JSF) i SpringMVC. JSF je okvir temeljen na komponentama i službena specifikacija okvira prezentacije za stog tehnologije Java Enterprise Edition. SpringMVC je dio okvira Core Spring i posljednjih je godina postao najkorišteniji Java web okvir. (4 jedinice) Preduvjet: CS 472 ili suglasnost fakultetskog odjela.

  • Programiranje web-aplikacija (CS 472)

    Ovaj tečaj omogućuje sustavno uvođenje u programiranje interaktivnih i dinamičkih web aplikacija. Tečaj je namijenjen pojedincima s malo ili bez prethodnog iskustva u programiranju web aplikacija. Ova ponuda će koristiti Java servlets i JSP za obradu na strani poslužitelja. Tečaj će predstaviti HTML i CSS. JavaScript je fokus tečaja i pokriven je kao funkcionalni programski jezik uključujući jQuery, Ajax i JavaScript prostore i module. To je preduvjet za CS545 arhitekturu web aplikacija. Ne pokriva AngularJS ili NodeJS, ali JavaScript ovdje pokriven će vas pripremiti za učenje tih tehnologija. (Jedinice 4)
    Preduvjet: CS 220 ili CS 401 ili suglasnost fakultetskog odjela.

  • Znanost i tehnologija svijesti za računalne stručnjake (ZA 506)

    Vaš prvi tečaj je posebno osmišljen kako bi se uspostavila osnova kako možete postati vrhunski profesionalac u računalnoj znanosti. Tečaj je ukorijenjen u praksi transcendentalne meditacije koja dovodi do ispunjenja vašeg pravog potencijala. Naučit ćete o prednostima TM-a, uključujući sposobnost rješavanja složenih problema superiornim mentalnim funkcioniranjem, poboljšavajući kreativnost i razmišljanje "izvan okvira". Tečaj će se usredotočiti na načela koja podupiru vrhunske rezultate u aktivnosti razvijanjem optimalne kombinacije odmora i aktivnosti. Razvijat ćete i iskusiti idealnu dnevnu rutinu koja podržava uspjeh u životu. (Jedinice 2)

  • Vodstvo za tehničke menadžere (ZA 506B)

    Cilj ovog kolegija je pružiti studentima znanja i vještine u vođenju, uključujući komunikacijske vještine kao pripremu za buduće liderske uloge.

    Po završetku ovog tečaja studenti će razumjeti odgovore na ključna pitanja o učinkovitom vodstvu, uključujući sljedeće:

    Postoje li „prirodno rođeni“ vođe?

    Morate li imati karizmu koja vodi učinkovito?

    Što je potrebno za vođenje?

    Koja je razlika između upravljanja i vođenja?

    Koje su mnoge "inteligencije" potrebne za vođenje u ovom razdoblju?

    Što je 'zloporaba uprave' i kako to dovodi do samo-sabotaže?

    Znajući da je povratna informacija od suštinskog značaja za vodeći proces, kako ćemo preboljeti strah od davanja i primanja?

    Koji je izvor 80% problema pronađenih na radnom mjestu?

    Postoje li znanstvena istraživanja koja pomažu organizaciji da poboljša svoje osobne i timske vještine vođenja?

    Predavači će biti eminentni poduzetnici, računalni znanstvenici, filantropi, akademici i drugi istaknuti vođe u društvu.

    (Jedinice 2)

Dodatni MSCS tečajevi

  • Jezici naprednog programiranja (CS 505)

    Ovaj predmet razmatra napredne teme u dizajnu programskog jezika s naglaskom na formalne metode i apstrakcijske mehanizme. Teme uključuju apstrakciju podataka i kontrolu, formalnu specifikaciju sintakse i semantike, dokaze o ispravnosti programa, ne determinističko programiranje, napredne upravljačke strukture i proučavanje određenih jezika. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Veliki podaci (praćenje znanstvenih podataka) (CS 522)

    Moderna obrada informacija definirana je ogromnim spremištima podataka koji se ne mogu obraditi tradicionalnim sustavima baza podataka. Ovaj tečaj pokriva najnoviju tehnologiju razvijenu i korištenu od strane čelnika industrije za rješavanje ovog problema na najučinkovitiji način. Obuhvaćene su specifične teme kao što su MapReduce algoritmi, MapReduce algoritam dizajna, HDFS, Hadoop klaster arhitektura, YARN, računalne relativne frekvencije, sekundarno sortiranje, web indeksiranje, invertirani indeksi i kompresija indeksa, Spark algoritmi i Scala. (4 jedinice) Preduvjet: CS 435 algoritmi.

  • Analitika velikih podataka (track Data Science) (CS 488)

    Big Data je novi prirodni resurs: podaci se udvostručuju svaki mjesec od 12-18. Ovaj novi tečaj Big Data Analytics pokriva temeljne koncepte i alate za rudarstvo velikih različitih skupova podataka kako bi generirali nove uvide. Vi ćete svladati korištenje R jezika za stvaranje Wordcloud, Pagerank, vizualizaciju podataka, odlučivanje stabla, regresija, klasteriranje, neuronske mreže, i još mnogo toga. Radit ćete s nekim velikim multimilijunskim skupovima podataka o snimanju, kao i sa svojim Twitter feedovima. Naučit ćete Hadoop / MapReduce i Streaming Data koncepte, te ćete istraživati ​​druge Apache Big Data Projects kao što su Spark, Flink, Kafka, Storm, Samza, NoSQL kroz pojedinačne istraživačke radove. Radit ćete u skupinama na otvorenim projektima iz Kaggle.com kako biste se natjecali za novčane nagrade rješavanjem najboljih izazova za analizu podataka. Također ćete naučiti koristiti vodeće IBM SPSS Modeler i open-source platforme za prikupljanje podataka. #1 bestseller udžbenik koji se koristi u ovom tečaju napisao je sam instruktor. Tečaj će također koristiti širok raspon video materijala za obuku od MIT-a, Coursera, Google-a i drugdje. (4 jedinice) Preduvjet: Pristanak fakultetskog odjela

  • Tehnologije Big Data (podatkovna znanost) (CS 523)

    U samo nekoliko kratkih godina, velike tehnologije prijenosa podataka prešle su s područja hiper-signala na jednu od ključnih komponenti novog digitalnog doba. Te su tehnologije vrlo korisne za pretvaranje informacija u znanje.

    Cilj tečaja je dodati neke stvarno važne alate u vaš arsenal kako bi vam pomogli riješiti razne velike probleme. Počinjemo s davanjem odgovora na pitanja poput “Što su veliki podaci? Zašto je to važno ili korisno? Kako ćete pohraniti te velike podatke? ”Zatim ćemo proučiti različite alate i modele programiranja iz velikog sklopa tehnologije podataka koji će nam pomoći da analiziramo podatke. Teme uključuju neke od projekata u ekosustavu Hadoop kao što su MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), projekti ekosustava Zookeeper i Apache Spark. Također ćemo obraditi uvod u AWS i EMR. Vi ćete uglavnom raditi s jednim čvorom Hadoop distribucije Cloudera. (4 jedinice) (nema preduvjeta)

  • Računalna sigurnost (CS 466)

    Ovaj tečaj seže duboko u tri aspekta računalne sigurnosti: povjerljivost, integritet i dostupnost. Proučava se nekoliko modela za povjerljive politike sigurnosti i integriteta. Ispitana je uloga kriptografije u osiguravanju povjerljivosti i integriteta. Ostale teme uključuju provjeru autentičnosti, reviziju, testiranje penetracije, uobičajene ranjivosti i otkrivanje upada. Predmet završava studijom slučaja realnog sigurnog sustava. Od studenata će se tražiti da pročitaju radove iz sigurnosne literature i primijene ih na materijale koji se daju na predavanjima. (4 bodovi) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Arhitektura poduzeća (CS 544)

    Ovaj tečaj usredotočen je na podučavanje načela i praksi koje se koriste pri razvoju velikih aplikacija poduzeća. Ispitat ćemo različite arhitektonske slojeve koji se često koriste i različite tehnologije povezane s tim slojevima, uključujući objektno relacijsko mapiranje (ORM), injekciju ovisnosti (DI), aspektno orijentirano programiranje (AOP) i integraciju s drugim aplikacijama putem web-usluga (RESTfull i SOAP), Poruke i daljinsko pozivanje metoda. Mora imati dobro poznavanje relacijskih baza podataka i SQL-a. Ako nemate snažan tečaj ili dobro poznavanje SQL-a, trebate se prijaviti za CS422 DBMS prije nego što se prijavite za EA. (Jedinice 4)

  • Strojno učenje (praćenje znanstvenih podataka) (CS 582)

    Strojno učenje, područje istraživanja koje računalima daje mogućnost učenja iz podataka, u središtu je gotovo svake znanstvene discipline, a proučavanje generalizacije (tj. Predviđanja) iz podataka je središnja tema strojnog učenja. Ovaj kolegij daje diplomski stupanj u strojno učenje i dubinsko praćenje novih i naprednih metoda u strojnom učenju, kao i njihovu temeljnu teoriju. Naglašava praktične praktične pristupe i raspravlja o nizu nedavnih primjena strojnog učenja, kao što je Data Mining (u Big Data / Data Science, Data Analytics), Obrada prirodnog jezika, Računalni vid, Robotika, Bioinformatika i obrada teksta i Web podataka. Strojno učenje se koristi u raznim industrijama, uključujući financijske usluge, naftu i plin, zdravstvo, marketing i oglašavanje, vladu, internet i internet stvari.

    Ovaj kolegij obuhvaća različite paradigme učenja, algoritme, teorijske rezultate i primjene. Koristi osnovne koncepte iz umjetne inteligencije, teorije informacija, statistike i teorije kontrole u onoj mjeri u kojoj su relevantni za strojno učenje. Teme uključuju: učenje pod nadzorom (generativno / diskriminativno učenje, parametrijsko / neparametrijsko učenje, neuronske mreže, strojevi vektorskih potpora, stablo odlučivanja, Bayesovo učenje i optimizacija); učenje bez nadzora (grupiranje, smanjenje dimenzionalnosti, metode jezgre); teorija učenja (kompromisi pristranosti / varijance; teorija VC; velike marže); učenje učvršćivanja i prilagodljivo upravljanje. Ostale teme uključuju HMM (skriveni Markovljev model), evolucijsko računanje, duboko učenje (s neuronskim mrežama) i projektiranje algoritama čija se učinkovitost može strogo analizirati za temeljne probleme strojnog učenja.

    Važan dio tečaja je grupni projekt. Glavni alati otvorenog koda koji se koriste za paralelno, distribuirano i skalabilno strojno učenje bit će ukratko obrađeni kako bi se pomoglo studentima da rade na projektima. (4 jedinice) Preduvjet: Nema.

  • Programiranje mobilnih uređaja (CS 473)

    Važnost programiranja mobilnih uređaja pojavila se posljednjih godina kao nova domena u razvoju softvera. Ovaj tečaj priprema studente za razvoj aplikacija koje rade na mobilnim uređajima kao što su IPhone, IPad ili Android telefon. Ovo je tržište koje se ubrzano razvija. Tečaj se fokusira na instaliranje, razvoj, testiranje i distribuciju mobilnih aplikacija. Na kraju ovog tečaja studenti mogu razviti aplikaciju za pokrivene platforme, simulirati ih, testirati ih na stvarnom uređaju i konačno objaviti u trgovini aplikacija kako bi korisnicima omogućili dostupnost. (4 jedinice) Preduvjet: CS472 ili suglasnost fakultetskog odjela.

  • Moderne web-aplikacije (CS 572)

    Na ovom tečaju naučit ćete arhitekturu Reaktivnog programiranja SPA (Single Page Web Applications) zajedno sa svim potrebnim vještinama za izgradnju pune Moderne web aplikacije. Tehnologije uključuju: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase i NoSQL baze podataka (MongoDB). Tečaj će obuhvatiti:

    • Kako C ++ V8 motor i asinkroni kod rade u čvoru i petlji događaja čvora.
    • Kako strukturirati svoj kod za ponovnu upotrebu i izgraditi Restful API koristeći module i ExpressJS.
    • Kako rade NoSQL baze podataka: Mongo Shell, Agregacijski okvir, Replike, Clustering, Shards, Mongoose ORM.
    • Duboko razumijevanje kako Angular (podlogom od Googlea) radi, Detekcija promjena, Reaktivno RxJ programiranje s promatranim i subjektima, Shadow DOM, zone, moduli i komponente, prilagođene direktive i cijevi, usluge i injekcije ovisnosti, kutni kompajler, JIT i AOF kompilacija , Obrasci (pogonjeni predlošci i upravljanje podacima), Vezivanje podataka, Usmjeravanje, Zaštita i zaštita rute, HTTP klijent, JWT JSON Web Token Authentication.

    (Jedinice 4)

  • Operacijski sustavi (CS 465)

    Operativni sustav kontrolira središnje resurse računalnog sustava i dodjeljuje ih pojedinačnim korisnicima. Teme kolegija uključuju sekvencijalne i istodobne procese, uzajamno isključivanje, dijeljenje resursa, procesnu suradnju, zastoj, raspodjelu resursa, raspoređivanje procesora, upravljanje memorijom, algoritme segmentacije i paginga, sustave vremenskog rasporeda, algoritme raspoređivanja i zaštitu resursa. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakultetskog odjela.

  • Paralelno programiranje (CS 471)

    Standardni procesor za sva nova računala sada je multi-core procesor, koji ima potencijal za brže izvršavanje programa. Međutim, da bi iskoristio taj potencijal, programer mora imati neko znanje o tehnikama paralelnog programiranja. Tijekom ovog predmeta studenti će najveći dio vremena provoditi u pisanju i ispravljanju paralelnih programa. Očekivani ishod će biti razvijanje nove razine praktične vještine programiranja. Ova vještina neće biti korisna samo za programiranje višejezgrenih procesora, već i za programiranje operativnih sustava i programiranje distribuirane baze podataka. Softverski alati koji se koriste tijekom ovog kolegija uključuju Microsoft Visual C / C ++, biblioteku za višekratnu obradu Java i standard za obradu debljine sloja OpenMP. (4 jedinice) Preduvjet: Poznavanje računalnog programiranja pomoću Java, C ili C ++.

  • Arhitektura softvera (CS 590)

    U ovom kolegiju razmotrit ćemo tehnike, principe i obrasce kako dizajnirati fleksibilne, skalabilne, testabilne i otporne softverske sustave koji koriste mikroservis. Proučit ćemo kako možemo podijeliti velike aplikacije na manje mikroservuse koje je lakše graditi i druge prednosti u odnosu na monolitne poslovne aplikacije. Distribuirana mikroservisna arhitektura također daje mnoge izazove. Proučit ćemo te izazove i kako ih riješiti. Teme ovog kolegija su arhitektonski stilovi, tehnike i obrasci integracije, dizajn temeljen na domeni, arhitektura vođena događajima i reaktivno programiranje. (4 krediti). (Nema preduvjeta)

  • Praktikum u razvoju softvera (CS 575)

    U ovom praktikumu studenti izvode računalne zadatke u stručno-tehničkom položaju. Izvršeni zadaci mogu biti u osmišljavanju i razvoju novih sustava ili primjeni postojećih sustava za specifične svrhe. Opisi praktikuma formuliraju poslodavac i student, a prethodno ih mora odobriti jedan od diplomiranih nastavnika na odjelu, u dogovoru s mentorom praktikuma gdje je student smješten. (Ovaj tečaj je prvenstveno namijenjen studentima u stažiranju ili programima suradnje.) (0.5-1 jedinica po bloku - može se ponoviti.)

“Kad sam prvi put čuo za MSCS program, sumnjao sam u to. Nisam mogao vjerovati da nešto takvo postoji. Ali jednog dana, moj se prijatelj pridružio programu. Tada sam potvrdio da je to stvarno. Onda sam nastavio svoj proces prijave. Dobro! Istina je, ja sam ovdje, završio sam program i tako sam sretan. "

Edwin BwambaleUganda