Mis estudios

Como ya llevo una buena temporada estudiando en la Universidad , y en todo este tiempo he hecho casi de todo, he decidido compartir todo el material que he creado durante este tiempo por si a alguien le resulta útil. A continuación encontrarás prácticas de asignaturas, artículos, documentos, ...

Está dividido por las titulaciones en las que se ha creado el material. Primero el material creado en los cursos de Doctorado en Informática y Modelización Matemática, después en la Ingeniería Informática, y por último en la Ingeniería Técnica en Informática de Sistemas.

Doctorado en Informática y Modelización Matemática

Material creado durante los cursos de doctorado:
Sistemas Distribuidos

Una presentación realizada en la asignatura de Sistemas Distribuidos:

Ingeniería Informática

Computer Security Technology

Esa era una de las asignaturas a las que asistí en el HUT. Aquí puedes encontrar algunos ejercicios sobre diferentes temas de seguridad junto con sus enunciados:

Routing in Communication Networks

Otra de las asignaturas que cursé en el HUT, trataba sobre routing a nivel básico. Aquí puedes ver algunos de los ejercicios que tuve que hacer:

Concurrent Programming

Ésta era otra de las asignaturas a las que asistí en el HUT. Aquí puedes encontrar algunos ejercicios sobre Programación Concurrente:

Object Oriented Measurement

Artículo que escribí en el HUT sobre medición de productos software, pero desde el enfoque de la orientación de objetos:

Object Oriented Measurement

DSR Ad-hoc routing protocol for LEGOS

En una asignatura sobre Infraestructuras de redes he diseñado e implementado parcialmente un protocolo de encaminamiento ad-hoc para los Legos Mindstorms llamado DSR: Dynamic Source Routing, junto a otros dos compañeros (Raúl y Jose).

Si quieres ver lo que hemos hecho puedes ver el documento sobre la implementación de DSR.

Servidor web en python

En la asignatura " Tecnologías de Servicios y Aplicaciones para Internet" he hecho un servidor web en python, que implemente una página tipo foro de noticias con secciones, votación de noticias, ... Es algo sencillo y un poco mal escrito ;-), porque era mi primer programa escrito en python. Si quieres verlo: Servidor web en python (.tgz)

Disparadores y UML-SQL

En una asignatura de Base de datos tuve que hacer junto a Jose un par de prácticas, una de ellas sobre disparadores en Oracle y otra sobre diseño UML-SQL, aquí están:

Disparadores en Oracle (.pdf) y Diseño UML-SQL (.pdf)

Programación con CLIPS

En otra de las asignaturas que he tenido hemos implementado la solución a algunos problemas de Ingeniería del Conocimiento usando CLIPS, algunos de estos problemas son conocidos:

  • El problema de las jarras, en el que se debe dejar una cantidad de agua determinada en cada una de ellas
  • Las 4 en raya, para jugar contra el ordenador
  • Sistema de clasificación de peces

Si quieres verlos puedes ver bajarte las fuentes de los ejercicios en clips (.tgz) o ver el documento explicativo de los ejercicios(.pdf) donde se comenta la solución a los problemas.

Búsqueda no informada

En una asignatura sobre Inteligencia Artificial tuve que hacer junto a Jose una implementación de un algoritmo de búsqueda no informada en C++. El objetivo de la búsqueda era encontrar una expresión formada por números y operadores, que sirviera de patrón para obtener una sucesión de números elegidos, y esta búsqueda se realiza utilizando un árbol binario.

Puedes ver las fuentes del algoritmo de búsqueda no informada(.tgz).

Compilador de Java

En una asignatura sobre procesadores de lenguajes hemos (yo y Jose) diseñado e implementado un compilador de Java: análisis léxico, sintáctico, semántico, generación de código, ...

Puedes ver la documentación del compilador (.ps) y las fuentes del compilador de java(.tgz).

Juego de bolsa

En una asignatura sobre redes he desarrollado un juego de bolsa, que consta de brokers que compran/venden acciones durante una serie de sesiones. La aplicación es distribuida y no la controla ningún servidor central, solamente hay un nodo central que se encarga de controlar las sesiones y las posibles trampas de los brokers. Está desarrollado en Ada usando la librería de comunicaciones Lower Layer.

Puedes ver los fuentes del juego de bolsa (.tgz) .

Simple TCP

En otra asignatura de redes, he desarrollado una simplificación de TCP, está hecho en Ada usando Lower Layer, y he tenido que implementar el cliente que interactúa contra unos cuantos servidores que nos ofrecían.

Puedes ver las fuentes de la simplificación de TCP (.tgz).

Ensayo sobre Darwin

Aquí puedes ver un ensayo que hice sobre la vida de Charles Darwin para una asignatura de Humanidades.

Ensayo sobre Charles Darwin (.pdf)

Ingeniería Técnica en Informática de Sistemas

Este fue mi primer contacto con la Universidad, empecé en 1997 y la terminé en el 2000. Aquí puedes ver algunas de las cosas que hice durante ese periodo:

Find paralelo

Hice una práctica que consistía en implementar un find (como el clásico de unix) pero que funcionara en un cluster de máquinas y que paralelizase el proceso y repartiera la carga entre ellas para que el tiempo que se tardara en realizar la búsqueda fuera inferior al que realizaba la implementación del find que estaba instalado en cada máquina localmente.

La implementación está hecha con scripts de shell, C y usando MPI como librería de comunicaciones.

Puedes ver las fuentes del pseudofind aquí (.tgz).

Chat

En una asignatura sobre ampliación de sistemas operativos implementé un chat sin servidor central, simplemente usando multicast, y con opciones como varios canales disponibles, conversaciones privadas, ...

Está implementado en Ada usando Lower Layer UDP, y puedes ver el código fuente del chat aquí

Autómatas Finitos Deterministas y Probabilísticos

En la asignatura sobre autómatas hice varios programas sobre ellos. Uno de ellos se basa en comprobar si una palabra es aceptada por un determinado autómata probabilístico. Y el otro consiste en leer un autómata finito determinista y transformarlo en un autómata finito probabilístico.

Ambos programas están hechos en Pascal, y puedes ver las fuentes (.tgz) y un documento explicativo (.rtf) explicativo.

Mini-compilador de Pascal

En una asignatura sobre compiladores e intérpretes, tuve que implementar un mini-compilador de Pascal, usando lex, yacc y Pascal.

Puedes ver las fuentes del mini-compilador de pascal aquí.

Cliente/Servidor HTTP

En una asignatura sobre redes de área local implementé varios programas, son varios clientes y varios servidores HTTP, que interactúan entre ellos y con los navegadores tradicionales.

Están hechos en Ada usando Lower Layer, y puedes ver las fuentes del cliente/servidor HTTP aquí.

TFTP: Protocolo para transmisión de ficheros

En una asignatura sobre redes implementé un protocolo para la transferencia de ficheros entre varias máquinas. El protocolo se implementa sobre un servicio de comunicaciones no fiable y no orientado a conexión. Está hecho con Ada usando Lower Layer,

Puedes ver las fuentes del tftp aquí (.tgz).

Programación sobre legOS para los LEGOS Mindstorms

En la asignatura de robótica jugueteamos durante 4 meses con los Legos Mindstorms, e hicimos unos cuantos programas para ellos pero sobre el sistema operativo legOS, y los programas están escritos en C.

Puedes ver los programas para los LegOS aquí (.tgz).

Editor de texto

En la asignatura sobre estructuras de datos, hicimos un editor de texto programando en Pascal.

Puedes ver las fuentes del editor de texto (.tgz) .

Programa de Gestión de Cines

También implementé una aplicación para la gestión de la venta de entradas de un cine, está desarrollado en Delphi.

Aquí tienes todas las fuentes del programa de gestión de cines (.tgz).

Unidades de almacenamiento masivo

Aquí tienes un documento sobre varias unidades de almacenamiento masivo (.rtf) y su estado en el momento en el que se escribió el documento (1998).

Programación concurrente

En una asignatura sobre sistemas operativos hice varias programas sobre concurrencia: semáforos, condiciones de carrera, ...

Los programas están hechos en Ada y puedes ver el código fuente de los programas sobre concurrencia (.tgz)