XSL Content

Introduction to Computer Architecture28266

Centre
Faculty of Informatics
Degree
Grado en Inteligencia Artficial
Academic course
2024/25
Academic year
1
No. of credits
6
Languages
Spanish
Basque
Code
28266

TeachingToggle Navigation

Distribution of hours by type of teaching
Study typeHours of face-to-face teachingHours of non classroom-based work by the student
Lecture-based4060
Applied laboratory-based groups2030

Teaching guideToggle Navigation

Description and Contextualization of the SubjectToggle Navigation

*** PLEASE NOTE THAT THIS SUBJECT IS ONLY TAUGHT IN SPANISH/BASQUE ***



La asignatura Introducción a la Arquitectura de Computadores (IAC) es una de las materias básicas del primer curso del Grado en Inteligencia Artificial. Establece las bases de la arquitectura de los computadores y profundiza en aspectos que afectan directamente al rendimiento de un computador como la memoria caché o las arquitecturas segmentadas.



Posteriormente, la asignatura de Sistemas Paralelos y Distribuidos de 2º curso profundizará en arquitecturas más complejas y eficientes, comunes a todas las aplicaciones de Inteligencia Artificial. Además, se trabajarán los conceptos básicos del lenguaje de programación C, que servirán de base para programar aplicaciones paralelas en los próximos cursos.



Como es una asignatura básica, lo aprendido será necesario y útil en muchas asignaturas del grado, especialmente en las asignaturas que expongan el funcionamiento de una computadora y sus componentes (memoria, entrada/salida, etc.). Además, la materia servirá para comprender la influencia que puede tener la máquina en el desarrollo de aplicaciones de inteligencia artificial.



Al tratarse de un tema del 1º curso y del 1º cuatrimestre, no se requieren conocimientos previos en materia de arquitectura de computadores. Será la propia asignatura la que dé las primeras explicaciones sobre estos conceptos.



Una persona experta en Inteligencia Artificial debe ser capaz de identificar el hardware más adecuado y la forma de obtener el mejor rendimiento o la ejecución más eficaz en aplicaciones que requieren grandes volúmenes de datos o tiempos críticos de respuesta, por ejemplo. Esta materia aporta los conocimientos básicos para ello, que se complementarán en los próximos cursos con el resto de asignaturas del módulo de arquitectura, sistemas y redes.

Skills/Learning outcomes of the subjectToggle Navigation

RESULTADOS DE APRENDIZAJE

* Describir la organización y el funcionamiento básico de los componentes de una computadora.

* Describir la relación entre el lenguaje de programación de alto nivel y el lenguaje interno de la máquina.

* Explicar o hacer la traza de la ejecución de un programa simple escrito en lenguaje ensamblador.

* Desarrollar programas sencillos en lenguaje de programación C.

* Diferenciar los métodos de sincronización de E/S de la computadora y calcular la mejora en la transferencia de datos al utilizar DMA.

* Análizar aspectos que mejoran el rendimiento de los programas: jerarquía de memoria, ejecución segmentada y optimización del código.

* Conocer las plataformas de almacenamiento de datos utilizadas en el contexto de la inteligencia artificial.

Theoretical and practical contentToggle Navigation

0 .- Bases

0.1 Algoritmos

0.2 Bases de la programación (secuencias de instrucciones y estructuras de control)

0.3 Representación binaria

0.4 Fases de ejecución de las instrucciones



1 .- Estructura básica de una computadora

1.1 Arquitectura Von Neumann

1.2 Memoria principal

1.3 Procesador

1.4 Subsistema de entrada/salida

1.5 Conexión entre subsistemas: buses



2 .- Jerarquía de memoria

2.1 Memoria virtual

2.2 Memoria Cache



3 .- Lenguaje máquina

3.1 Conpilación

3.2 Lenguaje ensamblador

3.3 Ejecución secuencial de las instrucciones



4 .- Paralelismo a nivel de instrucción

4.1 Segmentación lineal

4.2 Procesadores multiciclo

4.3 Técnicas de optimización

4.4 Procesadores superescalares

4.5 Introducción al paralelismo



C .- Lenguaje C

C.1 Linux y la terminal: conceptos básicos

C.2 Estructura general de un programa

C.3 Tipos de datos y operaciones básicas

C.4 Estructuras de control: if, switch, while, do - while, for

C.5 Funciones: paso de parámetros por valor y referencia

C.6 Estructuras de datos: struct

C.7 Entrada/salida: printf, scanf

C.8 Tiempo de ejecución

MethodologyToggle Navigation

En esta asignatura se combinan diversas metodologías de enseñanza. Por una parte, se impartirán clases de exposición de los contenidos conceptuales de la materia, con participación del alumnado en debates sobre los mismos. La resolución de cuestiones y problemas en el aula se realizará de forma participativa, proponiendo problemas y ejercicios que desarrollarán individualmente o en grupo. Además, para fomentar la participación y la motivación del alumnado, partes de las asignatura se trabajarán siguiendo las metodologías de aprendizaje basado en el juego y aprendizaje basado en el de desarrollo de juegos.





A lo largo de la asignatura se fomentará tanto el trabajo autónomo como el trabajo en equipo a través de las actividades requeridas al alumnado. Se trabajará la comunicación escrita y oral a través de la presentación de trabajos e informes y la discusión y se fomentará en todo momento el uso del pensamiento computacional y crítico.

Assessment systemsToggle Navigation

  • Continuous Assessment System
  • Final Assessment System
  • Tools and qualification percentages:
    • Evaluación final: prácticas y trabajos (20%) + examen final (80%) (%): 100

Ordinary Call: Orientations and DisclaimerToggle Navigation

La asignatura contempla dos sistemas de evaluación, el sistema de evaluación continua y el sistema de evaluación final. El sistema de evaluación continua es el que se utilizará de forma preferente, según se indica en la normativa actual de la UPV/EHU. El alumnado que, cumpliendo las condiciones para continuar en el sistema de evaluación continua que se describen a continuación, decidiese optar por la evaluación global, deberá informar al profesorado responsable de la asignatura mediante una encuesta de eGela diseñada para ello, como muy tarde al finalizar la segunda semana de horario agrupado.



EVALUACION CONTINUA

Es el modo de evaluación predeterminado, solamente válido para la convocatoria ordinaria. Exige la participación activa y continua por parte del alumnado: asistir a las clases y los laboratorios, entregar los ejercicios y trabajos (tanto grupales como individuales), realizar las pruebas de evaluación y demás actividades planteadas. En caso de no participar en cualquiera de estas actividades, se pasará a la evaluación global.



La asignatura se evaluará en base a estos elementos:

- Pruebas escritas individuales: 8 puntos (80 %) [2 exámenes parciales, Temas 1 y 2 (40 %) + Temas 3, 4 y C (40 %)]

- Trabajos grupales: 2 puntos (20 %) [Proyecto tema 0 10 % + Proyecto tema C 10 %]



Para aprobar la asignatura, además de que la nota final sea superior a 5, habrá que obtener un mínimo de 4 puntos (sobre 10) en cada uno de los apartados de evaluación.





EVALUACIÓN FINAL O GLOBAL:

En evaluación global el 100 % de la nota se obtendrá a través de un examen.

Para aprobar la asignatura, la nota final debe ser superior a 5.

Extraordinary Call: Orientations and DisclaimerToggle Navigation

En la convocatoria extraordinaria el 100 % de la nota se obtendrá a través de un examen.

Para aprobar la asignatura, la nota final debe ser superior a 5.

Compulsory materialsToggle Navigation

El material disponible en el aula virtual (eGela) de la asignatura.

BibliographyToggle Navigation

Basic bibliography

Stallings W.

Computer Organization and Architecture. Designing for performance. (11. ed). Pearson, 2019



Tanenbaum A.S., Austin T.

Structured Computer Organization (6. ed), Pearson - Prentice Hall Ed., 2013



J.L. Hennessy, D.A. Patterson

Computer Architecture: A Quantitative Approach. (6. ed). Morgan Kaufmann, 2019



Iñaki Alegria eta Nestor Garay

C Programazio-lengoaia

https://www.elhuyar.eus/es/tienda/d/c-programazio-lengoaia



Félix García, Alejandro. Calderón, Jesús Carretero, Javier Fernández, José María Pérez

Problemas Resueltos de Programación en Lenguaje C, Thomson, 2002.

In-depth bibliography

Patterson D.A., Hennessy J.L.
Computer Organization and Design: The Hardware/Software Interface (5. ed). M. Kaufmann, 2013

Journals

Hello World: https://helloworld.raspberrypi.org/ (indicando el número de revista directamente entra en ella).

Web addresses

Computer Science For Fun: http://www.cs4fn.org/

Barefoot Computing: https://www.barefootcomputing.org/

Moon: https://compus.deusto.es/https://compus.deusto.es/

Touring Tumble simulagailua: https://edu.turingtumble.com/resources/index.html#simulator

CPUlator computer system simulator: https://cpulator.01xz.net/

GroupsToggle Navigation

16 Teórico (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

15:30-17:00 (1)

14:00-15:30 (2)

Teaching staff

16 Applied laboratory-based groups-1 (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

17:00-18:30 (1)

Teaching staff

31 Teórico (Basque - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

10:30-12:00 (1)

09:00-10:30 (2)

Teaching staff

31 Applied laboratory-based groups-1 (Basque - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

12:00-13:30 (1)

Teaching staff