Arquitetura e Tecnologia de Computadores

Conhecimentos de Base Recomendados

Conceitos básicos de programação, algoritmos e estrutura de dados.

Métodos de Ensino

Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:

1 – Método expositivo: método explicativo onde fundamentos teóricos e conceito são apresentados pelo professor e discutidos com a turma, seguido de exemplos demonstrativos;

2 – Método experimental: método activo onde o aluno desenvolve o conhecimento através da resolução problemas e o desenvolvimento de projectos laboratoriais individuais ou em dinâmica de grupo.

 

Cada aula será composta por dois momentos:

1 – Exposição introdutória: No início da aula o docente expõe e discute com os alunos os novos conteúdos em estudo;

2 – Aplicação prática: Após a exposição introdutória, os alunos desenvolvem fichas de trabalho e resolução de problemas, individualmente e em conjunto, para aplicação prática dos novos conceitos, de forma autónoma e sob a orientação do docente;

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.

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

b. Arquitetura Von Neumann/Harvard

 

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

b. subrotinas

c. interrupts

 

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)

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.