Você está pronto para Avance sua carreira?

Nosso programa é especializado nas áreas de sistemas de software e desenvolvimento de software usando OOP (Java), aplicativos da web e data science. As principais áreas de estudo incluem: desenvolvimento de software avançado, programação e arquitetura de aplicativos da web, análise e tecnologias de big data, aprendizado de máquina e várias áreas de aplicação importantes.

Todos os cursos são projetados para ajudá-lo a melhorar sua carreira e cada curso contém tarefas práticas. Visão requisitos de graduação.

NOVO! Premiado Ciência dados

Cursos Básicos Padrão

  • Práticas modernas de programação (programação Java) (CS 401)

    Este curso apresenta os princípios fundamentais da programação orientada a objetos. Os alunos aprenderão a escrever softwares reutilizáveis ​​e melhor mantidos e a integrar esse conhecimento a tarefas e projetos de laboratório. Os tópicos incluem: princípios fundamentais e modelos de programação orientada a objetos, diagramas de classes UML e princípios de design que promovem a reutilização e a manutenção do software. (Unidades 4)

  • Desenvolvimento Avançado de Software (CS 525)

    Este curso considera os métodos e práticas atuais para um bom design de sistemas de software. Os tópicos incluem: padrões de design de software, estruturas, arquiteturas e sistemas de design para aplicar essas abstrações em vários níveis. (Créditos 2-4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Algoritmos (CS 435)

    Este curso apresenta métodos para analisar a eficiência de algoritmos (incluindo a análise de casos piores e médias) e introduz uma variedade de algoritmos conhecidos e altamente eficientes. Análise, design e implementação de algoritmos recebem igual ênfase. Os tópicos incluem pesquisa e classificação, eficiência de operações em estruturas de dados (incluindo listas, hashtables, árvores de busca binária balanceada, filas de prioridade), algoritmos gráficos, algoritmos combinatórios, relações de recorrência, programação dinâmica, problemas NP-completos e alguns tópicos especiais como tempo permite. (Tópicos especiais incluem geometria computacional, algoritmos para criptossistemas, aproximação, Big Data e computação paralela).

  • Arquitetura Empresarial (CS 544)

    Este curso enfoca o ensino dos princípios e práticas utilizados no desenvolvimento de aplicativos corporativos em larga escala. Examinaremos as diferentes camadas arquiteturais usadas com freqüência e diferentes tecnologias associadas a essas camadas, incluindo Mapeamento Relacional de Objeto (ORM), Injeção de Dependência (DI), Programação Orientada a Aspectos (AOP) e integração com outros aplicativos por meio de Serviços Web (RESTfull). e SOAP), Messaging e invocação de método remoto. Deve ter um conhecimento funcional de bancos de dados relacionais e SQL. Se você não tem um curso forte ou um bom conhecimento de SQL, você deve se inscrever no CS422 DBMS antes de se inscrever no EA. (Unidades 4)

  • Engenharia de Software (CS 425)

    Engenharia de Software é um curso que apresenta ao aluno as melhores práticas de desenvolvimento de software através de uma metodologia de desenvolvimento de software. Os alunos já tiveram alguma experiência em cursos anteriores com o paradigma Orientado a Objetos e utilizaram alguns dos diagramas UML básicos para fins de modelagem de relacionamentos entre objetos de software. Em Engenharia de Software, o aluno desenvolverá habilidades para reunir essas ferramentas para produzir software robusto e de fácil manutenção. Uma metodologia de desenvolvimento de software descreve quando e como conceitos OO e diagramas UML devem ser usados ​​para atingir o objetivo de construir softwares de qualidade. O curso gira em torno de um pequeno projeto no qual os princípios discutidos no formato da palestra podem ser ilustrados e aplicados. No final do curso, o aluno terá um aplicativo em execução, construído de acordo com os altos padrões da metodologia de desenvolvimento do RUP (Rational Unified Process).

  • Arquitetura e Estruturas de Aplicativos da Web (CS 545)

    Este curso enfoca aplicativos da Web em um ambiente corporativo. Um aplicativo corporativo é um grande sistema de software projetado para operar em uma grande organização, como uma corporação ou um governo. Aplicativos corporativos são complexos, escaláveis, baseados em componentes, distribuídos e de missão crítica. Este curso, CS545, enfoca o front-end ou a camada de apresentação de um aplicativo da Web corporativo. O CS544 Enterprise Architecture é um curso complementar que se concentra no back-end ou na camada de negócios, incluindo lógica de negócios, transações e persistência. CS472, Web Application Programming, é um curso de pré-requisito que abrange HTML, CSS, JavaScript, servlets e JSP.

    O curso ensina princípios e padrões gerais em todas as plataformas e estruturas. O curso examinará e trabalhará com as duas estruturas da Web Java predominantes, Java Server Faces (JSF) e SpringMVC. O JSF é uma estrutura baseada em componente e é a especificação de estrutura de apresentação oficial para a pilha de tecnologia do Java Enterprise Edition. O SpringMVC faz parte do framework Core Spring e se tornou o framework web Java mais usado nos últimos anos. (Unidades 4) Pré-requisito: CS 472 ou consentimento do corpo docente do departamento.

  • Programação de Aplicações Web (CS 472)

    Este curso fornece uma introdução sistemática à programação de aplicativos da Web interativos e dinâmicos. O curso destina-se a pessoas com pouca ou nenhuma experiência anterior em programação de aplicativos da web. Esta oferta usará servlets Java e JSP para processamento no lado do servidor. O curso apresentará HTML e CSS. O JavaScript é um foco do curso e é abordado como uma linguagem de programação funcional, incluindo espaços de nomes e módulos jQuery, Ajax e JavaScript. É um pré-requisito para o CS545 Web Application Architecture. Ele não cobre o AngularJS ou o NodeJS, mas o JavaScript abordado aqui irá prepará-lo para aprender essas tecnologias. (Unidades 4)
    Pré-requisito: CS 220 ou CS 401 ou consentimento do corpo docente do departamento.

  • Ciência e Tecnologia da Consciência para Profissionais de Computação (FOR 506)

    Seu primeiro curso é especificamente projetado para estabelecer a base de como você pode se tornar um profissional de ciência da computação de alto desempenho. O curso está enraizado na prática da Meditação Transcendental, que leva ao cumprimento de seu verdadeiro potencial. Você aprenderá sobre os benefícios da MT, incluindo a capacidade de resolver problemas complexos por meio de um funcionamento mental superior que aumenta a criatividade e o pensamento “fora da caixa”. O curso enfocará os princípios que sustentam o desempenho máximo em atividade, desenvolvendo uma combinação ideal de descanso e atividade. Você desenvolverá e experimentará uma rotina diária ideal que apóia o sucesso na vida. (Unidades 2)

  • Liderança para Gerentes Técnicos (FOR 506B)

    O objetivo deste curso é proporcionar aos alunos conhecimentos e habilidades em liderança, incluindo habilidades de comunicação como preparação para futuras funções de liderança.

    No final deste curso, os alunos compreenderão as respostas às principais perguntas relativas à liderança eficaz, incluindo as seguintes:

    Existem líderes naturais?

    Você tem que ter carisma para liderar de forma eficaz?

    Qual ativo é necessário para ser um líder?

    Qual é a diferença entre gerenciar e liderar?

    Quais são as muitas 'inteligências' necessárias para liderar nesta era?

    O que é malversação de gerenciamento e como isso leva à auto-sabotagem?

    Sabendo que o feedback é essencial para o processo de liderança, como superar o medo de dar e receber?

    Qual é a fonte de 80% dos problemas encontrados no local de trabalho?

    Existe pesquisa científica disponível para ajudar a organização a melhorar suas habilidades de liderança individual e de equipe?

    Palestrantes convidados incluem eminentes empresários, cientistas da computação, filantropos, acadêmicos e outros líderes proeminentes da sociedade.

    (Unidades 2)

Cursos adicionais do MSCS

  • Linguagens avançadas de programação (CS 505)

    Este curso considera tópicos avançados em design de linguagem de programação com ênfase em métodos formais e mecanismos de abstração. Os tópicos incluem abstração de dados e controle, especificação formal de sintaxe e semântica, provas de correção de programas, programação não determinística, estruturas de controle avançadas e estudo de linguagens específicas. (Unidades 4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Big Data (Data Science) (CS 522)

    O processamento moderno de informações é definido por vastos repositórios de dados que não podem ser manipulados por sistemas de bancos de dados tradicionais. Este curso aborda a mais recente tecnologia desenvolvida e utilizada pelos líderes do setor para resolver esse problema da maneira mais eficiente possível. Tópicos específicos cobertos incluem algoritmos MapReduce, padrões de projeto de algoritmo MapReduce, HDFS, arquitetura de cluster Hadoop, YARN, freqüências relativas de computação, classificação secundária, rastreamento da web, índices invertidos e compressão de índice, algoritmos Spark e Scala. (Unidades 4) Pré-requisito: Algoritmos CS 435.

  • Análise de Big Data (Ciência de Dados) (CS 488)

    Big Data é o novo recurso natural: os dados estão dobrando a cada 12-18 meses. Esse novo curso de Big Data Analytics abrange os conceitos e ferramentas fundamentais para a mineração de grandes conjuntos de dados diversos para gerar novos insights. Você dominará o uso da linguagem R para criar Wordcloud, Pagerank, Visualização de Dados, Árvores de Decisão, Regressão, Clustering, Redes Neurais e muito mais. Você trabalhará com alguns grandes conjuntos de dados de registros de vários milhões e também os meus feeds do Twitter. Você aprenderá conceitos do Hadoop / MapReduce e Streaming Data e explorará outros projetos do Apache Big Data, como Spark, Flink, Kafka, Storm, Samza, NoSQL, através de documentos de pesquisa individuais. Você trabalhará em grupos em projetos abertos da Kaggle.com para competir pelo dinheiro do prêmio resolvendo os melhores desafios analíticos de dados. Você também aprenderá a usar o IBM SPSS Modeler, líder de mercado, e plataformas de mineração de dados de código aberto. O livro de best-seller #1 usado neste curso é escrito pelo próprio instrutor. O curso também usará uma ampla gama de materiais de treinamento em vídeo do MIT, Coursera, Google e outros lugares. (Unidades 4) Pré-requisito: Consentimento do corpo docente do departamento

  • Tecnologias de Big Data (Ciência de Dados) (CS 523)

    Em apenas alguns anos, as tecnologias de big data passaram do domínio do hype para um dos principais componentes da nova era digital. Essas tecnologias são muito úteis para transformar informações em conhecimento.

    O objetivo do curso é adicionar algumas ferramentas realmente importantes em seu arsenal para ajudá-lo a resolver vários problemas de big data. Começaremos dando respostas a perguntas como "O que é o Big Data? Por que é importante ou útil? Como você armazena esse grande volume de dados? ”Estudaremos, então, diferentes ferramentas e modelos de programação da pilha de big data que nos ajudará a analisar os dados. Os tópicos incluem alguns dos projetos no ecossistema do Hadoop, como MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), projetos de ecossistema Zookeeper e Apache Spark. Também abordaremos uma introdução à AWS e ao EMR. Você estará trabalhando principalmente com uma distribuição Hadoop de nó único do Cloudera. (Unidades 4) (sem pré-requisitos)

  • Redes de Computadores (CS 450)

    O objetivo deste curso é aprender os conceitos, princípios de arquitetura e terminologia de redes de computadores, explorando como as redes funcionam e desenvolvendo aplicativos de rede. Este curso segue a abordagem de cima para baixo para entender as redes usando a arquitetura e os protocolos da Internet como o principal exemplo de uma implementação de princípios de rede. Começamos na camada de aplicação e continuamos pela camada de transporte, camada de rede, camada de link e camada física de redes de computadores. Os alunos desenvolvem vários aplicativos de rede e concluem vários laboratórios projetados para rastrear e entender os protocolos de rede predominantes em uso na Internet. (Unidades 4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Segurança de Computadores (CS 466)

    Este curso aborda profundamente os três aspectos da segurança do computador: confidencialidade, integridade e disponibilidade. Vários modelos para políticas de segurança confidenciais e de integridade são estudados. O papel da criptografia na garantia de confidencialidade e integridade é examinado. Outros tópicos incluem autenticação, auditoria, testes de penetração, vulnerabilidades comuns e detecção de invasões. O curso conclui com o estudo de caso de um sistema seguro realista. Os alunos serão solicitados a ler os artigos da literatura de segurança e aplicá-los ao material fornecido nas palestras. (Créditos 4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Sistemas de gerenciamento de banco de dados (CS 422)

    Os sistemas de banco de dados organizam e recuperam informações, permitindo que o usuário acesse as informações desejadas com facilidade e eficiência. Os tópicos incluem: modelo de dados relacionais; SQL; Modelagem ER; álgebra relacional; normalização de dados; transações; objetos no banco de dados; segurança e integridade de dados; armazenamento de dados, OLAP e mineração de dados; bases de dados distribuídas; e estudo de um sistema de banco de dados comercial específico. (Unidades 4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Aprendizado de Máquina (Ciência de Dados) (CS 582)

    Machine Learning, o campo de estudo que dá aos computadores a capacidade de aprender com os dados, está no centro de quase todas as disciplinas científicas, e o estudo da generalização (isto é, previsão) a partir de dados é o tópico central do aprendizado de máquina. Este curso oferece uma introdução de nível de pós-graduação ao aprendizado de máquina e cobertura detalhada de métodos novos e avançados de aprendizado de máquina, bem como de sua teoria subjacente. Ele enfatiza abordagens com relevância prática e discute várias aplicações recentes de aprendizado de máquina, como Data Mining (em Big Data / Data Science, Análise de Dados), Processamento de Linguagem Natural, Visão Computacional, Robótica, Bioinformática e Processamento de dados na Web e Texto. O Aprendizado de Máquina é usado em vários setores, incluindo Serviços Financeiros, Petróleo e Gás, Assistência Médica, Marketing e Publicidade, Governo, Internet e Internet das Coisas.

    Este curso abrange uma variedade de paradigmas de aprendizado, algoritmos, resultados teóricos e aplicativos. Ele usa conceitos básicos de inteligência artificial, teoria da informação, estatística e teoria de controle, na medida em que são relevantes para o aprendizado de máquina. Os tópicos incluem: aprendizagem supervisionada (aprendizagem generativa / discriminativa, aprendizagem paramétrica / não paramétrica, redes neurais, máquinas de vetores de suporte, árvore de decisão, aprendizado e otimização bayesiana); aprendizado não supervisionado (clustering, redução de dimensionalidade, métodos kernel); teoria de aprendizagem (compensações de viés / variância; teoria de VC; margens grandes); aprendizagem de reforço e controle adaptativo. Outros tópicos incluem HMM (Hidden Markov Model), Computação Evolucionária, Deep Learning (Com Redes Neurais) e algoritmos de design cujo desempenho pode ser rigorosamente analisado para problemas fundamentais de aprendizado de máquina.

    Uma parte importante do curso é um projeto em grupo. As principais ferramentas de software livre usadas para aprendizado de máquina paralelo, distribuído e escalável serão brevemente abordadas para ajudar os alunos a realizar os projetos. (Unidades 4) Pré-requisito: Nenhum.

  • Programação de dispositivo móvel (CS 473)

    A importância da programação de dispositivos móveis surgiu nos últimos anos como um novo domínio no desenvolvimento de software. Este curso prepara os alunos para desenvolver aplicativos que são executados em dispositivos móveis, como telefones IPhone, IPad ou Android. Este é um mercado em rápido desenvolvimento. O curso se concentra na instalação, desenvolvimento, teste e distribuição de aplicativos móveis. No final deste curso, os alunos podem desenvolver um aplicativo para as plataformas cobertas, simulá-las, testá-las no dispositivo real e, finalmente, publicar na loja de aplicativos para disponibilizar aos usuários. (Unidades 4) Pré-requisito: CS472 ou consentimento do corpo docente do departamento.

  • Aplicações Web Modernas (CS 572)

    Neste curso, você aprenderá a Arquitetura de Programação Reativa do SPA (Aplicativos da Web de Página Única) juntamente com todas as habilidades necessárias para construir um Aplicativo Web Moderno Integral. As tecnologias incluem: bancos de dados NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase e NoSQL (MongoDB). O curso cobrirá:

    • Como o mecanismo C ++ V8 e o código assíncrono funcionam no nó e no loop de eventos do nó.
    • Como estruturar seu código para reutilização e construir API Restful usando módulos e ExpressJS.
    • Como funcionam os bancos de dados NoSQL: Mongo Shell, estrutura de agregação, conjuntos de réplicas, cluster, shards, mangá ORM.
    • Entendimento profundo de como o Angular (apoiado pelo Google) trabalha, Detecção de Mudanças, RxJs Reativas com Observables and Subjects, The Shadow DOM, Zonas, Módulos e Componentes, Custom Directives e Pipes, Serviços e Dependência de Injeção, Compilador Angular, JIT e Compilação AOF , Formulários (orientados a modelos e controlados por dados), Ligação de dados, Roteamento, Proteções de roteamento e de encaminhamento, Cliente HTTP, Autenticação de Token da Web JWT JSON.

    (Unidades 4)

  • Sistemas Operacionais (CS 465)

    Um sistema operacional controla os recursos centrais do sistema de computador e os aloca para usuários individuais. Os tópicos do curso incluem processos sequenciais e simultâneos, exclusão mútua, compartilhamento de recursos, cooperação de processos, deadlock, alocação de recursos, agendamento de processadores, gerenciamento de memória, algoritmos de segmentação e paginação, sistemas de timesharing, algoritmos de agendamento e proteção de recursos. (Unidades 4) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Programação Paralela (CS 471)

    O processador padrão para todos os novos computadores é agora um processador multi-core, que tem o potencial de executar programas muito mais rapidamente. No entanto, para utilizar esse potencial, um programador deve ter algum conhecimento de técnicas de programação paralela. Durante este curso, os alunos passarão a maior parte do tempo escrevendo e depurando programas paralelos. O resultado esperado será desenvolver um novo nível de habilidade de programação prática. Essa habilidade não será apenas útil para a programação de processadores multi-core, mas também para a programação de sistemas operacionais e a programação distribuída de bancos de dados. As ferramentas de software usadas durante este curso incluem o Microsoft Visual C / C ++, a biblioteca de multithreading Java e o padrão de threading OpenMP. (Unidades 4) Pré-requisito: Conhecimento de programação de computadores usando Java, C ou C ++.

  • Arquitetura de software (CS 590)

    Neste curso, examinaremos as técnicas, os princípios e os padrões de como projetar sistemas de software flexíveis, escalonáveis, testáveis ​​e resilientes usando microsserviços. Estudaremos como podemos dividir grandes aplicativos em microservices menores, mais fáceis de compilar e outras vantagens em comparação com aplicativos corporativos monolíticos. Uma arquitetura distribuída de microsserviço também oferece muitos desafios. Estudaremos esses desafios e como resolvê-los. Os tópicos deste curso são estilos arquitetônicos, técnicas e padrões de integração, design dirigido por domínio, arquitetura orientada a eventos e programação reativa. (Créditos 4). (Sem pré-requisitos)

  • Prática em Desenvolvimento de Software (CS 575)

    Nesse estágio, os alunos realizam tarefas relacionadas ao computador em uma posição profissional técnica. As tarefas executadas podem ser na concepção e desenvolvimento de novos sistemas ou na aplicação de sistemas existentes para fins específicos. As descrições de trabalho de estágio são formuladas pelo empregador e pelo aluno e requerem aprovação prévia de um dos professores de pós-graduação do departamento, em consulta com o supervisor de estágio no qual o aluno é colocado. (Este curso destina-se principalmente a estudantes nos programas de estágio ou cooperativo.) (A unidade 0.5-1 por bloco - pode ser repetida).

“A primeira vez que ouvi sobre o programa MSCS, eu duvidei disso. Eu não podia acreditar que algo assim existe. Mas um dia, um amigo meu entrou no programa. Foi quando confirmei que é real. Então eu retomei o meu processo de candidatura. Bem! É verdade, estou aqui, completei o programa e estou muito feliz ”.

Edwin BwambaleUganda