20152016 02/07/16 PROGRAMA DE LA ASIGNATURA Asignatura: 948 (8094) Teoría de la información y codificación Titulación: Ingeniero en Informática Créditos teóricos: 3 Horas teoría: 30 Proyecto Piloto Créditos prácticos: 3 Horas prácticas: 30 Duración: Área: Página 1 de 4 1º Cuatr. (75A) CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL OBJETIVOS GENERALES: La aplicación a la informática de la teoría matemática de la comunicación digital, enfocado no desde el punto de vista matemático sino desde la óptica de cómo debe ser la transmisión de información, ya que debemos exigir que sea lo más rápida, fiable y segura posible. El alumno debe trasladar los teoremas esenciales a algoritmos informáticos para su ejecución en el ordenador y simulación de situaciones reales. CONTENIDO: BLOQUE TEMÁTICO: Introduccion Codificación y sus usos 1.1. Mensajes 1.2. Codificación 1.3. Definiciones Básicas Códigos sin prefijos 2.1. El problema de la decodificación 2.2. Representación códigos mediante árboles 2.3. El número Kraft-McMillan BLOQUE TEMÁTICO: Compresion de Datos Codificación económica 3.1. El concepto de fuente 3.2. El problema de optimización 3.3. Entropía 3.4. Regla de Huffman Compresión de Datos 4.1. Codificación en bloques . 4.2. Distribuciones del producto de conjuntos 4.3. Fuentes Estacionarias BLOQUE TEMÁTICO: Correccion de Errores Canales con Ruido 5.1. Definición de canal 5.2. Transmitir una fuente mediante un canal 5.3. Entropía Condicional 5.4. La capacidad de un canal 5.5. Comunicación utilizando un canal con ruido 5.6. El BSC extendido 5.7. Reglas Decisión 5.8. Corrección Errores 5.9. La probabilidad de un error 5.10. Codificación según una tasa establecida 5.11. Transmisión utilizando el BSC extendido 5.12. El ratio no puede exceder la capacidad 5.13. Teorema de Shannon 20152016 02/07/16 PROGRAMA DE LA ASIGNATURA Códigos Lineales 6.1. Introducción a códigos lineales 6.2. Construcción de códigos lineales utilizando matrices 6.3. La matriz de verificación de un código lineal 6.4. Construyendo códigos correctores 1 bit 6.5. El problema de la decodificación Teoría Codificación Algebraica 7.1. Códigos Hamming 7.2. Códigos Cíclicos 7.3. Propiedades de los códigos cíclicos 7.4. Códigos que corrigen más que un error 7.5. Definición de una familia de códigos BCH 7.6. Propiedades de los códigos BCH BLOQUE TEMÁTICO: Criptografia Codificación Lenguaje Natural 8.1. Lenguaje Natural como fuente 8.2. La incertidumbre del idioma 8.3. Redundancia y significado 8.4. Introducción a la criptografía 8.5. Análisis de Frecuencias El desarrollo de la criptografía 9.1. Criptosistemas de Clave Simétrica 9.2. Cifrado Poli-alfabético 9.3. El sistema Playfair 9.4. Algoritmos matemáticos en criptografía 9.5. Métodos de ataque Criptografía en teoría y práctica 10.1 Cifrado en términos de un canal 10.2 One Time pad 10.3 Métodos Iterativos 10.4 Problema de distribución de la clave El criptosistema RSA BIBLIOGRAFÍA GENERAL: ASH,ROBERT B. Information Theory. Ed. Dover 1990 BLAHUT,R.E. Principles and Practice on I.T. Addison Wesley 1987 Biggs, N. Codes: An introduction to Information Commmunication and Cryptography Springer 2008 GRAY, R.M Entropy and Information Theory Springer 1990 Página 2 de 4 20152016 02/07/16 PROGRAMA DE LA ASIGNATURA Página 3 de 4 HAMMING,R.W Coding and Information Theory Prentice-Hall 1986 Hill, R. A First Course in Coding Theory Oxford University Press 1980 JONES, D.S. Elementary Information Theory. Oxford University Press 1979 Justesen,J Two-Dimensional Information Theory and Coding Cambridge University Press 2003 MacKay Information Theory, Inference and Learning Algorithms Cambridge University Press 2003 Morelos-Zaragoza, R. The Art of Error Correcting Coding Addison Wesley 2006 Neubauer, A. Coding Theory: Algorithms, Architectures and Applications Addison Wesley 2007 Shannon C The Mathematical Theory of Communication University of Illinois Press 1998 BIBLIOGRAFÍA ESPECÍFICA: Paar, C Understanding Cryptography: A Textbook for Students and Practitioners Springer 2010 METODOLOGÍAS Esta asignatura no tiene docencia. Los alumnos deberán resolver obligatoriamente cuatro prácticas que son realizadas en el lenguaje de programación Java. La primera práctica es la implementación de una fuente de información que permitirá aplicar los conceptos teóricos de Entropía e Incertidumbre, Longitud Media de Palabra y Codificación Óptima. Esta práctica es la toma de contacto del alumno con la asignatura y servirá de base para las prácticas posteriores. La segunda práctica es la implementación de un algoritmo de compresión. La tercera práctica es la simulación de un Canal con Ruido y un algoritmo de corrección de errores. La cuarta y última práctica obligatoria es la implementación de una aplicación criptográfica relativa a los conceptos mostrados en clase. La información relativa a la asignatura se difunde asimismo a través del campus virtual de la Escuela Técnica de Ingeniería Informática, donde se publica toda la información relativa al curso (material, relaciones de problemas, software, etc.). EVALUACIONES La evaluación de la asignatura es basada en la elaboración de cuatro practicas obligatorias . En el caso que el alumno no supere las practicas obligatorias tendrá una prueba escrita por convocatoria donde deberá mostrar un conocimiento de la materia similar a las practicas realizadas durante el curso. DESCRIPTOR: Compresión de datos, Corrección de Errores, Criptografia. SITUACIÓN: CONTEXTO DENTRO DE LA TITULACIÓN: Optativa del Primer Cuatrimestre y en ella se utilizan ciertos conocimientos y competencias adquiridos en las asignaturas de Estadística y Métodos Numéricos. SITUACIÓN: RECOMENDACIONES. Se recomienda haber cursado las asignaturas mencionadas anteriormente. 20152016 02/07/16 PROGRAMA DE LA ASIGNATURA Página 4 de 4 COMPETENCIAS TRANSVERSALES/GENÉRICAS. Capacidad de análisis y síntesis. Capacidad para la cuantificación de la información. Capacidad para la resolución de problemas. Capacidad de aplicar los conocimientos en la práctica. COMPETENCIAS ESPECÍFICAS: Cognitivas (Saber). Demostrar conocimiento y comprensión de conceptos, principios y teoria relacionada con la información y la codificación. Identificar y analizar los criterios y características técnicas aplicadas a los problemas específicos, así como estrategias para planificar su solución. Hacer uso de las teorías, prácticas y herramientas apropiadas para la especificación y planificación de software específico. COMPETENCIAS ESPECÍFICAS: Procedimentales/instrumentales (Saber hacer). Planteamiento de soluciones algorítmicas a problemas concretos. Resolución de modelos utilizando algoritmos de codificación. Visualización e interpretación de soluciones. Capacidad de poner la teoría en conexión con la práctica. Utilización de herramientas específicas. COMPETENCIAS ESPECÍFICAS: Actitudinales (Saber). Capacidad de abstracción. Razonamiento lógico. Identificación y corrección de errores.