Jeste li spremni Unaprijedite svoju karijeru?

Naš se program specijalizirao za područja softverskih sustava i razvoja softvera pomoću OOP-a (Java) i web aplikacija, kao i neke tečajeve iz područja podataka. Ključna područja studija uključuju: napredni razvoj softvera, programiranje web aplikacija i arhitekture, neke tečajeve znanosti podataka 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.

Tečajevi podataka

Standardni osnovni tečajevi

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

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

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

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

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

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

  • Ovaj tečaj pruža sustavni uvod u programiranje interaktivnih i dinamičkih web aplikacija. Tečaj je namijenjen osobama s malo ili nimalo prethodnog iskustva u programiranju web aplikacija. Ova će ponuda koristiti Java servlete i JSP za obradu na strani poslužitelja. Tečaj će predstaviti HTML i CSS. JavaScript je fokus predmeta, a pokriven je kao funkcijski programski jezik, uključujući prostore imena i module jQuery, Ajax i JavaScript. To je preduvjet za arhitekturu web aplikacija CS545. Ne pokriva AngularJS ili NodeJS, ali ovdje obrađeni JavaScript pripremit će vas za učenje tih tehnologija. (4 jedinice)
    Preduvjet: CS 220 ili CS 401 ili suglasnost fakultetskog odjela.

  • Vaš prvi tečaj posebno je osmišljen kako bi utvrdio osnovu kako možete postati vrhunski profesionalac informatike. Tečaj je ukorijenjen u praksi Transcendentalne meditacije koja dovodi do ispunjenja vašeg istinskog potencijala. Naučit ćete o prednostima TM-a, uključujući sposobnost rješavanja složenih problema vrhunskim mentalnim funkcioniranjem, jačanjem kreativnosti i razmišljanja "izvan okvira". Tečaj će se usredotočiti na principe koji podupiru vrhunske performanse u aktivnosti razvojem optimalne kombinacije odmora i aktivnosti. Razvit ćete i iskusiti idealnu dnevnu rutinu koja podržava uspjeh u životu. (2 jedinice)

  • 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 dostupna znanstvena istraživanja koja će pomoći organizaciji u poboljšanju njezinih vještina vođenja pojedinca i tima?

    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

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

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

  • 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

  • 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 nekoliko zaista važnih alata u vaš arsenal koji će vam pomoći u rješavanju različitih problema s velikim podacima. Počet ćemo s davanjem odgovora na pitanja poput „Što su veliki podaci? Zašto je važno ili korisno? Kako pohranjujete ove velike podatke? " Zatim ćemo proučiti različite alate i modele programiranja iz skupa tehnologija velikih podataka koji će nam pomoći u analizi podataka. Teme uključuju neke od projekata u Hadoop ekosustavu kao što su MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper i Apache Spark projekti ekosustava. Također ćemo pokriti uvod u AWS i EMR. Uglavnom ćete raditi s jednim čvorom Hadoop distribucije Cloudere. (4 jedinice) (Nema preduvjeta)

  • Cilj ovog kolegija je naučiti koncepte, principe arhitekture i terminologiju računalnih mreža istražujući kako mreže funkcioniraju i razvijajući mrežne aplikacije. Ovaj tečaj slijedi pristup odozgo prema dolje razumijevanju mreža korištenjem internetske arhitekture i protokola kao primarnog primjera primjene mrežnih principa. Počinjemo od aplikacijskog sloja i nastavljamo kroz transportni sloj, mrežni sloj, sloj veza i fizički sloj računalnih mreža. Studenti razvijaju nekoliko mrežnih aplikacija i dovršavaju nekoliko laboratorija dizajniranih za praćenje i razumijevanje pretežnih mrežnih protokola koji se koriste na Internetu. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakulteta.

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

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

  • Strojno učenje, područje studija koje računalima daje mogućnost učenja iz podataka, u središtu je gotovo svake znanstvene discipline, a proučavanje generalizacije (odnosno predviđanja) iz podataka središnja je tema strojnog učenja. Ovaj tečaj daje postdiplomski uvod u strojno učenje i detaljno pokriva nove i napredne metode u strojnom učenju, kao i njihovu temeljnu teoriju. Naglašava pristupe s praktične važnosti i raspravlja o brojnim novijim primjenama strojnog učenja, kao što su Data Mining (u Big Data / Data Science, Data Analytics), Obrada prirodnog jezika, Računalni vid, Robotika, Bioinformatika i Obrada teksta i weba. Strojno učenje koristi se u raznim industrijama, uključujući financijske usluge, naftu i plin, zdravstvo, marketing i oglašavanje, vladu, internet i internet stvari.

    Ovaj tečaj pokriva razne paradigme učenja, algoritme, teoretske rezultate i primjene. Koristi osnovne pojmove iz umjetne inteligencije, teorije informacija, statistike i teorije upravljanja u mjeri u kojoj su relevantni za strojno učenje. Teme uključuju: supervizirano učenje (generativno / diskriminativno učenje, parametarsko / neparametarsko učenje, neuronske mreže, vektorski strojevi potpore, stablo odlučivanja, Bayesovo učenje i optimizacija); učenje bez nadzora (grupiranje, smanjenje dimenzionalnosti, metode jezgre); teorija učenja (pristranost / varijansni kompromisi; VC teorija; velike marže); učenje pojačanja i adaptivna kontrola. Ostale teme uključuju HMM (model skrivenog Markova), evolucijsko računanje, dubinsko učenje (s neuronskim mrežama) i dizajniranje algoritama čija se izvedba može rigorozno analizirati u vezi s osnovnim problemima 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.

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

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

  • Operativni sustav kontrolira središnje resurse računalnog sustava i dodjeljuje ih pojedinačnim korisnicima. Teme predmeta uključuju sekvencijalne i istodobne procese, međusobno isključivanje, dijeljenje resursa, suradnju procesa, zastoj, raspodjelu resursa, raspoređivanje procesora, upravljanje memorijom, algoritme segmentacije i straničenja, sustave dijeljenja vremena, algoritme rasporeda i zaštitu resursa. (4 jedinice) Preduvjet: CS 401 ili suglasnost fakulteta.

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

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

  • Na ovom praktičnom tečaju studenti obavljaju zadaće povezane s računalom u tehničkom profesionalnom položaju. Zadaci koji se obavljaju mogu biti u dizajniranju i razvoju novih sustava ili primjeni postojećih sustava za određene svrhe. Opis posla u praktikumu formuliraju poslodavac i student, a prethodno ih treba odobriti jedan od diplomiranih fakulteta na odjelu, u dogovoru s nadzornikom praktikuma na kojem je student smješten. (Ovaj je tečaj prvenstveno za studente na programima prakse ili suradnje.) (0.5-1 jedinica po bloku - može se ponoviti.)

“Prvi put kad sam čuo za MSCS program, sumnjao sam u to. Nisam mogao vjerovati da tako nešto postoji. No, jednog se dana u program uključio i moj prijatelj. Tada sam potvrdio da je stvarno. Tada sam nastavio postupak prijave. Dobro! Istina je, ovdje sam, završio sam program i presretan sam. "