Tecnologias e Arquitetura 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 conceitos são apresentados pelo docente e discutidos com a turma. Os conceitos e informações serão apresentados aos alunos através, por exemplo, de apresentações em slides ou discussões orais. Será utilizado nas aulas para a estruturação e esquematização da informação.

2. Método demonstrativo: baseia-se na exemplificação pelo docente de uma operação técnica ou prática que se deseja aprendida. Centra-se na forma como se executa uma dada operação, destacando as técnicas, as ferramentas e os equipamentos mais adequados. Será por exemplo utilizado em aulas práticas e laboratoriais.

3. Método interrogativo: processo que se fundamenta em interações verbais, sob a condução do docente, adotando o formato de questões e respostas. Permite obter maior dinâmica na aula e consolidar a aprendizagem. Será utilizado por exemplo para recordar elementos de aulas anteriores, e em revisões do conteúdo lecionado.

4. Métodos ativos: serão utilizadas técnicas pedagógicas em que o aluno é o centro do processo de aprendizagem, sendo um participante ativo e envolvido na sua própria formação. O docente assume o papel de facilitador, estimulando o pensamento crítico, a colaboração, a criatividade e a autonomia dos alunos. Serão aplicados nas aulas para alcançar um ambiente de aprendizagem dinâmico e mais duradouro.

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 e\ou 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

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)

Gonçalo Miguel Santos Marques

Métodos de Avaliação

1 - Avaliação Periódica:

a) trabalhos práticos individuais ou em grupo (50%);
b) uma prova escrita individual (50%)

2 - Avaliação Exame:

a) trabalhos práticos individuais ou em grupo (50%);
b) uma prova escrita individual (50%)

Existe um valor mínimo de 40% para cada componente da avaliação periódica e Exame. Cada época de avaliação apresenta enunciados distintos.
Os trabalhos práticos  são seguidos de uma apresentação oral ao docente da disciplina para 
validação e defesa individual e discussão das opções executadas.
Os trabalhos práticos serão avaliados com base na participação e proficiência de cada aluno nas actividades laboratoriais realizadas e no relatório elaborado.
Os trabalhos práticos devem ser realizados exclusivamente no período de lecionação. A não obtenção do aproveitamento mínimo de 40% nos trabalhos práticos em grupo implicará na não admissão do aluno à Avaliação por Exame, com a consequente reprovação à unidade curricular.

 


    Estágio(s)

    NAO

    Bibliografia

    Arroz, G., Monteiro, J. C., & Oliveira, A. (2007). Arquitectura de Computadores, dos Sistemas Digitais aos Microprocessadores. IST

    Delgado, J., & Ribeiro, C. (2014). Arquitectura de Computadores (5.ª ed.). FCA.

    Monk, S. (2018). Programming Arduino Next Steps: Going Further with Sketches (2.ª ed.). McGraw Hill.