Conhecimentos de Base Recomendados
Conceitos básicos de programação, algoritmos e estrutura de dados.
Métodos de Ensino
UC sem componente lectiva
Resultados de Aprendizagem
Após a conclusão da UC, os alunos deverão ser capazes de:
1. Identificar a evolução futura dos computadores com base no conhecimento da sua evolução até aos dias de hoje.
2. Expressar as operações básicas matemáticas e lógicas e diferentes formas de representação de quantidades numéricas e não numéricas.
3. Identificar a arquitectura geral dos computadores.
4. Construir algoritmos e implementar programas eou procedimentos em linguagens de baixo nível e comparar o seu desempenho com programas eou procedimentos implementados em linguagens de alto nível.
5. Identificar diferentes técnicas de aumento da velocidade de processamento das aplicações, quer ao nível do hardware quer ao nível do software.
6. Usar microcontroladores para aquisição e controlo de sinais analógicos e digitais bem como efetuar a comunicação do microcontrolador com um computador.
Programa
1. Breve história dos computadores
2. Revisão de conceitos fundamentais para arquitectura de computadores
a. Bits, Bytes, Words
b. Representação de números em diferentes bases
c. Operações com números em diferentes bases
d. Representação de números negativos
e. Floating points
f. Representação de dados não numéricos
3. Arquitectura geral dos computadores
a. Organização geral de um CPU
b. Diferentes tipos de BUS
c. Dispositivos de I/O
4. Arquitectura 80XXX.
a. Arquitecturas CISC/RISC
5. Organização e funcionamento da memória
a. Diferentes hierarquias de memória
b. Modo real/modo protegido
c. Memória virtual
d. Memória cache
e. Alinhamento da memória e a sua influência no desempenho
6. Introdução à programação em baixo nível a. Instruções
a. Integração de Assembly com linguagens de alto nível
7. Técnicas de aumento da velocidade de processamento
a. Pipeline
b. SIMD
c. Arquitectura superescalar
d. Previsão de saltos
e. Execução especulativa
8. Introdução aos microcontroladores
a. Descrição do Arduino ao nível do hardware e software
b. Desenvolvimento de aplicações de leitura de sinais analógicos e digitais
c. Desenvolvimento de aplicações de controlo de sinais analógicos e digitais.
d. Desenvolvimento de aplicações de comunicação com um computador
e. Utilização de interrupts: vantagens e limitações
Docente(s) responsável(eis)
Métodos de Avaliação
- - Relatório - 50.0%
- - Teste Teórico 1 - 25.0%
- - Teste Teórico 2 - 25.0%
- - Exame - 50.0%
- - Relatório - 50.0%
Estágio(s)
NAO
Bibliografia
Delgado , J., & Ribeiro, C. (2014). Arquitetura De Computadores. FCA.
Monk, S. (2019). Programming arduino next steps: Going further with sketches. McGraw-Hill Education.