Tecnologias e Arquitetura de Computadores

Base Knowledge

Basic concepts of programming, algorithms and data structures. 

Teaching Methodologies

The following teaching methodologies are used in this course:

1. Expository method: explanatory method where theoretical foundations and concepts are presented by the teacher and discussed with the class. Concepts and information will be presented to students through, for example, slide presentations or oral discussions. It will be used in classes to structure and outline the information.

2. Demonstrative method: based on the example given by the teacher of a technical or practical operation that one wishes to be learned. It focuses on how a given operation is carried out, highlighting the most appropriate techniques, tools and equipment. It will be used, for example, in practical and laboratory classes.

3. Interrogative method: process based on verbal interactions, under the direction of the teacher, adopting the format of questions and answers. It allows for greater dynamics in the classroom and consolidates learning. It will be used, for example, to remember elements of previous classes and in revisions of the lectured content.

4. Active methods: pedagogical techniques will be used in which the student is the center of the learning process, being an active participant and involved in his own training. The teacher assumes the role of facilitator, stimulating critical thinking, collaboration, creativity and student autonomy. They will be applied in classes to achieve a dynamic and more lasting learning environment.

Learning Results

Upon completion of UC, students should be able to:

1. Identify the future evolution of computers based on the knowledge of their evolution until today.

2. Express the basic mathematical and logical operations and different ways of representing numerical and non-numerical quantities.

3. Identify the general architecture of computers.

4. Develop algorithms and implement programs and \ or procedures in low-level languages.

5. Identify different techniques to increase the processing speed of applications, both in terms of hardware and software.

6. Use microcontrollers to acquire and control analog and digital signals as well as communicate the microcontroller with a computer. 

Program

1. Brief history of computers

2. Review of fundamental concepts for computer architecture
a) Bits, Bytes, Words
b) Numbers representation in different bases
c) Operations with numbers on different bases
d) Negative numbers representation
e) Floating points
f) Nonnumeric data representation

3. General architecture of computers
a) General organization of a CPU
b) Different types of BUS
c) Device I / O

4. 80XXX architecture.
a) Architectures CISC / RISC

5. Memory organization
a) Memory hierarchies
b) Real mode / protected mode
c) Virtual memory
d) Cache memory 
e) Memory alignment and its influence on performance.

6. Introduction to low-level Programming
a)Instructions
b) Subroutines
c) interrupts

7. Techniques for speed optimizing
a) Pipeline
b) SIMD
c) Superscalar architecture
d) Forecast jumps
e) Speculative execution

8. Introduction to microcontrollers
a. Basics for using Arduino
b. Read analog and digital signals
c. Control analog and digital signals
d. Communications between Arduino and Computer
e. Interrupts in Arduino: advantages and limitations 

Curricular Unit Teachers

Gonçalo Miguel Santos Marques

Grading Methods

1 - Periodic Evaluation:

a) individual or group practical assignments (50%);
b) an individual written test (50%)

2 - Exam Evaluation:

a) individual or group practical assignments (50%);
b) an individual written test (50%)

There is a minimum value of 40% for each component of the periodic and exam evaluation. Each evaluation method has different statements.
The practical assignments are followed by an oral presentation to the discipline's teacher for individual validation and defense and discussion of the options implemented. 
The practical assignments will be evaluated based on the participation and proficiency of each student in the laboratory activities carried out and on the report prepared by the group.
The practical assignments must be carried out exclusively during the teaching period. Failure to obtain a minimum score of 40% in practical group assignments will result in the student not being admitted to the Evaluation by Exam, with the consequent failure of the curricular unit.


    Internship(s)

    NAO

    Bibliography

    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 (5th ed.). FCA.

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