Skip to content

teaching /

teaching projects

Tools, software and open data born in a course but useful beyond it. Every project publishes its code and data under a free license and, when it has a citable version, its DOI.

Polytechnic School timetables and courses as open data

Every year the Polytechnic School publishes the timetables of its degrees as PDF files, one sheet per group. This project reads them and turns them into reusable data: every class session with its degree, year, group, day, time and room, and every subject with its code, credits, department and course guide, taken from the official University of Alcalá pages.

On top of that data there is a web application to browse the timetable by degree, see the weekly occupation of each room, build profiles of subjects and groups and, in the Student view, pick subjects and groups to see the overlaps and search for a conflict-free combination. Any sheet can be printed in the School’s format. The application is in Spanish.

The data files are published under CC BY 4.0 and the code under the MIT license, so anyone can reuse them or regenerate them next year. They contain no personal data: lecturers are looked up on the University pages, not in the files.

Open the application Code and documentation Source: Polytechnic School timetables

Open data · academic year 2026/27

FileContentsRows
sesiones.csv · sesiones.json Class sessions: degree, year, semester, group, day, start and end time, subject, room and source PDF. 2180
asignaturas.csv Subject catalogue with spelling variants, code, lecture and lab groups, rooms and hours per week. 302
aulas.csv Rooms and labs with building, hours in use per week in each semester, degrees and subjects. 78
guias.csv · guias.json One row per study plan and subject: code, name in Spanish and English, credits, type, period, languages, department, areas, plans that share it and links to the official page and the course guide. 783
codigos.csv Mapping between subject code, name and degree acronym. 992
fuentes.csv The source PDFs on the School website, with branch, degree, semester and URL. 28

Data under CC BY 4.0, derived from public information of the University of Alcalá; code under the MIT license.

Interactive visualizations for computer networks courses

The visualizations used in Network Architecture I are self-contained HTML files: they work offline, uploaded to Blackboard or embedded in any website. This repository gathers them in one place, every piece in Spanish and in English, so that any lecturer can reuse or adapt them.

Besides the files it includes a machine-readable catalogue (catalog.yml) with the title, summary, concepts and formulas of every visualization in both languages; the modular source, with tests, of the delay diagram, persistent HTTP and DNS step by step; and the template and design guide of the delay lab. A browsable catalogue opens them directly.

This website does not edit the visualizations: it imports them from the repository with a script, adds its own bar and metadata and checks that they match the original. Every version of the repository is archived on Zenodo with its own DOI, so that the complete collection of an academic year can be cited.

Open the application Code and documentation DOI 10.5281/zenodo.23285664

Published under the CC BY-SA 4.0 license.

TCP trace generator for congestion control exercises

Teaching TCP congestion control requires captures in which students can follow, segment by segment, how the congestion window, the slow start threshold and the retransmission timer evolve. Real captures are too noisy for that. This script simulates a complete connection, with losses in the segments you choose, and produces the pcap capture, which opens in Wireshark, and a CSV log with the sender’s internal state at every event.

It implements TCP Reno (slow start, congestion avoidance, fast retransmit and fast recovery) and TCP Tahoe, with the adaptive RTO of RFC 6298, Karn’s algorithm and delayed acknowledgements. Classroom mode replaces continuous time with discrete slots, fixes the RTO and the latency and serializes transmissions, so that the trace is predictable and can be solved on paper before checking it against the capture. It is the mode used in the exercises of session 3.4 of Network Architecture I.

The code is a single Python file with Scapy as its only dependency, with tests and documentation in Spanish and English. Every version is archived on Zenodo with a DOI.

Code and documentation DOI 10.5281/zenodo.23293176

By Enrique de la Hoz, Sandra Machado Zurita, Luis de la Cruz Piris. Published under the MIT license.