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
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
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
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
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
1-15 | 17:00-18:30 (1) |
Teaching staff
31 Teórico (Basque - Mañana)Show/hide subpages
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
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
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
1-15 | 12:00-13:30 (1) |