Actualmente, mi docencia en la Escola de Enxeñaría de Telecomunicación se reparte en 3 asignaturas:

Programación I

Asignatura de 1º curso del Grado en Ingeniería de Tecnologías de Telecomunicación

El objetivo principal de esta asignatura es el desarrollo de capacidades de programación en un lenguaje de alto nivel. El paradigma de programación que se sigue es el de programación estructurada.

  • Expresar la solución de un problema sencillo mediante algoritmos, utilizando diseño descendente.

  • Identificar los datos necesarios para resolver un problema y asociarlos a los tipos correspondientes en función de sus características (tamaño, rango, operadores que actúan sobre ellos).

  • Codificar algoritmos sencillos a partir de los tres tipos básicos de sentencias: asignación, selección e iteración.

  • Declarar y definir funciones haciendo un uso adecuado del paso de parámetros.

  • Manejar las operaciones de entrada/salida y operar con ficheros.

  • Definir y utilizar tipos de datos estructurados.

  • Definir y gestionar estructuras de datos dinámicas (listas).
    Crear y utilizar módulos y funciones de biblioteca dentro de un programa.

  • Predecir el resultado de una secuencia de sentencias básicas, conocidos los datos de entrada.

  • Desarrollar proyectos software de pequeña envergadura siguiendo todas las fases: análisis de requisitos, diseño, construcción, evaluación y documentación.

  • Manejar herramientas básicas para el desarrollo de programas: editor de textos, compilador, enlazador, depurador y herramientas para la documentación.
  1. El algoritmo y los lenguajes de programación (3h)
  2. La gramática y los elementos básicos de programación (3.5h)
  3. Instrucciones de decisión y de iteración (3.5h)
  4. Arrays y cadenas de caracteres (2.5h)
  5. Funciones (2h)
  6. Punteros (4h)
  7. Ficheros (1.5h)
  8. Variables tipo struct (2h)
  9. Listas (3h)

Instagram
Tiktok
YouTube
X
LinkedIn

Diseño de Sistemas Integrados

Asignatura de 4º curso del Grado en Ingeniería de Tecnologías de Telecomunicación

Los sistemas integrados o empotrados (embedded systems) forman parte de casi todas las actividades de nuestro día a día que involucran el uso de un dispositivo electrónico (el despertador, el móvil, el coche…). En este curso se presentan los conceptos principales que están detrás de un sistema integrado moderno que cuenta con un sistema operativo, y se llevan a la práctica a través de una serie de ejercicios y proyectos.

  • Conocer la base tecnológica sobre la que se apoyan las investigaciones más recientes en el estudio y diseño de sistemas integrados.

  • Comprender los aspectos básicos de las especiales exigencias que plantean los sistemas integrados con fuertes restricciones de tiempo real.

  • Adoptar una visión general del problema de la programación en entornos que tienen restricciones de tiempo real, y conocer las herramientas adecuadas para tratarlos, de manera que pueda afrontar los sistemas empotrados con un enfoque a nivel de sistema.

  • Entender los elementos básicos de la prevención y la tolerancia de fallos

  • Dominar los conceptos relativos a la organización del software de este tipo de sistemas.

  • Manejar con soltura las técnicas de planificación de los procesos y del uso de recursos en sistemas integrados.

  • Estar familiarizado con el uso de las plataformas de abstracción para el desarrollo de sistemas integrados.
  1. Concepto de sistema integrado
  2. Sistemas operativos para sistemas integrados
  3. Arquitecturas de sistemas integrados
  4. Planificación de procesos
  5. Fiabilidad y tolerancia a fallos
  6. Sistemas integrados distribuidos
  7. Plataformas de abstracción para el desarrollo de sistemas integrados
  8. Comunicación con sensores y actuadores

Computación Distribuida

Asignatura de 2º curso del Máster Universitario en Ingeniería de Telecomunicación

Esta asignatura proporcionará una visión de conjunto de las tecnologías más habituales dentro de la computación distribuida. Se abordarán temas tales como las transacciones distribuidas y la replicación; la computación grid, en la nube, y cluster; la inteligencia artificial distribuida; y la computación paralela y evolutiva.

  • Adquirir habilidades en el diseño, desarrollo y gestión de sistemas distribuidos.

  • Comprender las bases funcionales de los sistemas distribuidos.

  • Conocer los distintos conceptos relacionados con la computación distribuida: clustering, grids, computación en la nube y computación ubicua.

  • Adquirir habilidades para la aplicación de sistemas inteligentes en la computación distribuida.

  • Aprender a distribuir la ejecución de tareas para la resolución de problemas y optimización mediante computación evolutiva y paralela.
  1. Inteligencia artificial distribuida
  2. Computación paralela y evolutiva
  3. Transacciones
  4. Replicación
  5. Diseño de Sistemas Distribuidos