Да ли сте спремни за Унапредите своју каријеру?

Наш програм је специјализован за области софтверских система и развоја софтвера који користе ООП (Јава) и веб апликације, заједно са неким курсевима науке о подацима. Кључне области студија укључују: напредни развој софтвера, програмирање веб апликација и архитектуру, неке курсеве науке о подацима и неколико важних области примене.

Сви курсеви су осмишљени да вам помогну да унапредите своју каријеру и сваки курс садржи практичне задатке. Поглед захтјеви за дипломирање.

Курсеви научних података

Стандардни основни курсеви

  • Овај курс представља основне принципе објектно оријентисаног програмирања. Студенти ће научити како писати софтвер који се може поново користити и боље одржавати, те интегрирати ово знање с лабораторијским задацима и пројектима. Теме укључују: основне принципе и моделе објектно-оријентисаног програмирања, УМЛ дијаграме класе и принципе дизајна који промовирају поновну употребљивост и одрживост софтвера. (КСНУМКС јединице)

  • Овај курс разматра актуелне методе и праксе за добар дизајн софтверских система. Теме обухватају: обрасце дизајна софтвера, оквире, архитектуре и системе дизајнирања за примјену ових вишеструких апстракција. (КСНУМКС-КСНУМКС кредити) Предуслов: ЦС КСНУМКС или пристанак факултетског одјела.

  • Овај курс представља методе за анализу ефикасности алгоритама (укључујући анализу најгорег и просјечног случаја) и уводи низ познатих, високо ефикасних алгоритама. Анализа, дизајн и имплементација алгоритама имају једнак нагласак. Теме укључују претраживање и сортирање, ефикасност операција на структурама података (укључујући листе, хасхтаблес, балансирана бинарна стабла претраживања, приоритетне редове), графичке алгоритме, комбинаторне алгоритме, повратне односе, динамичко програмирање, НП-комплетне проблеме и неке посебне теме као вријеме омогућава. (Посебне теме укључују рачунску геометрију, алгоритме за крипто системе, апроксимацију, велике податке и паралелно рачунање.)

  • Овај курс се фокусира на подучавање принципа и пракси које се користе при развоју великих апликација предузећа. Испитат ћемо различите архитектонске слојеве који се често користе и различите технологије повезане с тим слојевима, укључујући објектно релацијско мапирање (ОРМ), овисност о ињекцији (ДИ), аспектно оријентирано програмирање (АОП) и интеграцију с другим апликацијама путем веб-услуга (РЕСТфулл и СОАП), Поруке и даљинско позивање метода. Мора имати радно знање о релационим базама података и СКЛ-у. Ако немате јак курс или добро познавање СКЛ-а, треба да се пријавите за ЦСКСНУМКС ДБМС пре него што се пријавите за ЕА. (КСНУМКС јединице)

  • Софтверски инжењеринг је курс који студенте упознаје са најбољим праксама у развоју софтвера кроз методологију развоја софтвера. Студенти су већ имали неко искуство у претходним курсевима са објектно оријентисаном парадигмом и користили су неке од основних УМЛ дијаграма за потребе моделирања односа између софтверских објеката. У области софтверског инжењерства, студент ће развити вјештине стављања ових алата заједно у производњу робусног, лако одрживог софтвера. Методологија развоја софтвера описује када и како би се ОО концепти и УМЛ дијаграми требали користити за постизање циља изградње квалитетног софтвера. Курс се базира на малом пројекту у којем се могу илустрирати и примијенити принципи о којима се расправља у формату предавања. До краја курса, студент ће имати покренуту апликацију, изграђену у складу са високим стандардима РУП (Ратионал Унифиед Процесс) методологије развоја.

  • Овај курс фокусира веб апликације у окружењу предузећа. Апликација предузећа је велики софтверски систем дизајниран да ради у великој организацији као што је корпорација или влада. Ентерприсе апликације су сложене, скалабилне, засноване на компонентама, дистрибуиране и критичне за мисију. Овај курс, ЦСКСНУМКС, фокусира се на предњи крај или слој презентације веб апликације предузећа. ЦСКСНУМКС Ентерприсе Арцхитецтуре је пратилац курса који се фокусира на задњи крај или пословни слој, укључујући пословну логику, трансакције и упорност. ЦСКСНУМКС, Веб Апплицатион Программинг, је предуслов који обухвата ХТМЛ, ЦСС, ЈаваСцрипт, сервлетс и ЈСП.

    Курс предаје принципе и обрасце који су генерални за све платформе и оквире. Курс ће испитати и радити са два доминантна Јава веб оквира, Јава Сервер Фацес (ЈСФ) и СпрингМВЦ. ЈСФ је оквир заснован на компонентама и званична спецификација оквира презентације за стог технологије Јава Ентерприсе Едитион. СпрингМВЦ је део Цоре Спринг оквира и постао је најраширенији Јава веб оквир последњих година. (КСНУМКС јединице) Предуслов: ЦС КСНУМКС или сагласност факултетског одељења.

  • Овај курс пружа систематски увод у програмирање интерактивних и динамичких веб апликација. Курс је намењен појединцима са мало или нимало претходног искуства у програмирању веб апликација. Ова понуда ће користити Јава сервлете и ЈСП за обраду на страни сервера. Курс ће представити ХТМЛ и ЦСС. ЈаваСцрипт је фокус курса и покривен је као функционалан програмски језик који укључује јКуери, Ајак и ЈаваСцрипт просторе имена и модуле. То је предуслов за архитектуру веб апликација ЦС545. Не покрива АнгуларЈС или НодеЈС, али овде обрађени ЈаваСцрипт припремиће вас за учење тих технологија. (4 јединице)
    Предуслов: ЦС КСНУМКС или ЦС КСНУМКС или сагласност факултетског одељења.

  • Ваш први курс је посебно дизајниран да утврди основу како можете да постанете професионалац рачунарске науке са најбољим перформансама. Курс је укорењен у пракси Трансценденталне медитације која води ка испуњењу вашег истинског потенцијала. Научићете о предностима ТМ-а, укључујући способност решавања сложених проблема супериорним менталним функционисањем, јачањем креативности и размишљања „ван оквира“. Курс ће се фокусирати на принципе који подржавају врхунске перформансе у активности развојем оптималне комбинације одмора и активности. Развити ћете и искусити идеалну дневну рутину која подржава успех у животу. (2 јединице)

  • Циљ овог курса је да студентима обезбеди знање и вештине у лидерству, укључујући и вештине комуникације као припреме за будуће лидерске улоге.

    На крају овог курса, студенти ће разумети одговоре на кључна питања у вези са ефикасним вођством, укључујући следеће:

    Да ли постоје лидери који су рођени у природи?

    Да ли морате имати ефектну каризму?

    Шта је потребно за вођење?

    У чему је разлика између управљања и вођења?

    Које су многе 'интелигенције' потребне за вођење у овом добу?

    Шта је 'злоупотреба менаџмента' и како то доводи до само-саботаже?

    Знајући да је повратна информација од суштинског значаја за водећи процес, како прелазимо страх од давања и примања?

    Који је извор КСНУМКС% проблема пронађених на радном мјесту?

    Да ли су доступна научна истраживања која би помогла организацији у побољшању њених личних и тимских вештина?

    Гости предавачи ће бити еминентни предузетници, компјутерски научници, филантропи, академици и други истакнути лидери у друштву.

    (КСНУМКС јединице)

Додатни курсеви МСЦС-а

  • Овај предмет разматра напредне теме у дизајну програмског језика са нагласком на формалне методе и апстракцијске механизме. Теме укључују апстракцију података и контролу, формалну спецификацију синтаксе и семантике, доказе о исправности програма, не детерминистичко програмирање, напредне контролне структуре и проучавање одређених језика. (КСНУМКС јединице) Предуслов: ЦС КСНУМКС или сагласност факултетског одељења.

  • Модерна обрада информација дефинисана је огромним репозиторијумима података који се не могу обрадити традиционалним системима базе података. Овај курс покрива најновије технологије развијене и кориштене од стране индустријских лидера да ријеше овај проблем на најефикаснији начин. Обухваћене су специфичне теме као што су МапРедуце алгоритми, МапРедуце алгоритам за дизајнирање, ХДФС, Хадооп кластер архитектура, ИАРН, релативне фреквенције рачунања, секундарно сортирање, веб индексирање, инвертни индекси и компресија индекса, Спарк алгоритми и Сцала. (КСНУМКС јединице) Предуслов: ЦС КСНУМКС алгоритми.

  • Велики подаци су нови природни ресурс: подаци се удвостручују сваког мјесеца КСНУМКС-КСНУМКС. Овај нови Биг Дата Аналитицс курс покрива основне концепте и алате за рударство великих разноврсних скупова података како би генерисали нове увиде. Ви ћете овладати употребом језика Р да бисте креирали Вордцлоуд, Пагеранк, визуализацију података, дрвеће одлука, регресију, кластерирање, неуронске мреже и још много тога. Радићете са неким великим мултимилионским скуповима података, као и са мојим Твиттер феедовима. Научит ћете Хадооп / МапРедуце и Стреаминг Дата концепте, те ћете истраживати друге Апацхе Биг Дата пројекте као што су Спарк, Флинк, Кафка, Сторм, Самза, НоСКЛ кроз појединачне истраживачке радове. Радит ћете у групама на отвореним пројектима из Каггле.цом како би се натјецали за новчане награде рјешавањем најбољих изазова у анализи података. Такође ћете научити да користите водећи ИБМ СПСС Моделер и опен-соурце платформе за прикупљање података. #КСНУМКС бестселлер уџбеник који се користи у овом курсу написао је сам инструктор. Курс ће такође користити широк спектар видео материјала за обуку од МИТ-а, Цоурсера, Гоогле-а и другде. (КСНУМКС јединице) Предуслов: Сагласност факултетског одељења

  • За само неколико кратких година, технологије великих података су прешле из домена хипера у једну од кључних компоненти новог дигиталног доба. Те технологије су веома корисне за трансформацију информација у знање.

    Циљ курса је да у ваш арсенал додате неке заиста важне алате који ће вам помоћи да решите разне проблеме са великим подацима. Почећемо са давањем одговора на питања попут „Шта су велики подаци? Зашто је важно или корисно? Како чувате ове велике податке? “ Затим ћемо проучити различите алате и моделе програмирања из скупа технологија великих података који ће нам помоћи да анализирамо податке. Теме укључују неке од пројеката у Хадооп екосистему као што су МапРедуце, ​​Пиг, Хиве, Скооп, Флуме, ХБасе (НоСКЛ ДБ), Зоокеепер и Апацхе Спарк пројекти екосистема. Такође ћемо покрити увод у АВС и ЕМР. Углавном ћете радити са једним чвором Хадооп дистрибуције Цлоудере. (4 јединице) (без предуслова)

  • Циљ овог курса је да научи концепте, принципе архитектуре и терминологију рачунарских мрежа истражујући како мреже функционишу и развијајући мрежне апликације. Овај курс следи приступ одозго према доле разумевању мрежа коришћењем Интернет архитектуре и протокола као примарног примера примене мрежних принципа. Почињемо од апликативног слоја и настављамо кроз транспортни слој, мрежни слој, слој веза и физички слој рачунарских мрежа. Студенти развијају неколико мрежних апликација и попуњавају неколико лабораторија дизајнираних за праћење и разумевање претежних мрежних протокола који се користе на Интернету. (4 јединице) Предуслов: ЦС 401 или сагласност факултета.

  • Овај курс дубоко се бави трима аспектима рачунарске сигурности: повјерљивост, интегритет и доступност. Проучава се неколико модела за повјерљиве политике сигурности и интегритета. Испитана је улога криптографије у осигуравању повјерљивости и интегритета. Остале теме укључују аутентификацију, ревизију, тестирање пенетрације, уобичајене рањивости и откривање упада. Курс се завршава студијом случаја реалног сигурног система. Од студената ће се тражити да прочитају радове из сигурносне литературе и примијене их на материјале дате на предавањима. (КСНУМКС кредити) Предуслов: ЦС КСНУМКС или сагласност факултетског одељења.

  • Системи база података организују и преузимају информације, омогућујући кориснику да лако и ефикасно приступи жељеним информацијама. Теме укључују: релациони модел података; СКЛ; ЕР моделирање; релациона алгебра; нормализација података; трансакције; објекти у бази података; сигурност података и интегритет; складиштење података, ОЛАП и дата мининг; дистрибуиране базе података; и проучавање специфичног система комерцијалних база података. (КСНУМКС јединице) Предуслов: ЦС КСНУМКС или сагласност факултетског одељења.

  • Машинско учење, област проучавања која рачунарима даје могућност да уче из података, у основи је готово сваке научне дисциплине, а проучавање генерализације (односно предвиђања) из података централна је тема машинског учења. Овај курс даје постдипломски увод у машинско учење и детаљно покрива нове и напредне методе у машинском учењу, као и њихову основну теорију. Наглашава приступе са практичне важности и разматра бројне недавне примене машинског учења, као што су Дата Мининг (у Биг Дата / Дата Сциенце, Дата Аналитицс), Обрада природног језика, Цомпутер Висион, Роботицс, Биоинформатицс и Обрада текста и Веб података. Машинско учење се користи у разним индустријама, укључујући финансијске услуге, нафту и гас, здравствену заштиту, маркетинг и оглашавање, владу, Интернет и Интернет ствари.

    Овај курс покрива различите парадигме учења, алгоритме, теоријске резултате и примене. Користи основне концепте из вештачке интелигенције, теорије информација, статистике и теорије управљања уколико су релевантни за машинско учење. Теме укључују: учење под надзором (генеративно / дискриминативно учење, параметарско / непараметарско учење, неуронске мреже, векторске машине подршке, стабло одлука, Баиесово учење и оптимизација); учење без надзора (кластерисање, смањење димензионалности, методе језгра); теорија учења (пристрасност / одступање од варијансе; ВЦ теорија; велике марже); учење ојачања и адаптивна контрола. Остале теме укључују ХММ (Скривени Марков модел), Еволуционо рачунање, Дубинско учење (са неуронским мрежама) и дизајнирање алгоритама чији се учинак може ригорозно анализирати за основне проблеме машинског учења.

    Важан део курса је групни пројекат. Главни алати отвореног кода који се користе за паралелно, дистрибуирано и скалабилно машинско учење биће укратко обрађени како би се помогло ученицима да раде на пројектима. (КСНУМКС јединице) Предуслов: Нема.

  • Важност програмирања мобилних уређаја појавила се последњих година као нови домен у развоју софтвера. Овај курс припрема студенте за развој апликација које раде на мобилним уређајима као што су ИПхоне, ИПад или Андроид телефон. Ово је тржиште које се убрзано развија. Курс се фокусира на инсталирање, развој, тестирање и дистрибуцију мобилних апликација. На крају овог курса студенти су у могућности да развију апликацију за покривене платформе, да их симулирају, тестирају на стварном уређају и на крају објаве у продавници апликација како би учинили доступним корисницима. (КСНУМКС јединице) Предуслов: ЦСКСНУМКС или сагласност факултетског одељења.

  • На овом курсу ћете научити архитектуру Реактивног програмирања СПА (Сингле Паге Веб Апплицатионс) заједно са свим потребним вјештинама за изградњу пуне Модерне веб апликације. Технологије укључују: НодеЈС, ЕкпрессЈС, ТипеСцрипт, АнгуларЈСКСНУМКС, Фиребасе и НоСКЛ базе података (МонгоДБ). Курс ће обухватити:

    • Како Ц ++ ВКСНУМКС мотор и асинхрони код раде у чвору и петљи догађаја Ноде.
    • Како структуирати свој код за поновну употребу и изградити Рестфул АПИ користећи модуле и ЕкпрессЈС.
    • Како раде НоСКЛ базе података: Монго Схелл, Агрегацијски оквир, Реплика Сетс, Цлустеринг, Схардс, Монгоосе ОРМ.
    • Дубоко разумевање начина рада Ангулар (подржано од стране Гоогле-а), Детекција промена, Реактивно програмирање РкЈ-а са посматраним и субјектима, Схадов ДОМ, зоне, модули и компоненте, прилагођене директиве и цеви, услуге и ињекције зависности, Ангулар Цомпилер, ЈИТ и АОФ Цомпилатион , Формс (Темплате Дривен и Дата Дривен), Везивање података, Роутинг, Заштита и Заштита руте, ХТТП клијент, ЈВТ ЈСОН Веб Токен Аутхентицатион.

    (КСНУМКС јединице)

  • Оперативни систем контролише централне ресурсе рачунарског система и додељује их појединачним корисницима. Теме предмета укључују секвенцијалне и истовремене процесе, међусобно искључивање, дељење ресурса, сарадњу процеса, застој, расподелу ресурса, распоређивање процесора, управљање меморијом, алгоритме сегментације и пејџинга, системе дељења времена, алгоритме распореда и заштиту ресурса. (4 јединице) Предуслов: ЦС 401 или сагласност факултета.

  • Стандардни процесор за све нове рачунаре сада је мулти-цоре процесор, који има потенцијал да брже извршава програме. Међутим, да би се искористио овај потенцијал, програмер мора имати неко знање о техникама паралелног програмирања. Током овог курса, студенти ће највећи део свог времена проводити у писању и дебагирању паралелних програма. Очекивани резултат ће бити развијање новог нивоа практичне вјештине програмирања. Ова вештина неће бити корисна само за програмирање вишејезгрених процесора, већ и за програмирање оперативних система и програмирање дистрибуиране базе података. Софтверски алати који се користе током овог курса обухватају Мицрософт Висуал Ц / Ц ++, библиотеку за вишекратну обраду Јава и стандард за обраду дебљине слоја ОпенМП. (КСНУМКС јединице) Предувјет: Познавање рачунарског програмирања користећи Јава, Ц или Ц ++.

  • У овом курсу ћемо размотрити технике, принципе и обрасце како дизајнирати флексибилне, скалабилне, тестабилне и еластичне софтверске системе који користе микросервис. Проучићемо како можемо поделити велике апликације на мање микросервусе који су лакши за изградњу и друге предности у односу на монолитне пословне апликације. Дистрибуирана микросервисна архитектура такође даје многе изазове. Ми ћемо проучавати ове изазове и како да их решимо. Теме овог курса су архитектонски стилови, технике и обрасци интеграције, дизајн заснован на домену, архитектура вођена догађајима и реактивно програмирање. (КСНУМКС кредити). (Без предуслова)

  • На овом курсу практикума студенти обављају задатке повезане са рачунаром у техничком професионалном положају. Задаци који се обављају могу бити у дизајнирању и развоју нових система или примени постојећих система у одређене сврхе. Опис посла у практикуму формулишу послодавац и студент, а претходно га треба одобрити неко од дипломираних факултета на одељењу, у договору са супервизором практикума где је студент смештен. (Овај курс је првенствено за студенте на програмима праксе или кооперативних програма.) (0.5-1 јединица по блоку - може се поновити.)

„Први пут кад сам чуо за програм МСЦС сумњао сам у то. Нисам могао да верујем да тако нешто постоји. Али једног дана, мој пријатељ се придружио програму. Тада сам потврдио да је то стварно. Тада сам наставио поступак пријаве. Добро! Тачно је, овде сам, завршио сам програм и тако сам срећан. “