Är du redo att Förbättra din karriär?

Vårt program är specialiserat på mjukvarusystem och mjukvaruutveckling med hjälp av OOP (Java), webbapplikationer och datavetenskap. Kärnområdena omfattar: avancerad mjukvaruutveckling, webbapplikationsprogrammering och arkitektur, stor dataanalys och teknik, maskininlärning och flera viktiga tillämpningsområden.

Alla kurser är utformade för att hjälpa dig att fördjupa din karriär och varje kurs innehåller praktiska uppdrag. Se examenskrav.

NY! Prisvinnande Data Science Track

Standard Core Courses

  • Moderna programmeringspraxis (Java-programmering) (CS 401)

    Kursen presenterar de grundläggande principerna för objektorienterad programmering. Eleverna kommer att lära sig att skriva återanvändbar och bättre underhållen programvara och integrera denna kunskap med laboratorieuppdrag och projekt. Tema inkluderar: grundläggande principer och modeller för objektorienterad programmering, UML-klassdiagram och designprinciper som främjar återanvändbarhet och underhåll av programvara. (4-enheter)

  • Avancerad programutveckling (CS 525)

    Kursen behandlar nuvarande metoder och praxis för god design av mjukvarusystem. Ämnen omfattar: Mjukvaruutvecklingsmönster, ramverk, arkitekturer och systemdesign för att tillämpa dessa abstraktioner på flera nivåer. (2-4-poäng) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Algoritmer (CS 435)

    Kursen presenterar metoder för att analysera effektiviteten hos algoritmer (inklusive värsta fall och medellång analys) och introducerar en rad kända, högeffektiva algoritmer. Analys, design och implementering av algoritmer ges lika stor vikt. Ämnen omfattar sökning och sortering, effektivitet i operationer på datastrukturer (inklusive listor, hashtables, balanserade binära sökträd, prioritetsköer), grafalgoritmer, kombinationsalgoritmer, återkommande relationer, dynamisk programmering, NP-komplett problem och några speciella ämnen som tid tillåter. (Särskilda ämnen inkluderar beräkningsgeometri, algoritmer för kryptosystem, approximation, Big Data och parallell databehandling.)

  • Datornätverk (CS 450)

    Målet med kursen är att lära sig begrepp, arkitekturprinciper och terminologi i datanätverk genom att utforska hur nätverk fungerar och utveckla nätverksapplikationer. Kursen följer uppifrån-och-ned-strategin för att förstå nätverk genom att använda Internetens arkitektur och protokoll som det primära exemplet på implementering av nätprinciper. Vi börjar vid applikationslagret och fortsätter genom transportskiktet, nätverksskiktet, länklagret och det fysiska lagret av datanätverk. Eleverna utvecklar flera nätverksprogram och kompletterar flera laboratorier som är utformade för att spåra och förstå de övervägande nätverksprotokoll som används på Internet. (4-enheter) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Databashanteringssystem (CS 422)

    Databasystem organiserar och hämtar information, vilket gör att användaren enkelt och effektivt kan komma åt den önskade informationen. Ämnen inkluderar: relationsdatamodell; SQL; ER modellering; relationell algebra; data normalisering; transaktioner; objekt i databasen; datasäkerhet och integritet; datalagring, OLAP och data mining; distribuerade databaser; och studier av ett specifikt kommersiellt databassystem. (4-enheter) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Programvaruteknik (CS 425)

    Programvaruteknik är en kurs som introducerar studenten till bästa praxis inom mjukvaruutveckling genom en mjukvaruutvecklingsmetodik. Studenter har redan haft erfarenhet av tidigare kurser med objektorienterade paradigmet och har använt några av de grundläggande UML-diagrammen för att modellera relationer mellan programvaruobjekt. I programvaruteknik ska studenten utveckla färdigheter i att sätta dessa verktyg tillsammans för att producera robust, lätt underhållbar programvara. En mjukvaruutvecklingsmetod beskriver när och hur OO-koncept och UML-diagram ska användas för att uppnå målet att bygga kvalitetsprogramvara. Kursen centrerar kring ett litet projekt där principerna som diskuteras i föreläsningsformatet kan illustreras och tillämpas. Efter kursens slut kommer studenten att ha en löpande ansökan, byggd i enlighet med de höga standarderna för utvecklingsmetoden för RUP (Rational Unified Process).

  • Webapplikationsarkitektur och ramverk (CS 545)

    Kursen fokuserar på webbapplikationer i en företagsinställning. En företagsapplikation är ett stort programvara som är utformat för att fungera i en stor organisation som ett företag eller en regering. Enterprise-applikationer är komplexa, skalbara, komponentbaserade, distribuerade och missionskritiska. Denna kurs, CS545, fokuserar på frontänden eller presentationsskiktet i ett företagswebbprogram. CS544 Enterprise Architecture är en följeslagare som fokuserar på backend eller affärsskikt, inklusive affärslogik, transaktioner och uthållighet. CS472, Web Application Programming, är en förutsättningskurs som omfattar HTML, CSS, JavaScript, servlets och JSP.

    Kursen lär ut principer och mönster som är allmänna över plattformar och ramar. Kursen ska undersöka och arbeta med de två övervägande Java-webbramarna, Java Server Faces (JSF) och SpringMVC. JSF är en komponentbaserad ram och är den officiella presentationsramspecifikationen för Java Enterprise Edition-teknikstacken. SpringMVC är en del av Core Spring-ramen och har blivit det mest använda Java-nätverket under de senaste åren. (4-enheter) Förutsättning: CS 472 eller samtycke från institutionens fakultet.

  • Webapplikationsprogrammering (CS 472)

    Kursen ger en systematisk introduktion till programmering av interaktiva och dynamiska webbapplikationer. Kursen är avsedd för personer med liten eller ingen tidigare webbapplikationsprogrammeringserfarenhet. Detta erbjudande kommer att använda Java servlets och JSP för server sida behandling. Kursen introducerar HTML och CSS. JavaScript är ett fokus för kursen och är täckt som ett funktionellt programmeringsspråk, inklusive jQuery, Ajax och JavaScript namnområden och moduler. Det är en förutsättning för CS545 webbapplikationsarkitektur. Det täcker inte AngularJS eller NodeJS, men JavaScript som omfattas här kommer att förbereda dig för att lära dig dessa tekniker. (4-enheter)
    Förutsättning: CS 220 eller CS 401 eller samtycke från institutionens fakultet.

  • Vetenskap och teknik för medvetenhet för datavetenskapare (för 506)

    Din första kurs är speciellt utformad för att utgöra grunden för hur du kan bli en utmärkande datorvetenskaplig professionell. Kursen är förankrad i övningen av transcendental meditation som leder till uppfyllandet av din sanna potential. Du kommer att lära dig om fördelarna med TM, inklusive förmågan att lösa komplexa problem genom överlägsen mental funktion som förbättrar kreativiteten och "out of the box" -tänkandet. Kursen kommer att fokusera på de principer som stöder toppresultat i verksamheten genom att utveckla en optimal blandning av vila och aktivitet. Du kommer att utveckla och uppleva en idealisk daglig rutin som stöder framgång i livet. (2-enheter)

Ytterligare MSCS-kurser

  • Avancerade programmeringsspråk (CS 505)

    Kursen behandlar avancerade ämnen i programmeringssprogdesign med inriktning på formella metoder och abstraktionsmekanismer. Ämnen inkluderar data- och kontrollabstraktion, formell specifikation av syntax och semantik, bevis på programkorrigitet, icke-deterministisk programmering, avancerade kontrollstrukturer och studier av specifika språk. (4-enheter) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Stora data (Data Science-spår) (CS 522)

    Modern informationsbehandling definieras av stora datalager som inte kan hanteras av traditionella databassystem. Kursen omfattar den senaste tekniken som utvecklats och används av branschledare för att lösa detta problem på det mest effektiva sättet. Specifika ämnen som omfattas är MapReduce-algoritmer, MapReduce-algoritmdesignmönster, HDFS, Hadoop-klusterarkitektur, YARN, beräkning av relativa frekvenser, sekundär sortering, webbkryptering, inverterade index och indexkomprimering, Spark-algoritmer och Scala. (4-enheter) Förutsättning: CS 435-algoritmer.

  • Big Data Analytics (Data Science-spår) (CS 488)

    Stora data är den nya naturresursen: data fördubblas varje 12-18 månader. Den här nya Big Data Analytics-kursen täcker de grundläggande begreppen och verktygen för att gruva stora, olika datamängder för att skapa nya insikter. Du kommer att behärska användningen av R-språk för att skapa Wordcloud, Pagerank, Datavisualisering, Beslutstrender, Regression, Clustering, Neurala nätverk och mycket mer. Du kommer att arbeta med några stora fler miljoner rekorddataset, och även mina Twitter-flöden. Du kommer att lära dig Hadoop / MapReduce and Streaming Data-koncept och utforska andra Apache Big Data-projekt som Spark, Flink, Kafka, Storm, Samza, NoSQL genom individuella forskningshandlingar. Du kommer att arbeta i grupper på öppna projekt från Kaggle.com för att konkurrera om prispengar genom att lösa de bästa analytiska utmaningarna. Du kommer också att lära dig att använda branschledande IBM SPSS Modeler, och dataöverföringsplattformar med öppen källkod. Den #1 bästsäljare handboken som används i denna kurs är skriven av instruktören själv. Kursen kommer också att använda ett brett utbud av videoträningsmaterial från MIT, Coursera, Google och på annat håll. (4-enheter) Förutsättning: Samtycke av institutionens fakultet

  • Big Data Technologies (Data Science Track) (CS 523)

    På bara några få år har stor datateknik gått från hype till en av kärnkomponenterna i den nya digitala tiden. Dessa tekniker är mycket användbara för att omvandla information till kunskap.

    Syftet med kursen är att lägga till några väldigt viktiga verktyg i ditt arsenal för att hjälpa dig att lösa olika stora dataproblem. Vi börjar med att ge svar på frågor som "Vad är stora data? Varför är det viktigt eller användbart? Hur lagrar du den här stora data? "Vi studerar sedan olika verktyg och programmeringsmodeller från den stora datateknikstacken som hjälper oss att analysera data. Ämnen inkluderar några av projekten i Hadoop ekosystemet, som MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper och Apache Spark ekosystemprojekt. Vi täcker också en introduktion till AWS och EMR. Du kommer huvudsakligen att arbeta med en enda nod Hadoop distribution av Cloudera. (4-enheter) (Inga förutsättningar)

  • Datorsäkerhet (CS 466)

    Kursen går djupt in i de tre aspekterna av datasäkerhet: konfidentialitet, integritet och tillgänglighet. Flera modeller för sekretesspolicy och integritetsskyddspolitik studeras. Kryptografins roll för att säkerställa sekretess och integritet undersöks. Andra ämnen inkluderar autentisering, revision, penetrationstestning, vanliga sårbarheter och intrångsdetektering. Kursen avslutas med fallstudien av ett realistiskt säkert system. Studenterna kommer att bli ombedda att läsa avhandlingar från säkerhetslitteraturen och tillämpa dem på material som ges i föreläsningarna. (4-poäng) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Företagsarkitektur (CS 544)

    Kursen fokuserar på att undervisa principer och praxis som används vid utveckling av applikationer i större skala. Vi kommer att undersöka de olika arkitektoniska lagren som ofta används och olika tekniker förknippade med dessa lager, inklusive Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP) och integration med andra applikationer via Web Services (RESTfull och SOAP), Meddelande och fjärråtkomst av metod. Måste ha en fungerande kunskap om relationella databaser och SQL. Om du inte har en stark kurs eller bra kunskap om SQL, bör du registrera dig för CS422 DBMS innan du registrerar dig för EA. (4-enheter)

  • Maskininlärning (data science track) (CS 582)

    Maskininlärning, det studieområde som ger datorer möjligheten att lära av data, ligger i centrum för nästan alla vetenskapliga discipliner, och studien av generalisering (det vill säga prediktion) från data är det centrala ämnet för maskininlärning. Kursen ger en inledande introduktion till maskininlärning och djupgående täckning av nya och avancerade metoder inom maskininlärning samt deras underliggande teori. Den betonar metoder med praktisk relevans och diskuterar ett antal nya tillämpningar av maskininlärning, såsom Data Mining (i Big Data / Data Science, Data Analytics), Process Processing, Datasyn, Robotics, Bioinformatics och Text and Web-databehandling. Machine Learning används i olika branscher, inklusive finansiella tjänster, olja och gas, hälso- och sjukvård, marknadsföring och reklam, regering, internet och saker i saken.

    Kursen omfattar en rad lärande paradigmer, algoritmer, teoretiska resultat och tillämpningar. Den använder grundläggande begrepp från artificiell intelligens, informationsteori, statistik och kontrollteori i den utsträckning de är relevanta för maskininlärning. Ämnen är: Övervakad inlärning (generativ / diskriminerande inlärning, parametrisk / icke-parametrisk inlärning, neurala nätverk, stödvektomaskiner, beslutsträd, Bayesian learning & optimization); oövervakat lärande (kluster, dimensionalitetsminskning, kärnmetoder); inlärningsteori (bias / variansavvikelser, VC-teori, stora marginaler); förstärkning lärande och adaptiv kontroll. Andra ämnen inkluderar HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (med neurala nät) och design av algoritmer vars prestanda kan analyseras noggrant för grundläggande maskininlärningsproblem.

    En viktig del av kursen är ett gruppprojekt. Stora öppna källverktyg som används för parallell, distribuerad och skalbar maskininlärning kommer att kortfattat täckas för att hjälpa studenter att göra projekten. (4-enheter) Förutsättning: Ingen.

  • Programmering av mobilenhet (CS 473)

    Betydelsen av mobilenhetsprogrammering har uppstått under de senaste åren som en ny domän inom mjukvaruutveckling. Kursen förbereder eleverna att utveckla applikationer som körs på mobila enheter som en IPhone, IPad eller Android-telefon. Detta är en snabbt utvecklande marknad. Kursen fokuserar på att installera, utveckla, testa och distribuera mobila applikationer. I slutet av kursen kan eleverna utveckla en app för de täckta plattformarna, simulera dem, testa dem på den verkliga enheten och äntligen publicera på appbutiken för att göra tillgängligheten till användarna. (4-enheter) Förutsättning: CS472 eller samtycke från institutionens fakultet.

  • Moderna webbapplikationer (CS 572)

    I den här kursen kommer du att lära dig SPA: s Reactive Programming Architecture (Single Page Web Applications) tillsammans med alla nödvändiga färdigheter för att bygga en fullständig modern webbapplikation. Technologies inkluderar: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase och NoSQL databaser (MongoDB). Kursen kommer att omfatta:

    • Hur C ++ V8-motorn och asynkron kod fungerar i Node och Node-händelsesslingan.
    • Hur du strukturerar din kod för återanvändning och bygga vilolikt API med hjälp av moduler och ExpressJS.
    • Hur NoSQL-databaser fungerar: Mongo Shell, Aggregation Framework, Replica Sets, Clustering, Shards, Mongoose ORM.
    • Djup förståelse för hur Angular (backas av Google) fungerar, Change Detection, Reactive RxJs programmering med observables and subjects, skuggan DOM, zoner, moduler och komponenter, anpassade direktiv och rör, tjänster och beredskapsinjicering, vinkel kompilator, JIT och AOF kompilering , Forms (Template Driven och Data Driven), Data Binding, Routing, Guards och Ruttskydd, HTTP-klient, JWT JSON Web Token Authentication.

    (4-enheter)

  • Operativsystem (CS 465)

    Ett operativsystem styr de centrala resurserna i datorsystemet och allokerar dem till enskilda användare. Kursens ämnen inkluderar sekventiella och samtidiga processer, ömsesidigt uteslutande, resursdelning, processsamarbete, dödläge, resursallokering, processorplanering, minneshantering, segmenterings- och personsökningsalgoritmer, tidsrapporteringssystem, schemaläggningsalgoritmer och resursskydd. (4-enheter) Förutsättning: CS 401 eller samtycke från institutionens fakultet.

  • Parallell programmering (CS 471)

    Standardprocessorn för alla nya datorer är nu en multi-core processor, som har potential att genomföra program mycket snabbare. För att utnyttja denna potential måste en programmerare dock ha kunskaper om parallell programmeringsteknik. Under den här kursen kommer studenterna att tillbringa större delen av sin tid att skriva och felsöka parallella program. Det förväntade resultatet kommer att vara att utveckla en ny nivå av praktisk programmeringskunskap. Denna färdighet kommer inte bara att vara användbar för programmering av flera kärnprocessorer, men även operativsystemprogrammering och distribuerad databasprogrammering. Mjukvaruverktygen som används under kursen inkluderar Microsoft Visual C / C ++, Java multithreading-bibliotek och OpenMP-tråderingsstandard. (4-enheter) Förutsättning: Kunskap om datorprogrammering med Java, C eller C ++.

  • Programvara Arkitektur (CS 590)

    I denna kurs kommer vi att titta på tekniker, principer och mönster för hur man ska utforma flexibla, skalbara, testbara och fjädrande mjukvarusystem som använder mikroservices. Vi kommer att studera hur vi kan dela upp stora applikationer i mindre mikroservices som är enklare att bygga och andra fördelar jämfört med monolitiska företagsapplikationer. En distribuerad mikroservicearkitektur ger också många utmaningar. Vi kommer att studera dessa utmaningar och hur de ska hantera dem. Ämnen i kursen är arkitektoniska stilar, integrationstekniker och mönster, domänstyrd design, händelsedrikerad arkitektur och reaktiv programmering. (4-poäng). (Inga förutsättningar)

  • Praktik i mjukvaruutveckling (CS 575)

    I den här praktikkursen utför eleverna datorrelaterade uppgifter i en teknisk professionell position. De uppgifter som utförs kan vara utformade och utvecklade av nya system eller tillämpningen av befintliga system för specifika ändamål. Praktiska arbetsbeskrivningar formuleras av arbetsgivaren och studenten, och krävs i förväg av en av institutionens doktorander, i samråd med praktikhandledaren där studenten placeras. (Denna kurs är främst för studenter i praktik eller samarbetsprogram.) (0.5-1-enhet per block - kan upprepas.)

"Första gången jag hörde om MSCS-programmet tvivlade jag på det. Jag kunde inte tro att något sådant här existerar. Men en dag gick en vän av mig till programmet. Det var då jag bekräftade att det var riktigt. Sedan återupptog jag min ansökan. Väl! Det är sant, jag är här, jag har avslutat programmet och jag är så glad. "

Edwin BwambaleUganda