Aprenda habilidades práticas com as mais recentes tecnologias em desenvolvimento de software

Você está pronto para Avance sua carreira?

Você está pronto para avançar em sua carreira?

Em consulta com seus orientadores, todos os alunos escolhem os Cursos Fundamentais na coluna da esquerda abaixo e os Cursos Avançados na coluna da direita.

Com base nos exames de qualificação realizados quando chegam ao campus, apenas os alunos do Trilha de Entrada Preparatória precisará fazer a aula de 4 semanas de Práticas de Programação Fundamental (CS 390). FOR 506 e CS 401 são obrigatórios para todos os alunos. Ver os requisitos de graduação >

Cursos Fundamentais

  • Seu primeiro curso é projetado especificamente para estabelecer a base de como você pode se tornar um profissional de ciência da computação de alto desempenho. O curso está baseado na prática da Meditação Transcendental, que leva à realização de seu verdadeiro potencial. Você aprenderá sobre os benefícios da MT, incluindo a capacidade de resolver problemas complexos por meio do funcionamento mental superior, aumentando a criatividade e o pensamento "fora da caixa". O curso se concentrará nos princípios que sustentam o desempenho máximo na 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. (2 unidades)

  • O curso FPP oferece um programa focado para aprimorar habilidades analíticas e de programação em cinco áreas: resolução de problemas, estruturas de dados, programação orientada a objetos, linguagem de programação Java e uso de recursão em programas Java.

    Esses tópicos são de particular importância como pré-requisito para os cursos do programa de pós-graduação em Ciência da Computação.

    Os tópicos incluem: elementos de programação Java, design e implementação orientada a objetos, estruturas de dados (incluindo listas, pilhas, filas, árvores de pesquisa binárias, tabelas de hash e conjuntos), a hierarquia de exceção, arquivos e / ou fluxos e JDBC. (4 créditos) Pré-requisito: Para alunos de graduação: CS 221; para alunos de graduação: consentimento do corpo docente do departamento (4 unidades)

  • O curso MPP apresenta os princípios fundamentais da programação orientada a objetos. Os alunos aprenderão como escrever software reutilizável e com melhor manutenção e integrar esse conhecimento com tarefas e projetos de laboratório. Os tópicos incluem: princípios fundamentais e modelos de programação orientada a objetos, diagramas de classe UML e princípios de design que promovem a reutilização e manutenção do software. (4 unidades)

  • Este curso abrange os fundamentos dos princípios de design de banco de dados e uma introdução aos bancos de dados SQL e NoSQL.

    Os tópicos incluem: Princípios de design de banco de dados relacional, formas normais, chaves primárias e estrangeiras e exclusivas; Consultas (Agregação, Junções, Ordenação); Transações; Princípios de design de banco de dados baseados em documentos, índices, bancos de dados de escala; Disponibilidade e recuperação (dump, restore, export, import); Banco de dados como um serviço. Sem pré-requisitos.

    (Unidades 4)

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

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

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

  • Este curso se aprofunda nos conceitos de programação web assíncrona e abrange os padrões de design mais essenciais para JS, que incluem o padrão observador, fábrica, decorador e muito mais. Ele também abrange o trabalho com API da Web e estruturas de dados imutáveis.

    Os tópicos incluem: Git Colaborativo; Introdução ao TypeScript e Bundlers; JavaScript assíncrono; Loop de eventos; API de histórico, API de geolocalização; Ajax (HTTP, Ajax, JSON, Busca, Introdução ao CORS, Depuração); Promessas e Async/Aguardar; Programação Reativa; RxJS Observáveis ​​e Operadores; Padrões de Projeto: Módulo, Protótipo, Singleton, Observador, Fachada, Fábrica, Decorador, Proxy, Estratégia, Memoização; Navegadores da Web modernos. Sem pré-requisitos.

    (Unidades 4)

  • O futuro da computação é paralelo. O aumento no desempenho sequencial se estabilizou à medida que os designs dos processadores atingiram os limites de miniaturização, frequência de clock, potência e calor. Em 2005, o número de núcleos de processador começou a aumentar abruptamente de um único núcleo para vários núcleos, criando o potencial para executar programas muito mais rapidamente. No entanto, para utilizar esse potencial, um programador deve ter algum conhecimento de técnicas de programação paralela.

    Este curso ensina aos alunos os conceitos fundamentais de programação paralela no contexto do Java 9. A programação paralela permite que os desenvolvedores usem computadores multicore para fazer seus aplicativos rodarem mais rápido usando vários núcleos ao mesmo tempo. Ao final deste curso, você aprenderá a usar estruturas Java paralelas populares (como Multi-Threading, Streams e Executors) para escrever programas paralelos para uma ampla variedade de plataformas multicore, incluindo servidores, desktops ou dispositivos móveis.

    As ferramentas de software usadas durante este curso incluem o Microsoft Visual Studio, a biblioteca multithreading Java e o padrão de threading OpenMP. (4 unidades) Pré-requisito: Conhecimento de programação de computadores usando Java, C ou C++.

    Para mais informações, assista a este vídeo de cinco minutos feito pelo Professor deste curso:

    https://www.youtube.com/watch?v=dWcWAnn0Ppc

  • Este curso fornece uma introdução sistemática à programação de aplicativos da Web interativos e dinâmicos. O curso é destinado a indivíduos com pouca ou nenhuma experiência anterior em programação de aplicativos da web. Esta oferta usará NodeJS e a estrutura Express para processamento no lado do servidor.

    O curso começa com uma revisão dos fundamentos de HTML e CSS, com foco especial no layout de páginas da web usando CSS. JavaScript é a linguagem de programação usada ao longo do curso, incluindo funções, objetos, módulos, framework jQuery, Ajax e Promises. Os alunos passam a maior parte do tempo programando uma série de sites cada vez mais complexos e sofisticados. Um projeto capstone durante a última semana do curso cria um site com um back-end de banco de dados SQL que é acessado de forma assíncrona pelo cliente para um desempenho ideal.

    Este curso é um pré-requisito para CS545 Web Application Architecture e CS572 Modern Web Applications. Pré-requisito: CS 220 ou CS 401 ou consentimento do corpo docente do departamento

    (Unidades 4)

  • Desenvolver programas Android é uma experiência emocionante e potencialmente lucrativa. O desenvolvimento Android abre o mundo da criatividade para o programador. Ele permite que você se expresse de maneiras que você nunca sonhou em um mundo digital onde você pode criar um produto e disponibilizá-lo para bilhões de usuários com apenas um clique de um botão. Este curso ensinará como desenvolver aplicativos Android usando a linguagem de programação Kotlin.

    Os tópicos incluem: Configurando seu computador para programação Android; Noções básicas do manifesto; Layouts, Activities, Views e componentes de UI; Trabalhando com intenções, fragmentos e preferências compartilhadas; Visualização da Web e HTML; Trabalhando com Multimídia; Componentes do Android Jetpack, Room Database e JSON; Subestimando Sensores; Localização; Publicando o aplicativo na Google Play Store. (4 unidades) Não são necessários pré-requisitos.

  • Este curso se concentra no uso de JavaScript no backend (NodeJS). Os alunos aprenderão como o NodeJS funciona e obterão uma compreensão profunda de sua principal interface de programação de aplicativos (API). O curso aborda como o mecanismo do compilador JS (V8) funciona, como estruturar o código usando módulos e como o código assíncrono funciona no Node e no loop de eventos do Node. O curso também ensina o Node Package Manager (NPM), como construir um servidor web, como trabalhar com o Express framework e como usar ODM como o Mongoose para gerenciar o MongoDB. Os alunos aprenderão todas as técnicas que definem um aplicativo Web moderno, incluindo autenticação de usuários com JSON Web Tokens, persistência de dados no banco de dados e criação de uma API Restful. Outros conceitos de ciência da computação também são abordados.

    Os tópicos incluem: Projeto de API HTTP e Rest; Aplicativos sem estado vs. com estado; API do nó; Gerenciador de Pacotes de Nó (npm); Arquitetura Model-Controller, framework Express e middlewares; Roteamento do lado do servidor; Autenticação baseada em token. Sem pré-requisitos.

    (Unidades 4)

  • Big Data é o novo recurso natural: os dados dobram a cada 12-18 meses. Este novo curso de Big Data Analytics cobre os conceitos e ferramentas fundamentais para a mineração de grandes conjuntos de dados diversos para gerar novos insights. Você vai 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 vários milhões de registros e também minerará feeds do Twitter. Você aprenderá os conceitos de Hadoop / MapReduce e Streaming Data e explorará outros projetos de Big Data Apache, como Spark, Flink, Kafka, Storm, Samza, NoSQL por meio de documentos de pesquisa individuais. Você trabalhará em grupos em projetos abertos do Kaggle.com para competir pelo prêmio em dinheiro, resolvendo os melhores desafios de análise de dados da categoria. 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 curso também usará uma ampla variedade de materiais de treinamento em vídeo do MIT, Coursera, Google e outros lugares. (4 unidades) Pré-requisito: Consentimento do corpo docente do departamento

  • Desenvolvimento de Software é o processo sistemático de concepção, especificação, análise, projeto, programação, teste, documentação e manutenção envolvida na produção de algum Sistema ou Software Aplicativo.

    Neste curso, os alunos aprenderão como produzir soluções de software de nível empresarial, atendendo aos requisitos desde a concepção, passando pela análise, design, implementação e teste, até a entrega e implantação de software funcional. Ele ensinará uma série de princípios, melhores práticas e ferramentas e tecnologias relacionadas e como elas são usadas e aplicadas na produção de soluções de software robustas e de alta qualidade. As técnicas e ferramentas abordadas serão principalmente centradas, embora não limitadas, à plataforma de software Java.

    Estudaremos as técnicas para identificar e extrair os requisitos corretos para um produto de software, como analisar esses requisitos e selecionar uma arquitetura de solução de software adequada e criar um design apropriado. E como implementar o design em código, incluindo testes e, em última análise, como construir e empacotar o artefato resultante para entrega/implantação. Consideraremos vários mecanismos modernos de implantação, incluindo a nuvem. Pré-requisito: CS 401

    Os tópicos incluem:

    • Design e Desenvolvimento de Banco de Dados
    • Análise e Design Orientados a Objetos
    • Modelagem de domínio
    • Arquitetura de Sistemas
    • Desenvolvimento de aplicações web usando Spring Web MVC
    • Implementação e Testes de Sistema; incluindo testes de unidade, simulação e testes de integração
    • Segurança de software – incluindo gerenciamento de identidade e acesso
    • Tecnologias de conteinerização e contêineres

    (Unidades 4)

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

    Há pesquisas científicas disponíveis para auxiliar 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 Avançados

  • Gerenciamento de Projetos introduz o aluno a aprender através do desenvolvimento prático de um projeto, palestras, leitura, vivenciando o Project Management Framework, seu corpo de áreas de conhecimento (10 áreas de conhecimento e processos relacionados) e implantação. Os alunos trabalham na implementação de um projeto real e experimentam o papel do gerenciamento de projetos em todas as fases do ciclo de vida do desenvolvimento de software usando uma metodologia de desenvolvimento de aplicativos.

    Os alunos obtêm experiência real em planejamento de projetos, gerenciamento de requisitos, gerenciamento de escopo, padrões de codificação, estimativas de custo para módulo/código em termos de valor em dólares, bem como em termos de horas de trabalho, gerenciamento de cronogramas, gerenciamento de qualidade, gerenciamento de riscos e gerenciamento de comunicações. Ao final do curso, os alunos terão um aplicativo em execução desenvolvido usando os processos de gerenciamento de projetos usados ​​na indústria. (Desde os requisitos até a implantação da produção). O projeto é desenvolvido utilizando as mais recentes tecnologias Java e seus frameworks com os serviços Web e Design Patterns.

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

  • Este curso abordará os padrões de programação em nuvem e permitirá que os alunos pratiquem o trabalho com vários serviços de nuvem da Web, incluindo funções AWS Serverless.

    Os tópicos incluem: Gerenciamento de Identidade e Acesso (IAM); Virtual Private Cloud (VPC), listas de controle de acesso à rede – NACL, sub-redes, zonas de disponibilidade, Simple Storage Service (S3), Elastic Cloud Compute (EC2), Simple Notification Service (SNS), Elastic Load Balancer (ELB), Auto Scaling, Rota 53, API na nuvem; AWS Lambda, sem servidor; Serviços web; Implantação do Aplicativo, Projeto Final. (4 créditos). (Sem pré-requisitos)

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

  • Em apenas alguns anos, as tecnologias de big data passaram do reino do hype para um dos principais componentes da nova era digital. Essas tecnologias são muito úteis para transformar Informação em Conhecimento. O objetivo do curso é adicionar algumas ferramentas importantes ao seu arsenal para ajudá-lo a resolver vários problemas de big data.

    O curso começa respondendo a perguntas como “O que é Big Data e sua importância? Como você armazena big data de forma confiável e barata? Quais ferramentas usar para encontrar informações úteis desse big data? etc.” Neste curso, os alunos estudarão diferentes ferramentas e modelos de programação para análise de big data. Os tópicos incluem projetos do ecossistema Hadoop, como MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper, bem como projetos do ecossistema Apache Spark, como Spark SQL e Spark Streaming. Os alunos também têm a chance de construir um pipeline completo de big data, começando com a coleta de dados em tempo real, processando, analisando e, finalmente, visualizando os resultados em formato gráfico em painéis. Os alunos trabalharão principalmente com um cluster Hadoop de nó único da distribuição Cloudera. (4 unidades) (MPP é o único pré-requisito)

  • Com o rápido crescimento de dados de várias fontes, a maioria das empresas e organizações tornou-se altamente orientada por dados. Extrair informações importantes desses dados e convertê-las em conhecimento e inteligência é a função principal do Big Data Analytics. É por isso que mais empresas estão gastando cada vez mais dinheiro em Data Analytics. Isso agora é ainda mais acelerado pelo rápido crescimento Transformação digital. Este curso de Big Data Analytics abrange os conceitos fundamentais de análise, algoritmos e ferramentas para mineração de grandes conjuntos de dados diversos para gerar novos insights de negócios.

    Todas as principais análises - incluindo Descritivo, Preditivo, Prescritivo e Diagnóstico será coberto. Ele abordará abordagens algorítmicas para analisar grandes conjuntos de dados (não estruturados, mistos, estruturados, gráficos e streaming): aprendizado de máquina (redes neurais, aprendizado profundo, árvores de decisão, floresta aleatória e mais), IA, processamento de linguagem natural (NLP), estatística e algoritmos de streaming, em plataformas modernas de análise distribuída (por exemplo, MapReduce, Hadoop, Spark) para regressão (previsão), classificação, agrupamento, sistemas de recomendação e muito mais. Análise avançada de Big Data, especialmente Análise causal também serão contemplados. As linguagens de programação Python/R serão mais utilizadas. Os alunos também farão um projeto em grupo para resolver um problema da vida real usando o Big Data Analytics.

    (4 unidades) Pré-requisito: Consentimento do corpo docente do departamento

  • Este curso considera os métodos e práticas atuais para um bom projeto 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 de vários níveis. (2-4 créditos) Pré-requisito: CS 401 ou consentimento do corpo docente do departamento.

  • Este curso se concentra no ensino dos princípios e práticas usados ​​no desenvolvimento de aplicativos corporativos de grande escala. Examinaremos as diferentes camadas de arquitetura que são frequentemente usadas e as diferentes tecnologias associadas a essas camadas, incluindo Mapeamento Relacional de Objetos (ORM), Injeção de Dependência (DI), Programação Orientada a Aspectos (AOP) e integração com outros aplicativos por meio de Web Services (RESTfull e SOAP), Messaging e invocação de método remoto. Deve ter um conhecimento prático de bancos de dados relacionais e SQL. Se você não tiver um curso sólido ou um bom conhecimento prático de SQL, deverá se inscrever no CS422 DBMS antes de se inscrever no EA. (4 unidades)

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

  • React é a biblioteca mais popular para construir aplicativos web poderosos. Neste curso, os alunos aprenderão como usar o React e o ES6 para criar aplicativos robustos e escaláveis ​​desde o início, usando os padrões Redux mais recentes para manter o estado do aplicativo.

    Os tópicos incluem: desenvolvimento de aplicativos da Web baseados em componentes, padrões de design de componentes, consumindo APIs rest, persistência com API do navegador, JSX e API React (props, proptypes, eventos, refs), fluxo de dados do aplicativo e implantação de aplicativos React. Pré-requisitos WAP ou CS 477.

    (Unidades 4)

  • Neste curso, os alunos aprendem Arquitetura de Programação Reativa de Aplicativos Web de Página Única (SPA) juntamente com todas as habilidades necessárias para construir um aplicativo Web moderno completo usando TypeScript e Angular. Os alunos obtêm uma compreensão profunda de como o Angular funciona, incluindo: Detecção de alterações; Programação de RxJs reativos com observáveis ​​e sujeitos; A Sombra DOM; Zonas; Módulos, componentes, diretivas personalizadas e pipes; Serviços e injeção de dependências; Compilador angular: compilação JIT e AOF; Formulários (dirigido a modelo e orientado a dados); Roteamento, guardas e proteção de rotas; cliente HTTP; e autenticação JWT JSON Web Token. Pré-requisitos: WAP ou CS 477.

    (Unidades 4)

  • Este curso faz a transição do desenvolvimento da Web para o desenvolvimento de aplicativos móveis usando React Native, uma estrutura popular do Facebook que permite que aplicativos nativos de plataforma cruzada sejam executados usando JavaScript sem Java ou Swift. O curso apresenta o moderno JavaScript–JavaScript XML (JSX)–uma extensão JavaScript. Os alunos ganham experiência com o React Native e seus paradigmas, arquitetura de aplicativos e interfaces de usuário. O curso culmina em um projeto final em que os alunos implementam um aplicativo móvel inteiramente de seu próprio design. Pré-requisitos: WAA ou CS568.

    (Unidades 4)

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

  • Neste curso prático, os alunos realizam tarefas relacionadas ao computador em uma posição profissional técnica. As tarefas realizadas 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 do estágio são formuladas pelo empregador e pelo aluno e requerem aprovação prévia de um dos professores graduados do departamento, em consulta com o supervisor do estágio onde o aluno está colocado. (Este curso é principalmente para alunos nos programas de estágio ou cooperativo.) (0.5-1 unidade por bloco - pode ser repetido.)

  • Machine Learning (ML) é o campo de estudo que dá aos computadores a capacidade de aprender com dados, está no centro de quase todas as disciplinas científicas, e o estudo da generalização (ou seja, previsão) de dados é o tópico central do aprendizado de máquina . Este curso fornece uma introdução de nível de pós-graduação ao aprendizado de máquina e uma cobertura aprofundada de métodos novos e avançados em aprendizado de máquina, bem como sua teoria subjacente. Enfatiza abordagens com relevância prática e discute uma série de aplicações recentes de machine learning, como Data Mining (em Big Data/Data Science, Data Analytics), Natural Language Processing, Computer Vision, Robotics, Bioinformatics and Text and Web data processing. 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 cobre uma variedade de paradigmas de aprendizagem, algoritmos, resultados teóricos e aplicações. Ele usa conceitos básicos de inteligência artificial, teoria da informação, estatística e teoria de controle, desde que sejam 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, aprendizagem e otimização Bayesiana); aprendizagem não supervisionada (agrupamento, redução de dimensionalidade, métodos de kernel); teoria de aprendizagem (tradeoffs de polarização / variância; teoria VC; grandes margens); aprendizagem por reforço e controle adaptativo. Outros tópicos incluem HMM (Hidden Markov Model), Computação Evolutiva, Deep Learning (With Neural Nets) e design de algoritmos 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.

  • Inteligência Artificial (IA) é a disciplina que tenta construir e entender Sistemas Inteligentes. Computadores com inteligência de nível humano teriam um enorme impacto na sociedade. Agentes de Software Inteligentes e Sistemas Multiagentes estão crescendo rapidamente e ajudando em muitas áreas, como Transformação Digital, Automação, Sistemas de Conversação, Pesquisa na Web, Robótica, Manufatura, Saúde, Farmacêutica, Bancos, Cadeia de Suprimentos, Condução Autônoma, Publicidade, Jogos, apenas para cite alguns. A IA impulsiona uma indústria de vários trilhões de dólares. Este curso ensinará os fundamentos da IA ​​e dará aos alunos uma compreensão prática do campo. Os tópicos incluem os conceitos básicos de IA – agentes inteligentes, sistemas multiagentes, pesquisa inteligente, lógica de primeira ordem e superior, representação de conhecimento, raciocínio, percepção, aprendizado, semântica (PNL, imagem, objeto...), planejamento, tomada de decisão, agir, reativo, deliberativo, racional, adaptativo, comunicação e interação. O curso enfatiza abordagens com relevância prática e discute várias aplicações populares recentes de IA. As principais ferramentas de código aberto e linguagens de programação para IA (incluindo Low code e No code) serão brevemente abordadas. Os alunos também farão um projeto em grupo para resolver um problema da vida real usando IA.

    (4 unidades) Pré-requisito: Consentimento do corpo docente do departamento

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

  • Em homenagem aos 50 anos de educação da MIU, o Departamento de Ciência da Computação tem o prazer de iniciar nossa nova série Golden Jubilee ComPro Tech Talks.

    Esta série mensal está sendo organizada e moderada pelo professor Renuka Mohanraj.

    As palestras estão disponíveis em https://www.youtube.com/playlist?list=PLoBuI1C_-EtrAMdD45sldMnd8HXNhmyBQ.

    Veja nossa última palestra gravada, de sábado, 28 de maio de 2022:

    O instrutor de Ciência da Computação da MIU, Unubold Tumenbayar, um arquiteto de soluções profissional certificado pela AWS, abordou estes tópicos em nossa última ComPro Tech Talk:
    o Construindo um aplicativo Full-stack em minutos na nuvem
    o Discussão sobre Tecnologias Modernas
    o GraphQL
    o Reagir
    o NoSQL usando serviços e ferramentas da AWS

    Veja os slides do Unbold aqui.

    Esta palestra é uma boa prévia do nosso Curso de Computação em Nuvem (CS 516).

Opções de estudo

Existem 3 opções de estudo para estudantes internacionais.
Cada um fornece um MS em Ciência da Computação.
Todos têm datas de entrada de fevereiro, maio, agosto ou novembro.

ProgramasMeses de estudo no campusPrática pagaEducação a Distância (ED) durante o Estágio
CPT8-9Até 2 anos CPT4 Cursos EAD
OPT9-10Até meses 11.5 CPT + 3 anos OPT (Opcional)3 Cursos EAD
Tempo integral no campus12-133 ano OPT opçãoNA

“A primeira vez que ouvi falar do programa MSCS, duvidei. Eu não conseguia acreditar que algo assim existisse. Mas um dia, um amigo meu entrou no programa. Foi então que confirmei que é real. Então retomei meu processo de inscrição. Bem! É verdade, estou aqui, concluí o programa e estou muito feliz. ”

Você está pronto para começar uma nova carreira?

TEMPO DE ESPERA PARA ENTREVISTA DA EMBAIXADA DOS EUA E TEMPO DE PROCESSAMENTO DE INSCRIÇÃO MSCS

Descobrimos que muitos países atrasaram muito as datas das entrevistas. Por favor, veja Tempos de espera para agendamento de visto (state.gov) para saber quanto tempo leva para conseguir uma data de entrevista para o seu país/cidade.

Se o tempo de espera da entrevista for superior a 2 meses, recomendamos que você se inscreva e preencha sua inscrição imediatamente, mesmo que esteja planejando se inscrever para uma entrada futura. Dessa forma, você pode concluir o processo de inscrição, obter seu I-20 e, em seguida, obter uma data de entrevista. Você deve ter um I-20 para obter a data da entrevista. Se a data for anterior à que você planeja vir para os EUA, você sempre poderá adiar sua data de chegada assim que obtiver o visto. Nós apenas emitiríamos um novo I-20 para a data de entrada para a qual você planeja vir.

Para perguntas sobre essas informações, entre em contato com nosso escritório de admissões em diretor de admissão@miu.edu.

Faça a si mesmo estas 4 perguntas:

  1. Você tem um diploma de bacharel em um campo técnico? Sim ou não?

  2. Você teve boas notas em seu bacharelado? Sim ou não?

  3. Você tem pelo menos 12 meses de experiência de trabalho remunerado em tempo integral como desenvolvedor de software após seu diploma de bacharel? Sim ou não?

  4. Você está disponível para vir aos EUA para aulas (este programa não está disponível online)? Sim ou não?

Se você respondeu 'sim' a todas as perguntas acima, você pode aplicar (Embora isso não garanta que você será aceito.)