|
| Entregável do Bloco: |
Um software que roda de forma paralelizada e distribuída para processar algoritmos complexos, que demandam grande poder computacional, apresentando uma análise quantitativa e qualitativa sobre o impacto da utilização da arquitetura paralela e distribuída.
|
|
| Estrutura de Dados e Algoritmos Avançados I |
| Explicar a importância de estrutura de dados |
| Aplicar estruturas de dados em diferentes problemas |
| Construir software com estruturas de dados: listas, pilhas, filas, hash tables |
| Construtir software com encadeamento, sequência, árvores e grafos |
|
| Arquitetura de Computadores e Sistemas Operacionais |
| Explicar os fundamentos da arquitetura de computadores |
| Avaliar a performance de computadores e dispositivos móveis |
| Explicar os fundamentos de sistemas operacionais |
| Construir software utilizando paralelismo |
|
| Estrutura de Dados e Algoritmos Avançados II |
| Analisar complexidade de algoritmos |
| Analisar e projetar algoritmos de busca e ordenação |
| Projetar algoritmos com técnicas de algoritmos gulosos, divisão e conquista, programação dinâmica e algoritmos genéticos |
| Analisar e reconhecer problemas P, NP e NP-Completos |
|
| Arquitetura de Redes de Computadores |
| Praticar e explicar a visão de redes em camadas e os modelos OSI e TCP/IP |
| Monitorar o funcionamento e a segurança de redes de computadores |
| Construir software utilizando as camadas do modelo TCP/IP |
|
|
| Projeto de Bloco: Ciência da Computação |
| Explicar as vantagens e trade-offs da implementação de software de forma paralela e distribuída |
| Conceber um projeto de software em que a implementação de uma arquitetura paralela e distribuída seja vantajosa |
| Implementar um projeto de software seguindo arquitetura paralela e distribuída |
| Avaliar quantitativa e qualitativamente o impacto da utilização da arquitetura paralela e distribuída em um projeto de software |
| Refletir criticamente sobre a sua prática profissional, seu planejamento e desenvolvimento de carreira e sua capacidade de trabalho em equipe, estabelecendo relações com o projeto desenvolvido e qualificando ou quantificando a sua expertise em engenharia de software |
| Entender o contexto social da engenharia de software e refletir criticamente sobre o impacto do software desenvolvido às pessoas, à sociedade e à economia |