Guía docente de la asignatura

Teoría de la Información y la Codificación (Especialidad Computación y Sistemas Inteligentes)

Curso 2021 / 2022
Fecha última actualización: 21/06/2021
Fecha de aprobación: 21/06/2021

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Complementos de Computación y Sistemas Inteligentes

Materia

Herramientas de Computación Científica

Curso

4

Semestre

1

Créditos

6

Tipo

Optativa

Profesorado

Teoría

  • Manuel Pegalajar Cuéllar. Grupos: A

Prácticas

  • Manuel Pegalajar Cuéllar. Grupos: 1

Tutorías

Manuel Pegalajar Cuéllar

manupc@ugr.es
  • Segundo semestre
    • Jueves de 10:30 a 13:30 (D22 Etsiit)
    • Jueves de 15:30 a 18:30 (D22 Etsiit)
  • Primer semestre
    • Lunes de 11:30 a 13:30 (D22 Etsiit)
    • Martes de 15:30 a 17:30 (D22 Etsiit)
    • Miércoles de 9:30 a 11:30 (D22 Etsiit)

Prerrequisitos y/o Recomendaciones

Tener cursadas las asignaturas las asignaturas básicas y obligatorias del Grado en Ingeniería Informática.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Teoría de la Información.
  • Entropía.
  • Sistemas de Transmisión.
  • Códigos Detectores y Correctores.

Competencias asociadas a materia/asignatura

Competencias generales

  • CG08 - Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.

Resultados de aprendizaje (Objetivos)

  • Conocer y utilizar los conceptos básicos de información y su medida de entropía, cantidad de información y capacidad del canal, asociado a un contexto probabilístico.
  • Conocer el sistema de transmisión desde que la información parte del usuario hasta que se convierte en un determinado código, y luego el paso inverso, descifrarlo para que sea legible por el usuario.
  • Conocer los sistemas de transmisión de información para conseguir que ésta sea lo más rápida, con la menor distorsión y al menor coste posible.
  • Conocer la teoría matemática de la información desarrollada por Shannon, que estudia el problema de la transmisión de información a través de los canales en los que puede haber ruido.
  • Comprender el concepto de codificación de una fuente, que tiene por objetivo adaptar, estadísticamente, la fuente productora de los mensajes que se deben transmitir por el canal.
  • Estudiar los códigos de descodificación única e instantánea: sus propiedades (primer y segundo teorema de Shannon).
  • Tener los conocimientos básicos sobre códigos para canales sin ruido.
  • Saber construir un código de Huffman y ver la diferencia entre códigos binarios y n-arios.
  • Saber construir un código de Shannon-Fano
  • Interpretar la diferencia entre los códigos de Huffman y los de Shannon-Fano
  • Adquirir los conocimientos básicos sobre Códigos para canales con ruido, incidiendo en los distintos códigos detectores y correctores.
  • Saber construir un código lineal
  • Saber construir un código de Hamming e interpretar sus analogías y diferencias con los códigos lineales.
  • Saber construir un código cíclico
  • Interpretar las diferencias entre los códigos cíclicos, BCH, Reed-Solomon y Goppa
  • Ser capaces de ver las ventajas e inconvenientes de cada código y cuando se debe usar cada uno de ellos.
  • Ser capaces de implementar los diferentes códigos aprendidos en las horas de teoría.
  • Ser capaces de implementar las medidas de información estudiadas en el primer módulo.

Programa de contenidos teóricos y prácticos

Teórico

El temario de la asignatura contempla dos bloques fundamentales: Teoría y Prácticas. El bloque de teoría se orienta a explicar qué es la información, qué medidas existen de información y sus propiedades, y la construcción de códigos simples. Particularmente, se estudiará la construcción de códigos óptimos para realizar una transmisión/codificación/almacenamiento eficiente de información, cómo usar redundancia de información para desarrollar técnicas para detectar errores en mensajes transmitidos en canales con ruido, y también técnicas para detectar y corregir errores en el mismo tipo de canal, cubriendo todos los objetivos y competencias mostrados en esta guía docente.

Las prácticas de la asignatura se plantearán con un doble objetivo: En primer lugar, servir para asentar los contenidos teóricos e implementar las técnicas aprendidas en teoría en lenguajes de propósito general. Por otra parte, que también se estudie de forma directa la utilidad de la teoría de la información y la codificación en aplicaciones reales. Para alcanzar ambos objetivos, el profesorado pondrá a disposición del alumno diferentes tareas de implementación de códigos y conceptos relacionados con la teoría.

Los contenidos teóricos de la asignatura, organizados por temas, se ilustran en el siguiente temario:

 

TEMARIO DE TEORIA

 

  • Tema 1: Introducción a la Teoría de la Información.
  • Tema 2: Medidas de información. Cantidad de información. Información mutua.
  • Tema 3: Información en canales sin ruido. Códigos óptimos.
  • Tema 4: Información en canales con ruido. Códigos para detectar errores.
  • Tema 5: Códigos detectores y correctores de errores.

Práctico

Las prácticas de la asignatura se realizarán en el tiempo de clase, en el laboratorio del centro habilitado al efecto. No obstante, se plantearán también de modo que puedan ser llevadas a cabo de forma individual en un escenario de docencia plenamente online.

En particular, las prácticas serán llevadas a cabo utilizando el lenguaje Python, y consistirán en la implementación de diferentes códigos y algoritmos estudiados, que permitan al alumno poner en práctica los conocimientos teóricos adquiridos. Para ello, se plantea al principio de curso una clase de nivelación, o introducción a Python, cuadernos Jupyter y la biblioteca NumPy, junto con un conjunto de tareas a realizar durante el curso. Se proponen varias tareas por tema, de las cuáles el estudiante deberá escoger 5 en total (una por tema) para su realización.

 

  • Tema 1. La Teoría de la Información: Buscar un sistema de generación y transmisión de información de la vida cotidiana y analizarlo.
  • Tema 1. Generación de códigos de barras: Diseño y generación de códigos de barras usando Python.
  • Tema 2. Búsqueda Binaria Probabilística: Adaptación del algoritmo clásico de búsqueda binaria haciendo uso de técnicas de Teoría de la Información. Implementación en Python.
  • Tema 2. La Entropía de la información: Diseño e implementación de funciones de cálculo de medidas de información, y análisis en diversos casos. Implementación en Python.
  • Tema 3. Primer Teorema de Shannon: Implementación de funciones en Python para descubrir características de códigos completos e instantáneos. Aplicación y ejemplos.
  • Tema 3. Compresión de datos con el método de Huffman: Implementación en Python del método de Huffman para creación de códigos instantáneos óptimos y aplicación para compresión de ficheros de texto.
  • Tema 4. Codificación de tarjetas bancarias y DNIs: Implementación de funciones en Python para calcular códigos de bloque de suma modular para detección de errores en el cálculo de DNIs y de números de tarjetas bancarias.
  • Tema 5. Códigos lineales: Implementación de funciones para codificar, decodificar y detectar y corregir errores con un código lineal.
  • Tema 5. Códigos de Hamming: Implementación de funciones para codificar, decodificar y detectar y corregir errores con un código de Hamming.
  • Tema 5. Códigos QR: Implementación de funciones para codificar códigos QR, e incluirlos en una matriz de visualización del código.

 

Bibliografía

Bibliografía fundamental

  • Adámek, J. Foundations of Coding. John Wiley & Sons, 1991.
  • David J.C. MacKay, Information Theory, Inference, and Learning Algorithms, Cambridge University Press 2003
  • Sarah Spence Adams, Introduction to Algebraic Coding Theory, Cornell University, 2006
  • Henk C.A. van Tilborg, CODING THEORY: A first course, Eindhoven University of Technology, 1993

Bibliografía complementaria

  • F. Halsall, “Multimedia Communications”, Pearson Education Limited, 2001.
  • Cover,T,m., Thomas,J.A. Elements of information Theory, Wiley-Interscience. Second edition. 2006
  • Gray,R.M. Entropy and Information Theory. Springer-Verlag. New-York. Second edition. 2010
  • Hamming,R,W. Coding and Information Theory. Prentice Hall. Second edition, 1986.
  • Kullback, S. . Information Theory and Statistics. Wiley. Second edition 1968.
  • Mackay, D. Information Theory, Inference, and Learning Algorithms. Cambridge University Press. 2003
  • Pierce, J.R. An Introduction to Information Theory. Dover Publications; Second edition .1980.
  • Van lInt, J.H. Introduction to coding theory. Springer-Verlag. Third edition. 1999.
  • Woungang,I., Misra, S., Misra,S.C. Selected topics in information and coding theory. Series on Coding Theory and Cryptology. 2010.

Enlaces recomendados

Metodología docente

  • MD01 Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02 Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04 Actividades no presenciales Individuales. 
  • MD05 Actividades no presenciales Grupales. 
  • MD06 Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación ordinaria

El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

Se deberán entregar tareas que se propondrán a los estudiantes con carácter semanal, con las siguientes peculiaridades:

  • Se deberá realizar sólo 1 tarea por módulo o tema. En total, el estudiante realizará, como mucho, 5 tareas a lo largo del curso (ver apartado "Contenidos" de este documento).
  • Es obligatorio realizar una tarea para 4 módulos, al menos, para ser evaluado. En otro caso, la calificación será numérica con valor 0 sobre 10.
  • Todas las tareas tienen 2 partes de evaluación: Teórica y práctica, donde cada una contará con el 50% de ponderación para obtener la calificación final de la tarea.
  • La evaluación de las tareas se realiza en horario de clase, mediante presentación de los contenidos teóricos y prácticos por parte del estudiante.
  • La calificación final, en convocatoria ordinaria, será expresada con valor numérico de 0 a 10, y se corresponderá con la suma ponderada de la valoración obtenida en cada tarea realizada a lo largo del curso.

Evaluación extraordinaria

Se aplican los mismos criterios que para la evaluación continua. La defensa de las prácticas será realizada antes de que finalice la fecha de evaluación prevista por el centro para la evaluación extraordinaria.

 

 

Evaluación única final

Se aplican los mismos criterios que para la evaluación continua. La defensa de las prácticas será realizada antes de que finalice la fecha de evaluación prevista por el centro para la evaluación extraordinaria.

 

Información adicional

RÉGIMEN DE ASISTENCIA

 

La asistencia a las clases no será obligatoria Se requerirá, siguiendo el sistema de evaluación continua, que el estudiante asista al menos a las sesiones de evaluación de cada tarea y defienda ante el profesor el resultado de la correspondiente práctica. Dicha asistencia estará condicionada al escenario A o B en el que se encuentre la asignatura durante el curso, o en el escenario B si el estudiante así lo acuerda con el profesor.

ESCENARIO A (ENSEÑANZA-APRENDIZAJE PRESENCIAL Y TELE-PRESENCIAL)

Horario (Según lo establecido en el POD)

https://decsai.ugr.es/docencia/profesorado

 

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

Plataforma PRADO

Plataforma Google Meet

Correo electrónico (manupc@ugr.es)

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

Para la asignatura, la metodología principal a seguir será la metodología de clase invertida (flipped classroom). En esta metodología se seguirán los siguientes pasos:

 

  1. Con carácter previo a la docencia presencial, el profesor pondrá material de estudio a disposición del estudiante, para que realice el trabajo de aprendizaje (videotutoriales, lecturas, diapositivas, etc.). También, con carácter semanal, se proporcionará una guía de estudio de los conceptos y tareas relacionadas con los módulos semanales estudiados (libreta de apuntes).
  2. Las clases presenciales se utilizarán para:
    1. Repasar los conceptos teóricos estudiados previamente por el estudiante en los videotutoriales.
    2. Resolución de dudas.
    3. Realización de ejercicios que refuercen los conceptos teóricos.
    4. Fortalecer y abordar en mayor profundidad los conceptos teóricos aprendidos.
    5. En las clases diseñadas para elaboración de prácticas: Realización de las tareas asignadas, presentación de dudas o resultados parciales al profesor para verificar la correcta ejecución de la tarea.
  3. Semanalmente, se propondrá al estudiante la elaboración de apuntes (libreta), de modo que el estudiante pueda sintetizar los conceptos más relevantes estudiados en cada semana del curso.

 

Dado el carácter de evaluación continua de la asignatura, se recomienda al estudiante el seguimiento semanal de la misma, mediante:

  • El estudio del material propuesto (videotutoriales, diapositivas, lecturas).
  • La elaboración de la libreta de apuntes.
  • La elaboración de las tareas propuestas.

 

Evaluación ordinaria

No se requieren medidas extraordinarias de adaptación de la evaluación.

Evaluación extraordinaria

No se requieren medidas extraordinarias de adaptación de la evaluación.

Evaluación única final

No se requieren medidas extraordinarias de adaptación de la evaluación.

ESCENARIO B (SUSPENSIÓN DE LA ACTIVIDAD PRESENCIAL)

Horario (Según lo establecido en el POD)

https://decsai.ugr.es/docencia/profesorado

 

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

Plataforma PRADO

Plataforma Google Meet

Correo electrónico (manupc@ugr.es)

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

Para la asignatura, la metodología principal a seguir será la metodología de clase invertida (flipped classroom). En esta metodología se seguirán los siguientes pasos:

 

  1. Con carácter previo a la docencia presencial, el profesor pondrá material de estudio a disposición del estudiante, para que realice el trabajo de aprendizaje (videotutoriales, lecturas, diapositivas, etc.). También, con carácter semanal, se proporcionará una guía de estudio de los conceptos y tareas relacionadas con los módulos semanales estudiados (libreta de apuntes).
  2. Las clases presenciales se utilizarán para:
    1. Repasar los conceptos teóricos estudiados previamente por el estudiante en los videotutoriales.
    2. Resolución de dudas.
    3. Realización de ejercicios que refuercen los conceptos teóricos.
    4. Fortalecer y abordar en mayor profundidad los conceptos teóricos aprendidos.
    5. En las clases diseñadas para elaboración de prácticas: Realización de las tareas asignadas, presentación de dudas o resultados parciales al profesor para verificar la correcta ejecución de la tarea.
  3. Semanalmente, se propondrá al estudiante la elaboración de apuntes (libreta), de modo que el estudiante pueda sintetizar los conceptos más relevantes estudiados en cada semana del curso.

 

Dado el carácter de evaluación continua de la asignatura, se recomienda al estudiante el seguimiento semanal de la misma, mediante:

  • El estudio del material propuesto (videotutoriales, diapositivas, lecturas).
  • La elaboración de la libreta de apuntes.
  • La elaboración de las tareas propuestas.

 

Evaluación ordinaria

No se requieren medidas extraordinarias de adaptación de la evaluación.

Evaluación extraordinaria

No se requieren medidas extraordinarias de adaptación de la evaluación.

Evaluación única final

No se requieren medidas extraordinarias de adaptación de la evaluación.