HORARIO

Teoría y problemas:

Lunes: de 11 a 12h.
Martes y jueves de 9 a 10 h.
Aula 07. Escuela Técnica Superior de Ingeniería Informática.

Prácticas:

Lunes y martes por la tarde de 16 a 18h. (un día para cada grupo)
Laboratorio L104. Escuela Técnica Superior de Ingeniería Informática.

OBJETIVOS

El objetivo primordial de esta asignatura es familiarizar al alumno con el funcionamiento del ordenador desde el punto de vista externo pero al nivel más bajo. Se pretende que se consiga la comprensión del funcionamiento de la interfaz hardware-software en un computador. Si el alumno llega a comprender el computador a este nivel podrá entender las consecuencias de errores al más bajo nivel que repercutan en capas más altas del sistemas informático.

Se pretende también alcanzar objetivos más generales como desarrollar la capacidad de trabajo en equipo y mejorar la expresión oral y escrita.

RECOMENDACIONES PREVIAS

Se recomienda haber cursado previamente las asignaturas de Fundamentos de Informática del primer curso.

No se recomienda en absoluto el aprendizaje memorístico, sino la comprensión de los conceptos para luego utilizarlos en la resolución de problemas.

El material didáctico que se aporta no contiene toda la asignatura. Este material debe ser complementado con consultas bibliográficas y otros materiales. En el transcurso de las explicaciones se completarán los materiales didácticos aportados, así como pautas para resolver problemas .

Arriba

CONTENIDOS

Teóricos

  1. CONCEPTOS FUNDAMENTALES
    1.1.- Origen de los computadores
    1.2.- Breve reseña histórica
    1.2.1.- La era mecánica de los computadores
    1.2.2.- La era electrónica de los computadores
    1.2.3.- Generaciones de ordenadores
    1.2.4.- Tendencias actuales
    1.3.- Requisitos mínimos para la computación
    1.4.- Máquinas de Turing
    1.5.- Limitaciones de los computadores
    1.6.- El modelo de Von Neumann
    1.7.- Unidades funcionales
    1.8.- Ejecución de las instrucciones
    1.9.- Clasificaciones de los procesadores
    1.10.- Concepto de arquitectura de un computador
    1.11.- Niveles de estudio y descripción de un computador
    1.12.- Máquinas multinivel
    1.13.- Ejemplos de arquitecturas reales
    1.13.1.- PDP-11
    1.13.2.- VAX
    1.13.3.- IBM-360/370
    1.13.4.- HP-3000
    1.13.5.- Z-80
    1.13.6.- MC68000 y derivados
    1.13.7.- i-8086 y derivados
    1.13.8.- Arquitectura Alpha
    1.13.9.- Sun SPARC

  2. FORMATOS DE INSTRUCCIÓN
    2.1.- Introducción
    2.2.- Criterios de diseño de los formatos de instrucción
    2.3.- Número de direcciones
    2.4.- Instrucciones con longitud variable
    2.5.- Instrucciones con código de operación de longitud variable
    2.5.1.- Codificación de Huffman
    2.5.2.- Códigos de operación con extensión
    2.6.- Ejemplos de formatos de instrucción en computadores reales
    2.6.1.- PDP-11
    2.6.2.- VAX
    2.6.3.- MC68000 y derivados
    2.6.4.- IBM-360/370
    2.6.5.- Z-80
    2.6.6.- i-8086 y derivados
    2.6.7.- Arquitectura Alpha
    2.6.8.- Sun SPARC

  3. MODOS DE DIRECCIONAMIENTO
    3.1.- Introducción
    3.2.- Modos de direccionamiento más usuales
    3.2.1.- Direccionamiento implícito
    3.2.2.- Direccionamiento inmediato (o literal)
    3.2.3.- Direccionamiento directo por registro
    3.2.4.- Direccionamiento directo (o absoluto)
    3.2.5.- Direccionamiento indirecto
    3.2.6.- Direccionamiento relativo
    3.2.7.- Direccionamiento por base y desplazamiento
    3.2.8.- Direccionamiento indexado
    3.2.9.- Direccionamiento autoincremental o postincremental
    3.2.10.- Direccionamiento autodecremental o predecremental
    3.3.- Visión general de los modos de direccionamiento
    3.4.- Modos de direccionamiento en ordenadores reales
    3.4.1.- PDP-11
    3.4.2.- VAX
    3.4.3.- MC68000 y derivados
    3.4.4.- i-8086 y derivados

  4. CONJUNTOS DE INSTRUCCIONES
    4.1.- Introducción
    4.2.- Características generales de los conjuntos de instrucciones
    4.3.- Tipos de instrucciones
    4.3.1.- Instrucciones de transferencia de datos
    4.3.2.- Instrucciones aritméticas y lógicas
    4.4.- Instrucciones de control del flujo de programa
    4.4.1.- Instrucciones de bifurcación
    4.4.2.- Iteraciones
    4.4.3.- Procedimientos
    4.4.4.- Corrutinas
    4.4.5.- Desvíos o excepciones (traps)
    4.4.6.- Interrupciones
    4.4.7.- Instrucciones de control de flujo en el VAX
    4.5.- Relación entre el lenguaje máquina y los lenguajes de alto nivel
    4.5.1.- Clases de variables
    4.5.2.- Direccionamiento de estructuras de datos
    4.6.- Características de los ordenadores RISC

Prácticos

Las prácticas consistirán en trabajos que se desarrollarán en el laboratorio y básicamente serán programas en lenguaje ensamblador para arquitectura SPARC.

Arriba

METODOLOGÍA

Clases de teoría

Clases de problemas

Se propondrán problemas para que los alumnos resuelvan por sí mismos. Durante las clases de problemas alumnos voluntarios, o en su defecto aleatoriamente escogidos, resolverán algunos de esos problemas. El profesor solucionará las dudas que se planteen durante la resolución de los mismos y recalcará los aspectos más importantes. Los alumnos que se presten voluntarios a resolver problemas en la pizarra serán recompensados con notas adicionales (ver el apartado Evaluación).

Clases de laboratorio

En las primeras sesiones de laboratorio se propondrán pequeños ejercicios de programación para que el alumno se familiarice con el lenguaje ensamblador de la arquitectura SPARC. Una vez que los alumnos hayan conseguido suficiente destreza con el citado lenguaje de programación, se mandarán trabajos evaluables más extensos para hacer en grupos de dos personas.

Arriba

EVALUACIÓN

Consideraciones Generales

Examen ordinario escrito en febrero y extraordinario en julio. Los exámenes tendrán tanto preguntas teóricas como problemas, así como una pregunta relativa a los contenidos prácticos. Para superar la asignatura será necesario superar de forma satisfactoria e independiente sus partes teórica y práctica. Para el examen escrito se permitirá el uso de las tablas de instrucciones de los procesadores analizados en el transcurso de la asignatura. También se permitirá el uso de calculadora no programable, sin embargo no se aconseja su uso porque suele dar lugar a confusiones.

Criterios de evaluación

En el examen teórico se valorará la comprensión de los conceptos y nunca el aprendizaje memorístico. Por ello se propondrán tanto cuestiones breves como problemas en que se evaluará si el alumno ha comprendido bien los contenidos teóricos y es capaz de aplicarlos. Se apreciará la capacidad de expresión escrita, en especial la ortografía.
En los trabajos prácticos se valorará la adquisición de habilidades en programación a nivel de lenguaje ensamblador, la presentación y la documentación de los programas.

Instrumentos de evaluación

Para la calificación final se tendrá en cuenta tanto la calificación del examen como las exposiciones de los trabajos en equipo, caso de que el alumno pertenezca a uno de los grupos de trabajo. En este caso, la calificación final se calculará de la siguiente forma:

Para los alumnos que no formen parte de grupos de trabajo el 100% de la nota será la del examen escrito.

Los problemas resueltos voluntariamente por los alumnos ante sus compañeros contarán como notas adicionales que se sumarán a la nota total (una o dos décimas por problema, dependiendo de su dificultad).

Para aprobar la asignatura es condición imprescindible haber defendido con éxito todos los trabajos de laboratorio evaluables que se propongan. Se conseguirá nota adicional si el trabajo defendido, su presentación, documentación, etc. supera los mínimos requeridos.

En caso de no haber defendido con éxito los trabajos prácticos de la asignatura, se podrá superar esta parte sacando una nota mínima de un 70% en una de las preguntas del examen escrito que versará sobre los contenidos prácticos.

Recomendaciones para la evaluación

No estudiar memorísticamente, sino comprendiendo los conceptos. Resolver los problemas propuestos durante el desarrollo de la asignatura.

Arriba

BIBLIOGRAFíA