Créditos
7.5
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
AC
Web
http://docencia.ac.upc.edu/FIB/GCED/COM
Mail
jverdu@ac.upc.edu
Profesorado
Responsable
- Javier Verdu Mula ( jverdu@ac.upc.edu )
Otros
- Marc Ruiz Ramírez ( mruiz@ac.upc.edu )
Horas semanales
Teoría
3
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.5
Competencias
Competencias técnicas
Transversales
Básicas
Genéricas
Objetivos
-
Conocer los objetivos de la asignatura
Competencias relacionadas: CB1, -
Trabajar con los diferentes tipos de datos, naturales, enteros, punto flotante y su agrupación
Competencias relacionadas: CE4, CB1,
Subcompetences- Cadenas de caracteres, tablas y estructuras
- Determinación del error de precisión en los valores en coma flotante
-
Demostrar conocimento y comprensión de los conceptos fundamentales de los computadores, y sobre la estructura básica de un computador.
Competencias relacionadas: CT6, CB1,
Subcompetences- Procesador, memoria, entrada/salida, sistemas de almacenaje y comunicaciones
-
Describir y trabajar con el entorno de ejecución de los programas.
Competencias relacionadas: CE4, CT6, CT7, CG1, CB2, CB5,
Subcompetences- Definir con palabras propias los conceptos de sistema operativo, programa, libreria y proceso
- Distingir entre los niveles usuario y sistema
-
Conocer la estructura de los programas y saber utilizar las herramientas para analizarla y manipularla.
Competencias relacionadas: CE4, CT5, CB2, CB5,
Subcompetences- Secciones dentro de un programa: código, datos y pila
-
Conocer los principios básicos de los lenguajes de programación.
Competencias relacionadas: CT6, CB2,
Subcompetences- Traducción entre lenguajes de programación
- Distinguir entre lenguajes interpretados y compilados
- Lenguaje ensamblador.
-
Conocer y saber trabajar con los servicios del sistema operativo
Competencias relacionadas: CE4, CB5,
Subcompetences- Conocer las ventajas e inconvenientes del interfaz del sistema operativo
- Conocer el interfaz de las llamadas a sistema
-
Conocer y saber trabajar con las librerías
Competencias relacionadas: CE4, CT6, CB5,
Subcompetences- Distinguir entre las funcionalidades proporcionadas por los distintos niveles de ejecución: sistema y librerías
- Librerías de soporte del sistema y del lenguaje
-
Conocer y saber utilizar las herramientas de compilación de programas
Competencias relacionadas: CE4, CT6, CB5,
Subcompetences- Saber seleccionar las opciones de compilación más adecuadas
- Conocer las opciones de optimización de programas
-
Conocer y saber utilizar modelos de programación paralelos
Competencias relacionadas: CE4, CT6, CT7, CG2, CG4, CB2, CB5,
Subcompetences- Distinguir los conceptos de proceso y flujo
- Conocer y saber utilizar las herramientas de sincronización
- Distinguir entre modelos de memoria compartida y modelos de memoria distribuida
-
Conocer y saber utilizar las técnicas básicas de análisis del rendimiento
Competencias relacionadas: CT5, CG2, CB2,
Subcompetences- Saber analizar el rendimiento del computador: procesador, memoria, comunicaciones y subsistema de almacenamiento
-
Conocer y saber utilizar las herramientas de entrada/salida proporcionadas por los entornos de ejecución
Competencias relacionadas: CE4, CT5, CG1, CG2, CG4, CB5,
Subcompetences- Conocer y utilizar los canales de comunicación y dispositivos disponibles en el sistema
-
Conocer y saber utilizar los sistemas de almacenaje
Competencias relacionadas: CE4, CT6, CG2, CG4, CB5,
Subcompetences- Saber describir las características de los sistemas de ficheros
- Saber organizar los datos de las aplicaciones en ficheros
- Sistemas de discos redundantes y volúmenes lógicos
Contenidos
-
Representación de los datos
Conocer y trabajar con los diferentes tipos de datos y su representación en los computadores. Codificación binaria, caracteres, enteros, cadenas, valores en coma flotante, y su agrupación en clases, estructuras y uniones. -
Elementos del computador
Descripción de los elementos que forman parte de un computador: los procesadores, la jerarquía de memoria, los componentes de entrada/salida, almacenes de datos y la manera en que estan conectados. -
Librerías de sistema
Se presentan las funcionalidades que proporcionan las librerías de sistema.
Presenta los formatos de los ficheros ejecutables y cómo obtener la información contenida en éstos. -
Entorno de compilación
Se presentan las herramientas de compilación e interpretación de los lenguajes de programación. Describe las opciones de compilación y optimización de los compiladores. Se completa la estructura de los ficheros ejecutables, incluyendo la tabla de símbolos y la información de depuración. -
Sistema Operativo
Se describen los objetivos que tiene el sistema operativo dentro del entorno de ejecución. Este capítulo presenta las abstracciones básicas del sistema operativo y su interfaz. Llamadas a sistema, interrupciones y excepciones. -
Fundamentos de la programación
Se describe en entorno de ejecución básico sobre el que se ejecutan los programas. Definición de sistema operativo, niveles de ejecución, usuario y sistema (privilegiado), conceptos de programa y proceso. Estructura de los programas y las librerías. Principios básicos de los lenguajes de programación. Lenguaje ensamblador. Traducción desde lenguajes de alto nivel a lenguajes de bajo nivel. -
Introducción al paralelismo
Paralelismo y concurrencia. Procesos y flujos. Sincronización. Modelos de programación -
Técnicas básicas de análisis del rendimiento
Rendimiento de las aplicaciones, métricas, obtención de la información, performance counters, relojes de alta precisión. Cálculo del rendimiento, GFlops, bandwidth. -
Subsistema de entrada/salida
Se presenta la parte del subsistema de entrada/salida del entorno de ejecución, canales, terminales, ficheros, pipes. -
Sistemas de almacenamiento
Se presentan los componentes físicos de entrada/salida para almacenar datos: discos y sistemas de ficheros. Se incluye una visión de los mecanismos de tolerancia a fallos, basada en los sistemas de discos redundantes y volúmenes lógicos.
Actividades
Actividad Acto evaluativo
Teoría
1h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Teoría
6h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Teoría
6h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h
Prueba de laboratorio
Prueba de laboratorio de la asignatura, consistente en una sesión de laboratorio, con un enunciado específico, realizado de forma individual. Se realiza durante una sesión de laboratorio en concreto.Objetivos: 3 2 4 5 6 7 8 10 9 11 12 13 1
Semana: 14
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Examen final
Examen final de la asignatura, consistente en preguntas teóricas sobre todos los contenidos vistos en las sesiones de teoría y laboratorioObjetivos: 3 2 4 5 6 7 8 10 9 11 12 13 1
Semana: 15 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
La asignatura se basa en clases presenciales de teoría y laboratorio. Las clases de teoría siguen el programa definido en esta guía docente, habitualmente son a base de material proporcionado en transparencias, pero complementadas con las explicaciones del profesorado.En estas clases de teoría, se promociona el diálogo entre el profesor y los estudiantes proporcionando actividades a realizar conjuntamente basadas en aspectos particulares del tema que se está tratando.
Las clases de laboratorio siguen los mismos temas y se basan en enunciados de prácticas en ordenador guiadas por un enunciado.
Método de evaluación
Hay dos pruebas evaluativas de la parte de teoría:- PT: El examen parcial de teoría (30%)
- FT: El examen final de teoría (40%)
Evaluación Ordinaria: La nota final de la asignatura se obtiene a partir de
- MAX(70%FT; 30%PT+40%FT)
- Una prueba de laboratorio (20%) al final de curso
- También evaluamos el seguimiento de laboratorio (10%), que se basa en los cuestionarios individuales realizados en ciertas sesiones de laboratorio.
Reevaluación: Sólo aquellos/as que hayan suspendido podrán presentarse al examen de Reevaluación (examen sólo de teoría). Así, la nota final de la asignatura es el máximo entre la nota de evaluación ordinaria y la que se obtenga con la fórmula anterior, pero sustituyendo la nota global de teoría por la nota del examen de Reevaluación (es decir, 70% de la nota de la asignatura).
Bibliografía
Básico
-
Computer organization and design: the hardware/software interface
- Patterson, D.A.; Hennessy, J-.L.; Alexander, P,
Elsevier Morgan Kaufmann,
2014.
ISBN: 9780124077263
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004000499706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Computer systems : a programmer's perspective
- Bryant, Randal E; O'Hallaron, David,
Pearson,
2016.
ISBN: 9781292101767
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004062589706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Documentació de l'assignatura http://docencia.ac.upc.edu/FIB/GCED/COM