Catálogo de Cursos de Harvard Computer Science
A Universidade de Harvard fornece diversos cursos voltados para Ciência da Computação – CS. Estudantes iniciando seu primeiro ano podem fazer suas escolhas pensando em prepar seus conhecimentos ou ainda se especializar. Confira abaixo o catálogo completo. Obs: os cursos todos são ministrados em inglês.
Catálodo de Cursos de Ciência da Computação – Harvard
- Great Ideas in Computer Science: uma introdução aos mais importantes descobrimentos e paradigmas intelectuais da informática, projetada para estudantes com pouca ou nenhuma formação prévia.
- Discrete Mathematics for Computer Science: lógica, teoria de conjuntos, teoria combinatória, teoria dos números, teoria das probabilidades e teoria dos gráficos.
- Computational Thinking and Problem Solving: conceitos úteis de informática e programação com Python.
- Introduction to Computer Science: como resolver problemas, com e sem código, com ênfase na correção, no design e no estilo. Voltado para estudantes sem conhecimento prévio em programação.
- Abstraction and Design in Computation: como conceber programas de computador e o papel da abstração nesse processo.
- Systems Programming and Machine Organization: programação usando linguagem C e linguagem de montagem, otimização de programas, hierarquia e cache de memória, memória virtual e gerenciamento de memória dinâmica, concorrência, threads e sincronização.
- Code, Data, and Art: intersecção entre informática e arte, construindo habilidades que permitam ao aluno se expressar de forma criativa através de software.
- Design of Useful and Usable Interactive Systems: como descobrir necessidades que seus clientes não conseguem sequer articular, princípios de design, práticas efetivas relacionadas à criatividade e técnicas para criar e avaliar rapidamente protótipos de produtos.
- Supervised Reading and Research: estudo individual supervisionado de tópicos avançados em ciência da computação.
- System Design Projects: Machine Learning for Social Impact: como efetivamente explorar dados, criar e iterar sobre modelos reais, comunicar e trabalhar com parceiros externos, e incorporar a ética em seu trabalho utilizando técnicas de aprendizagem de máquina em um projeto de impacto direto.
- Privacy and Technology: conceitos populares de privacidade e análise rigorosa das tecnologias para compreender a política e as questões éticas sobre o que é privacidade e como ela é afetada pelos recentes desenvolvimentos em tecnologia. Tópicos: anonimato de banco de dados, ética na pesquisa, escutas telefônicas, vigilância, entre outros.
- Systems Development for Computational Science: projetar, construir, testar, manter e modificar software para computação científica e ciências de dados usando Python.
- Data Science 1: Introduction to Data Science: análise de dados confusos da vida real para realizar previsões usando métodos estatísticos e de aprendizagem de máquina. Coleta de dados, gerenciamento de dados, análise exploratória de dados, predição ou aprendizagem estatística e comunicação.
- Data Science 2: Advanced Topics in Data Science: métodos avançados de modelagem estatística, representação e previsão. Os tópicos incluem múltiplas arquiteturas de aprendizagem profunda, como CNNs, RNNs, transformadores, modelos linguísticos, autocodificadores e modelos generativos, bem como métodos Bayesianos básicos e aprendizado não supervisionado.
- Introduction to Algorithms and their Limitations: utilizar algoritmos que se aplicam a uma grande variedade de problemas computacionais, com confiança sobre sua correção e eficiência, bem como reconhecer quando um problema pode não ter solução algorítmica.
- Introduction to Theoretical Computer Science: capacidades fundamentais e limitações de computação, incluindo o fenômeno da universalidade e a dualidade de código e dados.
- Data Structures and Algorithms: design de algoritmos, algoritmos gráficos, algoritmos de aproximação e algoritmos randomizados.
- Fairness and Privacy – Perspectives from Law and Probability: tópicos relevantes sobre perda de privacidade, sobreajuste e injustiça na análise de dados. Criptografia, privacidade diferencial e áreas emergentes da análise de dados adaptativa e justiça algorítmica.
- Convex Optimization and Applications in Machine Learning: reconhecer, formular e resolver problemas de otimização convexa. Análise básica da convexidade, teoria da otimização convexa, algoritmos para resolver problemas de otimização convexa e aplicações de aprendizagem de máquina.
- Computing Hardware: projetar e construir dispositivos e sistemas de informação modernos que façam interface com o mundo real. O curso se concentra em dispositivos e sistemas digitais.
- Computer Networks: computação móvel e da computação em nuvem, redes 5G, Bitcoin, blockchain e sistemas distribuídos.
- Networking at Scale: topologia de camada 2, camada 3, roteamento, protocolos de transporte, engenharia de tráfego, funções de rede, comutadores programáveis e rede definida por software. Redes modernas em larga escala e alta velocidade (terabits por segundo).
- Computer Architecture: organização de computadores, projeto de sistemas de memória, tubulação e outras técnicas para explorar paralelismo. Discussão de tópicos modernos incluindo arquiteturas de GPU, arquitetura de datacenter, arquiteturas SoC móveis/integradas e aceleração da aprendizagem da máquina.
- Programming Languages: introdução às principais características e design geral das linguagens de programação tradicionais e modernas, incluindo sintaxe, semântica formal, mecanismos de abstração, modularidade, sistemas de tipo, nomenclatura, polimorfismo, fechamentos, continuações e simultaneidade.
- Data Systems: sistemas híbridos e de armazenamento em coluna, arquiteturas nada-compartilhadas, algoritmos conscientes do cache, co-design de hardware/software, sistemas de memória principal, indexação adaptativa, processamento de fluxo, gerenciamento de dados científicos e armazéns de valores-chave, história dos sistemas de dados, conceitos e ideias tradicionais e seminais como modelo relacional, sistemas de banco de dados de armazenamento em linha, otimização, indexação, controle de simultaneidade, recuperação e SQL.
- Visualization: práticas de design, modelos de dados e imagem, percepção visual, princípios de interação, ferramentas de visualização e aplicações. Introduz a programação de visualizações interativas baseadas na web.
- Computer Graphics: fundamentos da computação gráfica 3D usando uma versão moderna baseada em shader do OpenGL. Sistemas de coordenadas geométricas e transformações, animação e interpolação de quadros-chave, simulação de câmeras, rasterização triangular, simulação de materiais, mapeamento de textura, amostragem de imagens e teoria de cores, traçado de raios, modelagem geométrica e animação baseada em simulação.
- Engineering Usable Interactive Systems: sistemas interativos utilizáveis, estruturas modernas, plataformas e bibliotecas.
- Machine Learning: Introdução à aprendizagem de máquina sob uma abordagem probabilística sobre inteligência artificial e raciocínio sob incerteza. Aprendizagem supervisionada, métodos de conjunto e impulso, redes neurais, máquinas de vetores de suporte, métodos de núcleo, agrupamento e aprendizagem não supervisionada, máxima probabilidade, modelos gráficos, modelos Markov ocultos, métodos de inferência e teoria da aprendizagem computacional. Pré-requisitos: cálculo multivariado, álgebra linear, teoria da probabilidade, teoria da complexidade e proficiência em Python.
- Artificial Intelligence: ideias e técnicas subjacentes a IA. Representações e abordagens eficazes para uma grande variedade de tarefas computacionais. Busca e planejamento, otimização, jogos, incerteza e aprendizagem.
- Introduction to Reinforcement Learning: multi-armed bandits, processos de Markov, métodos de policy gradient, reguladores quadráticos lineares, entre outros.
- Classics of Computer Science: papers e publicações sobre todas as áreas relevantes da Ciência da Computação.
- Designing K–12 Computer Science Learning Experiences: examinar o estado da educação informática K-12, questionar seu valor, examinar sua história e imaginar e contribuir para seu potencial.
- AI Research Experiences: habilidades práticas necessárias para o trabalho de aprendizagem profunda aplicada, incluindo a experiência prática com desenvolvimento de métodos, treinamento de modelos em escala e análise de erros.
- High Performance Computing for Science and Engineering: fundamentos da programação paralela e sua relação com as arquiteturas de computadores, introduzindo técnicas para analisar o desempenho e a escala das aplicações paralelas.
- Algorithms at the Ends of the Wire: algoritmos para big data, especialmente relacionados a redes e sistemas de banco de dados. Estruturas de dados baseadas em esboços, compressão, informações gráficas e de links, bem como teoria da informação.
- Probabilistic Analysis and Algorithms: técnicas e ferramentas probabilísticas para concepção e análise de algoritmos. Projetado para todos os estudantes de graduação do primeiro ano em todas as áreas.
- Topics in Theory for Society: Differential Privacy: informática teórica abordando problemas técnicos de interesse social.
- Topics in Theoretical Computer Science: Analysis of Boolean Functions: técnicas na análise das funções booleanas, incluindo influência e sensibilidade ao ruído, restrições aleatórias, aproximação polinomial, e hipercontratividade.
- Topics in the Foundations of Machine Learning: programação com o objetivo de levar os estudantes a reproduzir os resultados de trabalhos acadêmicos e trabalhar em suas próprias pesquisas. Estudantes precisam ser proficientes em Python e bibliotecas como pytorch/numpy/etc.
- Topics in Theoretical Computer Science: Spectral Graph Theory in CS: autovalores e autovetores, agrupamento, solução de sistemas lineares, derandomização, amostragem via MCMC, contagem, busca na web e fluxo máximo.
- Topics in Theoretical Computer Science: Information Theory in CS: conceitos básicos na teoria da informação e exemplos de tópicos de interesse para a teoria da CS.
Você pode conferir mais cursos e as descrições completas com horários atuais e cronogramas nessa página.
Harvard é uma das melhores universidades do mundo para se cursar ciência da computação. Atualmente, o Harvard CS está priorizando muito tópicos relacionados a aprendizagem de máquina e inteligência artificial. Os alunos que possuem interesse em ingressar nesses cursos no primeiro ano precisam ter uma boa base matemática e de programação Python. Recomendamos os seguintes cursos do Didática Tech para formar uma base: