Cursos
cours.roussille.eu es la plataforma que construí para mis estudiantes. Reúne mis cursos actuales en 3iL Ingénieurs (Rodez) y parte de los que impartí antes en EPITA y en la Université Paul Sabatier (Toulouse). Cada curso tiene sus capítulos, sus ejercicios y, según la asignatura, sus proyectos.
El código se escribe y se ejecuta directamente en la página: un compilador Java real, un intérprete OCaml, un simulador 68000 que se puede seguir paso a paso. No hay nada que instalar, y los ejercicios se comprueban mediante tests, con respuesta inmediata. La plataforma ofrece a mis estudiantes capítulos para leer y cuestionarios que vuelven sobre las nociones falladas.
Los materiales de los cursos son de acceso libre; el núcleo de los cursos (ejercicios, itinerarios…) está reservado a mis estudiantes. La plataforma incluye también una página, «Ma méthode» (en francés), donde explico cómo organizo y evalúo mis cursos, y en qué estudios se apoyan esas decisiones.
Cursos actuales
3iL Ingénieurs (Rodez)
Coordino el área de Desarrollo en el campus de Rodez.
Primer año
- Programación profesional (sección en alternancia, de septiembre a noviembre de 2026): arquitectura de software, excepciones, patrones de diseño.
- Diseño orientado a objetos (alternancia): Java orientado a objetos en profundidad, con clases y objetos, herencia, interfaces, genericidad, colecciones y streams.
- Java, antes del inicio de curso (acceso libre): el curso previo al inicio de curso, con una prueba de nivel que indica por dónde empezar.
- Fundamentos del desarrollador: terminal, Git, refactorización, programación defensiva, depuración, tests y documentación.
- UML: necesidades y casos de uso, comportamiento dinámico, estructura del proyecto.
- Métodos de trabajo: aprender, redactar, sobrevivir en la línea de comandos.
- Ingeniería de prompts: escribir para un modelo de lenguaje, y lo que eso implica.
- Arquitectura de microservicios: dividir un sistema en servicios independientes, diseñar API y desplegarlas en una cadena DevOps (Docker, Jenkins, ELK, Kubernetes), con Spring Boot, Django o Node.js.
Segundo año
- Desarrollo avanzado, en tres asignaturas:
- Arquitectura avanzada: panorama de los estilos de arquitectura de software (monolítica, hexagonal, microservicios…), patrones avanzados (DDD, CQRS, Event Sourcing, Circuit Breaker, Saga) y elección argumentada según las restricciones de un proyecto.
- Programación avanzada: los lenguajes Rust, JavaScript, Python, Java, Go y Elixir.
- DevOps avanzado, a cargo de F. Dieny.
- Programación funcional: razonar sobre un programa como una transformación de datos, en F#, y después trasladar esos reflejos al Java moderno (lambdas, Streams).
- Iniciación a la investigación: formular una problemática, realizar una búsqueda bibliográfica (con Zotero y LaTeX) y redactar en grupo un estado del arte con el formato de un artículo científico.
Tutoriales
- Algoritmia y Python (para las clases preparatorias científicas): en Tatoufé.
Cursos anteriores
EPITA, Toulouse (2019 a 2020)
- Programación funcional en Caml (primer año, ciclo preparatorio): un seminario de algoritmia para iniciarse en la programación.
- Teoría de lenguajes regulares (segundo año, ciclo preparatorio): expresiones regulares, autómatas finitos, minimización.
- Programación en C (segundo año, ciclo preparatorio): punteros, memoria, estructuras de datos, procesos e hilos POSIX.
- Algoritmia en Python (no está en la plataforma).
- Programación en C# (no está en la plataforma).
Université Paul Sabatier, Toulouse (2013 a 2017, durante mi tesis)
- Lógica para la informática (segundo año de grado en Informática): cálculo proposicional y lógica de primer orden.
- Ensamblador 68000 (primer año de grado en Informática): programar el procesador Motorola 68000 lo más cerca posible de la máquina.
- Informática para el primer año de grado en Ciencias Naturales (no está en la plataforma): un curso orientado a Python y R.
- Programación en Ada (no está en la plataforma).