Sei pronto per Anticipa la tua carriera?

Il nostro programma è specializzato nelle aree dei sistemi software e dello sviluppo software utilizzando OOP (Java) e applicazioni web, insieme ad alcuni corsi di data science. Le principali aree di studio includono: sviluppo software avanzato, programmazione e architettura di applicazioni web, alcuni corsi di data science e diverse importanti aree applicative.

Tutti i corsi sono progettati per aiutarti ad avanzare nella tua carriera e ogni corso contiene compiti pratici. vista requisiti di laurea.

Corsi di data science

Corsi standard di base

  • Questo corso presenta i principi fondamentali della programmazione orientata agli oggetti. Gli studenti impareranno come scrivere software riutilizzabile e meglio conservato e integrare questa conoscenza con compiti e progetti di laboratorio. Gli argomenti includono: principi fondamentali e modelli di programmazione orientata agli oggetti, diagrammi di classe UML e principi di progettazione che promuovono la riutilizzabilità e la manutenibilità del software. (Unità 4)

  • Questo corso considera i metodi e le pratiche attuali per una buona progettazione di sistemi software. Gli argomenti includono: modelli di progettazione del software, strutture, architetture e sistemi di progettazione per applicare queste astrazioni multilivello. (Crediti 2-4) Prerequisito: CS 401 o consenso del dipartimento facoltà.

  • Questo corso presenta metodi per analizzare l'efficienza degli algoritmi (comprese le analisi caso peggiore e caso medio) e introduce una varietà di algoritmi noti e altamente efficienti. L'analisi, la progettazione e l'implementazione degli algoritmi hanno la stessa importanza. Gli argomenti includono la ricerca e l'ordinamento, l'efficienza delle operazioni sulle strutture dati (inclusi elenchi, hashtables, alberi binari di ricerca bilanciati, code di priorità), algoritmi grafici, algoritmi combinatori, relazioni di ricorrenza, programmazione dinamica, problemi NP-completi e alcuni argomenti speciali come tempo permette. (Argomenti speciali includono geometria computazionale, algoritmi per crittosistemi, approssimazione, Big Data e calcolo parallelo).

  • Il corso si focalizza sull'insegnamento dei principi e delle pratiche utilizzate nello sviluppo di applicazioni aziendali su vasta scala. Esamineremo i diversi livelli architettonici che vengono frequentemente utilizzati e le diverse tecnologie associate a questi livelli, tra cui Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP) e integrazione con altre applicazioni tramite Web Services (RESTfull e SOAP), messaggistica e invocazione del metodo remoto. Deve avere una conoscenza operativa di database relazionali e SQL. Se non si dispone di un corso approfondito o di una buona conoscenza pratica di SQL, è necessario iscriversi a CS422 DBMS prima di registrarsi per EA. (Unità 4)

  • Ingegneria del software è un corso che introduce lo studente alle migliori pratiche nello sviluppo del software attraverso una metodologia di sviluppo del software. Gli studenti hanno già avuto una certa esperienza in corsi precedenti con il paradigma Object Oriented e hanno usato alcuni dei diagrammi UML di base allo scopo di modellare le relazioni tra oggetti software. In Ingegneria del software, lo studente svilupperà competenze nel mettere insieme questi strumenti per produrre un software robusto e facilmente gestibile. Una metodologia di sviluppo del software descrive quando e come i concetti OO e i diagrammi UML dovrebbero essere usati per raggiungere l'obiettivo di costruire software di qualità. Il corso si concentra su un piccolo progetto in cui i principi discussi nel formato della lezione possono essere illustrati e applicati. Alla fine del corso, lo studente avrà un'applicazione in esecuzione, costruita in accordo con gli standard elevati della metodologia di sviluppo RUP (Rational Unified Process).

  • Questo corso focalizza le applicazioni web in un ambiente aziendale. Un'applicazione aziendale è un grande sistema software progettato per operare in una grande organizzazione come una società o un governo. Le applicazioni aziendali sono complesse, scalabili, basate su componenti, distribuite e mission critical. Questo corso, CS545, si concentra sul front-end o sul livello di presentazione di un'applicazione Web aziendale. CS544 Enterprise Architecture è un corso complementare incentrato sul back-end o sul livello aziendale, tra cui business logic, transazioni e persistenza. CS472, Web Application Programming, è un corso prerequisito che copre HTML, CSS, JavaScript, servlet e JSP.

    Il corso insegna principi e modelli generali su piattaforme e framework. Il corso esaminerà e lavorerà con i due framework web Java predominanti, Java Server Faces (JSF) e SpringMVC. JSF è un framework basato su componenti ed è la specifica del framework di presentazione ufficiale per lo stack tecnologico Java Enterprise Edition. SpringMVC fa parte del framework Core Spring ed è diventato il framework web Java più utilizzato negli ultimi anni. (Unità 4) Prerequisito: CS 472 o consenso del dipartimento facoltà.

  • Questo corso fornisce un'introduzione sistematica alla programmazione di applicazioni web interattive e dinamiche. Il corso è rivolto a persone con poca o nessuna esperienza precedente nella programmazione di applicazioni web. Questa offerta utilizzerà servlet Java e JSP per l'elaborazione lato server. Il corso introdurrà HTML e CSS. JavaScript è al centro del corso ed è trattato come un linguaggio di programmazione funzionale che include spazi dei nomi e moduli jQuery, Ajax e JavaScript. È un prerequisito per l'architettura dell'applicazione Web CS545. Non copre AngularJS o NodeJS, ma il JavaScript trattato qui ti preparerà ad apprendere queste tecnologie. (4 unità)
    Prerequisito: CS 220 o CS 401 o consenso del dipartimento facoltà.

  • Il tuo primo corso è specificamente progettato per stabilire le basi su come puoi diventare un professionista dell'informatica con le migliori prestazioni. Il corso è radicato nella pratica della Meditazione Trascendentale che porta alla realizzazione del tuo vero potenziale. Imparerai a conoscere i vantaggi della Meditazione Trascendentale, inclusa la capacità di risolvere problemi complessi mediante un funzionamento mentale superiore, migliorando la creatività e il pensiero “fuori dagli schemi”. Il corso si concentrerà sui principi che sono alla base delle massime prestazioni in attività sviluppando un mix ottimale di riposo e attività. Svilupperai e sperimenterai una routine quotidiana ideale che supporta il successo nella vita. (2 unità)

  • L'obiettivo di questo corso è fornire agli studenti conoscenze e abilità nella leadership, comprese le abilità comunicative come preparazione per i futuri ruoli di leadership.

    Alla fine di questo corso, gli studenti capiranno le risposte a domande chiave riguardanti una leadership efficace, tra cui:

    Ci sono leader "di origine naturale"?

    Devi avere carisma per guidare in modo efficace?

    Quale asset è necessario per essere un leader?

    Qual è la differenza tra la gestione e la guida?

    Quali sono le molte "intelligenze" richieste per guidare in questa era?

    Che cosa è "malasanità da parte del management" e come conduce all'autosabotaggio?

    Sapendo che il feedback è essenziale per il processo guida, come possiamo superare la paura di dare e riceverlo?

    Qual è la fonte di 80% dei problemi riscontrati sul posto di lavoro?

    È disponibile una ricerca scientifica per aiutare l'organizzazione a migliorare le proprie capacità di leadership individuale e di squadra?

    Tra i relatori ospiti figurano eminenti imprenditori, informatici, filantropi, accademici e altri leader di spicco della società.

    (unità 2)

Corsi MSCS aggiuntivi

  • Questo corso considera argomenti avanzati nella programmazione del linguaggio di programmazione con enfasi su metodi formali e meccanismi di astrazione. Gli argomenti includono dati e astrazione di controllo, specifiche formali di sintassi e semantica, prove di correttezza del programma, programmazione non deterministica, strutture di controllo avanzate e studio di linguaggi specifici. (Unità 4) Prerequisito: CS 401 o consenso del dipartimento facoltà.

  • L'elaborazione moderna delle informazioni è definita da vasti archivi di dati che non possono essere gestiti dai sistemi di database tradizionali. Questo corso copre l'ultima tecnologia sviluppata e utilizzata dai leader del settore per risolvere questo problema nel modo più efficiente. Argomenti specifici trattati includono algoritmi MapReduce, schemi di progettazione algoritmo MapReduce, HDFS, architettura cluster Hadoop, YARN, calcolo delle frequenze relative, ordinamento secondario, web crawling, indici invertiti e compressione indice, algoritmi Spark e Scala. (Unità 4) Prerequisito: CS 435 Algorithms.

  • Big Data è la nuova risorsa naturale: i dati raddoppiano ogni mese 12-18. Questo nuovo corso di Big Data Analytics copre i concetti e gli strumenti fondamentali per estrarre grandi set di dati diversi per generare nuovi approfondimenti. Potrai padroneggiare l'uso del linguaggio R per creare Wordcloud, Pagerank, Visualizzazione dati, Alberi decisionali, Regressione, Clustering, Reti neurali e altro ancora. Lavorerai con alcuni grandi insiemi di record multi-milioni e anche i miei feed Twitter. Imparerai i concetti di Hadoop / MapReduce e Streaming Data e esplorerai altri progetti di Big Data di Apache come Spark, Flink, Kafka, Storm, Samza, NoSQL attraverso documenti di ricerca individuali. Lavorerai in gruppo su progetti aperti di Kaggle.com per competere per i premi in denaro risolvendo le sfide best-of-breed di analisi dei dati. Imparerai anche a utilizzare IBM SPSS Modeler leader del settore e piattaforme di data mining open source. Il libro di bestseller #1 utilizzato in questo corso è stato scritto dall'istruttore stesso. Il corso utilizzerà anche una vasta gamma di materiali per la formazione video di MIT, Coursera, Google e altrove. (Unità 4) Prerequisito: consenso del dipartimento facoltà

  • In pochi anni, le tecnologie dei big data sono passate dal regno dell'hype a uno dei componenti principali della nuova era digitale. Queste tecnologie sono molto utili per trasformare l'informazione in conoscenza.

    Lo scopo del corso è aggiungere alcuni strumenti davvero importanti nel tuo arsenale per aiutarti a risolvere vari problemi di big data. Inizieremo dando risposte a domande come "Cosa sono i Big Data? Perché è importante o utile? Come vengono archiviati questi big data? " Studieremo quindi diversi strumenti e modelli di programmazione dallo stack tecnologico dei big data che ci aiuteranno ad analizzare i dati. Gli argomenti includono alcuni dei progetti nell'ecosistema Hadoop come MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper e Apache Spark. Tratteremo anche un'introduzione ad AWS ed EMR. Lavorerai principalmente con una distribuzione Hadoop a nodo singolo di Cloudera. (4 unità) (Nessun prerequisito)

  • L'obiettivo di questo corso è apprendere i concetti, i principi dell'architettura e la terminologia delle reti di computer esplorando il funzionamento delle reti e sviluppando applicazioni di rete. Questo corso segue l'approccio top-down alla comprensione delle reti utilizzando l'architettura ei protocolli di Internet come esempio principale di implementazione dei principi di rete. Partiamo dal livello dell'applicazione e proseguiamo attraverso il livello di trasporto, il livello di rete, il livello di collegamento e il livello fisico delle reti di computer. Gli studenti sviluppano diverse applicazioni di rete e completano diversi laboratori progettati per tracciare e comprendere i protocolli di rete predominanti in uso in Internet. (4 unità) Prerequisito: CS 401 o consenso della facoltà del dipartimento.

  • Questo corso approfondisce i tre aspetti della sicurezza informatica: riservatezza, integrità e disponibilità. Vengono studiati diversi modelli per le politiche di riservatezza e integrità. Viene esaminato il ruolo della crittografia nell'assicurare la riservatezza e l'integrità. Altri argomenti includono autenticazione, auditing, test di penetrazione, vulnerabilità comuni e rilevamento delle intrusioni. Il corso si conclude con il caso di studio di un sistema sicuro realistico. Agli studenti verrà chiesto di leggere i documenti della letteratura sulla sicurezza e applicarli al materiale fornito nelle lezioni. (Crediti 4) Prerequisito: CS 401 o consenso del dipartimento facoltà.

  • I sistemi di database organizzano e recuperano le informazioni, consentendo all'utente di accedere alle informazioni desiderate in modo semplice ed efficiente. Gli argomenti includono: modello di dati relazionali; SQL; Modellazione ER; algebra relazionale; normalizzazione dei dati; transazioni; oggetti nel database; sicurezza e integrità dei dati; data warehousing, OLAP e data mining; database distribuiti; e studio di un sistema di database commerciale specifico. (Unità 4) Prerequisito: CS 401 o consenso del dipartimento facoltà.

  • L'apprendimento automatico, il campo di studio che offre ai computer la capacità di apprendere dai dati, è al centro di quasi tutte le discipline scientifiche e lo studio della generalizzazione (cioè la previsione) dai dati è l'argomento centrale dell'apprendimento automatico. Questo corso fornisce un'introduzione di livello universitario all'apprendimento automatico e una copertura approfondita dei metodi nuovi e avanzati nell'apprendimento automatico, nonché della loro teoria sottostante. Sottolinea approcci con rilevanza pratica e discute una serie di recenti applicazioni dell'apprendimento automatico, come Data Mining (in Big Data / Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotica, Bioinformatica e Text and Web data processing. L'apprendimento automatico viene utilizzato in vari settori tra cui servizi finanziari, petrolio e gas, assistenza sanitaria, marketing e pubblicità, governo, Internet e Internet delle cose.

    Questo corso copre una varietà di paradigmi di apprendimento, algoritmi, risultati teorici e applicazioni. Utilizza concetti di base di intelligenza artificiale, teoria dell'informazione, statistica e teoria del controllo nella misura in cui sono rilevanti per l'apprendimento automatico. Gli argomenti includono: apprendimento supervisionato (apprendimento generativo / discriminativo, apprendimento parametrico / non parametrico, reti neurali, macchine a vettori di supporto, albero decisionale, apprendimento e ottimizzazione bayesiana); apprendimento non supervisionato (clustering, riduzione della dimensionalità, metodi kernel); teoria dell'apprendimento (compromessi di bias / varianza; teoria VC; ampi margini); apprendimento per rinforzo e controllo adattivo. Altri argomenti includono HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (With Neural Nets) e la progettazione di algoritmi le cui prestazioni possono essere analizzate rigorosamente per problemi fondamentali di machine learning.

    Una parte importante del corso è un progetto di gruppo. I principali strumenti open source utilizzati per l'apprendimento automatico parallelo, distribuito e scalabile verranno brevemente trattati per aiutare gli studenti a realizzare i progetti. (Unità 4) Prerequisito: nessuno.

  • L'importanza della programmazione dei dispositivi mobili è emersa negli ultimi anni come un nuovo dominio nello sviluppo del software. Questo corso prepara gli studenti a sviluppare applicazioni che girano su dispositivi mobili come un telefono IPhone, IPad o Android. Questo è un mercato in rapido sviluppo. Il corso si concentra sull'installazione, lo sviluppo, il test e la distribuzione di applicazioni mobili. Alla fine di questo corso gli studenti sono in grado di sviluppare un'app per le piattaforme coperte, simularle, testarle sul dispositivo reale e infine pubblicare sull'app store per rendere la disponibilità agli utenti. (Unità 4) Prerequisito: CS472 o consenso del dipartimento facoltà.

  • In questo corso imparerai l'architettura di programmazione reattiva di SPA (applicazioni Web a pagina singola) insieme a tutte le competenze necessarie per creare un'applicazione Web moderna completa. Le tecnologie includono: database NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase e NoSQL (MongoDB). Il corso riguarderà:

    • Come il motore V8 C ++ e il codice asincrono funzionano nel nodo degli eventi Nodo e Nodo.
    • Come strutturare il codice per riutilizzarlo e creare API restful usando i moduli e ExpressJS.
    • Come funzionano i database NoSQL: Mongo Shell, Aggregation framework, Replica Sets, Clustering, Shards, Mongoose ORM.
    • Comprensione approfondita di come funziona Angular (supportato da Google), Rilevamento modifiche, RxJ reattivo programmazione con oggetti osservabili e soggetti, DOM ombra, Zone, moduli e componenti, Direttive e tubi personalizzati, Servizi e Iniezione delle dipendenze, Compilatore angolare, Compilazione JIT e AOF , Forms (Template Driven e Data Driven), Data Binding, Routing, Guard e Route Protection, client HTTP, JWT JSON Web Token Authentication.

    (unità 4)

  • Un sistema operativo controlla le risorse centrali del sistema informatico e le assegna ai singoli utenti. Gli argomenti del corso includono processi sequenziali e simultanei, esclusione reciproca, condivisione delle risorse, cooperazione dei processi, deadlock, allocazione delle risorse, pianificazione del processore, gestione della memoria, algoritmi di segmentazione e paging, sistemi di condivisione del tempo, algoritmi di pianificazione e protezione delle risorse. (4 unità) Prerequisito: CS 401 o consenso della facoltà del dipartimento.

  • Il processore standard per tutti i nuovi computer è ora un processore multi-core, che ha il potenziale per eseguire programmi molto più rapidamente. Tuttavia, per utilizzare questo potenziale, un programmatore deve avere una certa conoscenza delle tecniche di programmazione parallela. Durante questo corso, gli studenti trascorreranno la maggior parte del loro tempo a scrivere e mettere a punto programmi paralleli. Il risultato atteso sarà quello di sviluppare un nuovo livello di abilità di programmazione pratica. Questa competenza non sarà utile solo per la programmazione di processori multi-core, ma anche per la programmazione di sistemi operativi e per la programmazione di database distribuiti. Gli strumenti software utilizzati durante questo corso includono Microsoft Visual C / C ++, libreria di multithreading Java e standard di threading OpenMP. (Unità 4) Prerequisito: Conoscenza della programmazione del computer tramite Java, C o C ++.

  • In questo corso esamineremo tecniche, principi e modelli su come progettare sistemi software flessibili, scalabili, testabili e resilienti utilizzando microservizi. Studieremo come possiamo suddividere le applicazioni di grandi dimensioni in microservizi più piccoli che sono più facili da costruire e altri vantaggi rispetto alle applicazioni aziendali monolitiche. Un'architettura di microservizi distribuiti offre anche molte sfide. Studieremo queste sfide e come affrontarle. Gli argomenti di questo corso sono gli stili architettonici, le tecniche e i modelli di integrazione, la progettazione basata sul dominio, l'architettura basata su eventi e la programmazione reattiva. (Crediti 4). (Nessun prerequisito)

  • In questo corso pratico, gli studenti svolgono compiti relativi al computer in una posizione professionale tecnica. I compiti svolti possono riguardare la progettazione e lo sviluppo di nuovi sistemi o l'applicazione di sistemi esistenti per scopi specifici. Le descrizioni del lavoro pratico sono formulate dal datore di lavoro e dallo studente e richiedono l'approvazione anticipata da parte di uno dei docenti universitari del dipartimento, in consultazione con il supervisore del praticantato in cui è collocato lo studente. (Questo corso è principalmente per studenti in stage o programmi cooperativi.) (0.5-1 unità per blocco - può essere ripetuto).

“La prima volta che ho sentito parlare del programma MSCS, ne dubitavo. Non potevo credere che esistesse qualcosa di simile. Ma un giorno, un mio amico si è unito al programma. Fu allora che ho confermato che era reale. Quindi ho ripreso il mio processo di candidatura. Bene! È vero, sono qui, ho completato il programma e sono così felice. "