Conocimientos

Un registro donde hago una retrospectiva y agrupo lo aprendido en cada materia. Cada bloque es desplegable, dentro veréis un comentario estilo blog de lo que aprendí en cada materia.

> Cuarto curso · materias actuales

Diseño de los Lenguajes de Programación

Profundizando en gramáticas, parsers y pequeños intérpretes. Aquí iré anotando los experimentos con DSLs y compiladores caseros.

Computación Gráfica y Visualización

Proyecto centrado en pipelines gráficos y shaders. Añadiré capturas de los renders y notas sobre optimización en GPU.

Procesamiento de Lenguajes

Tratamiento de texto, modelos lingüísticos y detección de entidades. Reservo este bloque para scripts NLP y resultados de laboratorio.

Visión Artificial

Desde filtros clásicos hasta CNNs ligeras para reconocimiento. Documentaré datasets usados y métricas obtenidas.

> Tercer curso · materias obligatorias

Representación del Conocimiento y Razonamiento Automático

Aterrizamos la parte lógica con ontologías ligeras y motores de inferencia. Me sirvió para describir dominios reales y automatizar conclusiones sin escribir más reglas de la cuenta.

Desarrollo de Sistemas Inteligentes

Construimos agentes y pequeños sistemas expertos. Fue donde más practiqué cómo dividir la lógica de decisión y justificar por qué un agente actúa de cierta manera.

Aprendizaje Automático

Armé pipelines de ML con Python y un poco de Julia. Me quedé sobre todo con la parte de limpieza de datos y cómo documentar experimentos para no perderme entre notebooks.

Teoría de la Computación

Volvimos a autómatas, lenguajes formales y complejidad. Dejé anotadas las demostraciones que más repetimos para poder reutilizarlas cuando diseño lenguajes o parsers.

Recuperación de Información

Montamos motores de búsqueda sencillos y aprendí a evaluar ranking con métricas claras. Tengo aquí los benchmarks que hice comparando BM25 con variantes más modernas.

Gestión de Proyectos

Practiqué planificación, estimaciones y reparto de roles. Apunté qué dinámicas nos ayudaron a llegar a tiempo y qué herramientas realmente usamos en equipo.

Interfaces Persona Máquina

Hicimos investigación con usuarios reales, prototipos rápidos y pruebas de UX. Las conclusiones las aplico cada vez que maqueto algo para que se entienda sin manual.

Internet y Sistemas Distribuidos

Repasé arquitecturas distribuidas, tolerancia a fallos y patrones de escalado. Aquí guardo los diagramas que uso de base cuando pienso en despliegues repartidos.

Legislación y Seguridad Informática

Vimos el marco legal y protección de datos. También aprendí buenas prácticas de seguridad en Linux.

Gestión de Infraestructuras

Nos centramos en operaciones, despliegues y monitorización. Vimos como gestionar servidores y servicios en de forma eficiente.

> Segundo curso · troncales

Algoritmos

Consolidando análisis de complejidad y técnicas de optimización. Vimos diversos algoritmos clásicos y sus implementaciones.

Estructura de Computadores

Funcionamiento interno del hardware y pipeline de instrucciones.

Paradigmas de Programación

Usamos OCaml para explorar programación funcional y lógica. Fué básico para entender diferentes enfoques de resolución de problemas.

Diseño Software

Patrones, arquitectura y trabajo colaborativo. Fué la primera vez que usamos Java y programación orientada a objetos en profundidad.

Sistemas Operativos

Gestión de recursos, concurrencia y sistemas de archivos. Realizamos prácticas en C.

Bases de Datos

Modelado relacional, SQL y normalización. Fue esencial para entender cómo gestionar información de forma eficiente.

Redes

Protocolos, routing y servicios. Para las prácticas usamos Cisco Packet Tracer.

Concurrencia y Paralelismo

Vimos hilos, procesos y problemas clásico (Filósofos, Productores-Consumidores...). Aplicamos lo conocido en C y Eerlang.

Proceso Software

Metodologías ágiles y documentación. También hicimos mockups y diagramas UML.

Sistemas Inteligentes

IA clásica, heurísticas y agentes simples. Vi conceptos básicos como búsqueda (Dijkstra, A*...), y algoritmos genéticos.

> Primer curso

Programación I

Introducción a C y resolución de problemas básicos. Fué mi primer contacto con un lenguaje de programación.

Informática Básica

Aprendí sobre el ecosistema de Linux, comandos y la navegación báscica por terminal. También interioricé mejor conceptos básicos como binario y permisos.

Cálculo

Derivadas, integrales y aplicaciones. Reforcé conceptos matemáticos de bachillerato y aprendí conceptos más avanzados como series de Fourier.

Matemática Discreta

Lógica proposicional, conjuntos y grafos. Fue mi primera toma de contacto con demostraciones formales.

Administración y Gestión de Organizaciones

Me sirvió para tener un conocimiento básico sobre cómo funcionan las empresas y conceptos de economía importantes en mi campo.

Tecnología Electrónica

Repasé conceptos básicos de electrónica como Voltaje, Corriente y Resistencia y también aprendí sobre circuitos digitales simples y componentes electrónicos.

Programación II

Profundicé en C y estructuras de datos básicas. Aquí empecé a entender mejor la lógica de programación y a resolver problemas más complejos con variadas estructuras.

Fundamentos de los Computadores

Arquitectura básica, binario y ensamblador simple, resolví ejercicios que me ayudaron a entender cómo funciona un computador a bajo nivel.

Estadística

Ya tenía conocimientos previos de estadística, pero aquí los reforcé y aprendí conceptos nuevos.

Álgebra

Profundicé en temas de álgebra lineal como matrices, determinantes y sistemas de ecuaciones. Esto fué básico para entender conceptos futuros en áreas como gráficos por computador y aprendizaje automático.