* Podréis encontrar más prácticas de años más recientes en la página de Manel Pérez, alumno de Ingenieria Informática de la Universitat Rovira i Virgili de Tarragona.

Curso 2000-2001

  •   Apuntes:
  •   Computadores:
    • Práctica1
      Dada una ROM llena de números, hacer un circuito que busque cierto número y que por una salida indique en qué posición se encuentra o cuantos números hay iguales.
      Realizado con Extend.
    • Práctica2
      Circuito secuencial que realiza la multiplicación de dos número naturales de 8 bits, el resultado será de 16 bits.
      Realizado con Extend.
    • Práctica3
      Nueva máquina sencilla con las instrucciones: DD, CMP, MOV, BEQ, INIC y LOOP.
      Realizado con Extend.
    • Práctica4
      Utilizando un controlador basado en la máquina media realizar el popular juego Simon, donde el jugador debe ir memorizando el orden de las luces encedidas para luego repetirlas.
      Realizado con Extend.
    • Varios
      Diversas pruebas.
      Realizado con Extend.
  •   Programación I:
    • Práctica1
      Muestra los números primos.
      Realizado en ADA.
    • Práctica2
      Calculo de puntos que le corresponden a los participantes de un concurso de Castells usando archivos (entrada/salida).
      Realizado en ADA.
    • Práctica3
      Módulo para poder llevar una colección de juegos de forma informatizada.
      Realizado en ADA.
    • Práctica4
      Aplicación para la gestión de las salas de unos cines, utilizamos ADAGRAPH para visualizar la sala con sus asientos libres y ocupados.
      Realizado en ADA.
  •   Estructura de computadores I:
    • Práctica1
      Implementación de un algoritmo que calcula el producto de una matriz M (de 4 filas y 8 columnas) por un vector V (de 8 columnas) dando como resultado un vector de 4 filas.
      Realizado en Ensamblador.

    • Práctica2
      Implementación de una subrutina que hace el producto escalar entre dos vectores A y B (los dos de N elementos) devolviendo un valor de tipo entero.
      Realizado en Ensamblador.
    • Práctica3
      Rutina que realiza la conversión de un número de 16 bits a un string con su representación ASCII.
      Realizado en Ensamblador.

    • Práctica4
      Subrutina que genera un sonido por el altavoz interno del ordenador.
      Realizado en Ensamblador.
    • Práctica5
      Implementación de 3 subrutinas que se encargan de escribir en pantalla, borrarla y adivinar que caracter hay en cierta posición de la pantalla.
      Realizado en Ensamblador.

    • Práctica6
      Realización de tres subrutinas de teclado: inicialización, lectura y finalización. Se controlaran las interrupciones con una RSI. El juego de pruebas es el popular juego de las serpientes en modo 2 jugadores.
      Realizado en Ensamblador y C.

Curso 2001-2002

  •   Apuntes:
  •   Introducción a Bases de Datos:
    • Práctica1
      Implementación del algoritmo Feijen para la actualización de archivos, además de otras operaciones.
      Realizado en C bajo UNIX.
  •   Bases de Datos:
    • Práctica1
      Resolución de un ejercicio para guardar cierta información en una base de datos utilizando SQL y las sentencias a ejecutar para realizar ciertas consultas.
      Realizado con SQL.

  •   Estructura de Computadores II:
    • Práctica1
      Micro interprete capaz de controlar la máquina de Tanembau que ejecuta un cierto número de macro instrucciones, como prueba se calcula el factorial recursivo.
      Realizado con un simulador de la máquina de Tanembau (incluido).

  •   Programación II:
    • Práctica1
      Juego hundir la flota sin interfície gráfica.
      Realizado en Java.

  •   Estructura de datos:
    • Práctica1
      Estructura de datos para implementar un gestor de impresoras.
      Realizado en Java.

    • Práctica2
      Estructura de datos para implementar un organizador de música que mantenga ordenado los datos.
      Realizado en Java.
    • Práctica3
      Estructura de datos para implementar una aplicación para gestionar y optimizar la estructura de un servidor web (grafos).
      Realizado en Java.

  •   Introducción a los Sistemas Operativos:
    • Práctica1
      Script que renombra varios ficheros a la vez y script que borra de un directorio los archivos que cumplan unas determinadas características.
      Realizado en Bash.

    • Práctica2
      Juego hundir la flota.
      Realizado en ANSI C.
    • Práctica3
      Utilizando las IPC de UNIX hacer que varios procesos puedan jugar al hundir la flota.
      Realizado en C bajo UNIX.

  •   Sistemas Operativos:
    • Práctica1
      Implementación de la parte del sistema operativo de la gestión de procesos, entrada y salida… entre otros.
      Realizado en C bajo MSDOS.

Curso 2002-2003

  •   Apuntes:
  •   Inteligencia Artificial:
    • Práctica1
      Implementación de la busqueda a lo ancho de forma que intentemos conseguir un camino desde una posición inicial a una final.
      Realizado en cLISP.
    • Práctica2
      Implementación de un jugador de tres en raya.
      Realizado en cLISP.
    • Práctica3
      Definición de un tipo de información en el entorno CLIPS.
      Realizado con CLIPS.
    • Sesiones cLISP
      Pruebas en LISP realizadas en laboratorio.
      Realizado en cLISP.
    • Laboratorios CLIPS
      Pruebas realizadas en el entorno CLIPS.
      Realizado con CLIPS.
  •   Lenguajes de programación:
    • Práctica1
      Ejercicios java que muestran las características del lenguaje y del paradigma de programación orientado a objetos puro.
      Realizado en Java.
    • Práctica2
      Simulación de un banco sencillo con sus estructuras de datos.
      Realizado en Java.

    • Práctica3
      Implementación no visual del juego TurboRisk que consiste en ir conquistando paises.
      Realizado en Java.
    • Práctica4
      Ejercicios Smalltalk que muestran las características del lenguaje y del paradigma de programación orientado a objetos puro.
      Realizado en Smalltalk.

    • Práctica5
      Ejercicios Haskell que muestran las características del lenguaje y del paradigma de programación funcional.
      Realizado en Haskell.
    • Práctica6
      Ejercicios Prolog que muestran las características del lenguaje y del paradigma de programación lógico.
      Realizado en Prolog.

  •   Programación concurrente:
    • Práctica1
      Aplicación gráfica que muestra el juego del comecocos donde se han implementado diversos procesos que se ejecutan simultaneamente trabajando sobre el tablero. Se ha realizado un esfuerzo especial en realizar unos comecocos inteligentes para obtener la máxima puntuación. Los comecocos juegan solos sin intervención humana.
      Realizado en ADA y GTK.

    • Sesiones
      Pruebas de programación concurrente en ADA realizadas en el laboratorio.
      Realizado en ADA.
  •   Ingeniería del Software:
    • Práctica1
      Análisis previo de un problema planteado.
      Estudio.
    • Práctica2
      Análisis estructurado de un problema planteado.
      Estudio.

    • Práctica3
      Diseño estructurado: esquema del sistema de menu, definición de la base de datos (SQL) y diseño de los formatos de pantalla.
      Estudio.
    • Práctica4
      Recogida de requisitos: diagrama de actividades general, diagramas de casos de uso y descripción textual de los casos de uso.
      Estudio.

    • Práctica5
      Análisis de requisitos orientado a objetos: metáfora, diagrama estático completo y diagramas de secuencia para todos los casos de uso.
      Estudio.
    • Práctica6
      Diseño orientado a objetos: diseño total de la interficie de usuario y diseño de la persisténcia.
      Estudio.

  •   Sistemas Abiertos:
    • Práctica1
      Implementación de una aplicación web para agencias de seguros de coches que se puedan intercomunicar entre ellas.
      Realizado en Java (J2EE).

  •   Gestión de Empresa:
    • Práctica1
      Plan de empresas y examen resuelto.
      Estudio.

  •   Gestión de la informática:
    • Práctica1
      Exposición y trabajo sobre Enterprise Resource Planning (ERP).
      Estudio.

  •   Proyecto final de carrera:
    • Informe
      Creación de un servidor para la intranet del Departament d’Enginyeria Informática i Matemátiques de la URV.
      Estudio.

    • Presentación
      Transparencias de la presentación del proyecto.
      Transparencias.
    • Aplicación web
      Aplicación web que forma una pequeña parte del proyecto, el resto consistia en crear un servidor usando Software Libre y dando máxima prioridad a la seguridad informática.
      Realizado en PHP.

Curso 2003-2004

  • Práctica1
    Diseño de una interfaz gráfica a partir de unas especificaciones.
  •   Ingeniería del Software I:
    • Práctica1
      Diseño de una solución a un problema utilizando una metodología determinada.
    • Práctica2
      Diseño de una solución a un problema utilizando la metodología DARTS.
    • Práctica3
      Diseño de una solución a un problema utilizando la metodología JSD.
  •   Ingeniería del Software II:
    • Práctica1
      Simulador gráfico del tráfico de una ciudad con control de fluidez.
      Realizado en ADA + GtkAda

  •   Inteligencia Artificial I:
  •   Inteligencia Artificial II:
    • Memoria asociativa
      Memoria asociativa capaz de almacenar patrones de 1000 elementos.
      Realizado en Java

    • Clasificación de datos
      Implementación del algoritmo SOM (Self Organizing Map) para la implementación
      de datos multidimensionales.
      Realizado en Java
  •   Sistemas informáticos de Tiempo Real:
    • Práctica
      Implementación de un mini secuenciador MIDI de tiempo real.
      Realizado en C sobre RTLinux
  •   Redes de computadores I:
    • Práctica 1
      Sniffer que visualiza las cabeceras TCP, UDP y ICMP.
      Realizado en C
    • Práctica 2
      Descarga todas las imágenes de una web especificada.
      Realizado en C

    • Práctica 3
      Sistema (N cliente – 1 servidor) de compartición de ficheros.
      Realizado en C
    • Práctica 4
      Configuración de un servidor web (apache) con certificados de seguridad
      y guia de uso de PGP/GnuPG.
  •   Redes de computadores II:
    • Práctica 1
      Informe sobre como configurar un sistema de enrutado entre computadores
      GNU/Linux.
    • Práctica 2

      Teléfonia por internet (VoIP: Voice over IP) utilizando el protocolo RTP y creando un servidor que soporte un protocolo muy similiar a SIP.
      Realizado en C, GTK y usando las librerias RTP de vovida (incluidas).

    Curso 2004-2005

    •   Apuntes:
    •   Compiladores I:
      • Compilador
        Compilador de miniAda (ada reducido). Analizador léxico, semántico y sintactico.
        Realizado en C + Flex + Bison bajo UNIX.
    •   Compiladores II:
      • Compilador
        Compilador de miniAda (ada reducido). Generación de código intermedio.
        Realizado en C + Flex + Bison bajo UNIX.
    •   Sistemas informáticos I:
      • Simulador robot en marte
        Simulador robot en marte con interficie 3D y comunicaciones entre estación base (tierra) y robot mediante red.
        Realizado en C++ bajo DEV-CPP (MS Windows).
    •   Desarrollo de aplicaciones Internet y Intranet:
      • Práctica 1
        ¿Que es un framework?
        Realizado en Inglés
      • Práctica 3
        Diseño y implementación de un sistema de reservas de habitación de hotel con EJBs.
        Realizado con J2EE

      • Práctica 4
        Componente genèrico para el registro de usuarios.
        Realizado en J2EE
      • Práctica Final
        Implementación de una aplicación J2EE completa que utilice el componente de registro de usuarios y utilice JSPs siguiendo el patrón Modelo-Vista-Control.
        Realizado en J2EE
    •   Ingeniería del Software III:
    • Práctica 1
      Cuestionario sobre redes.
      Realizado en Inglés

    • Práctica 2
      Implementación cliente/servidor de la operación “dividir” usando sockets.
      Realizado en Java
    • Práctica 2.2
      Diseño y implementación de un chat con RMI.
      Realizado con Java

    • Práctica 2.3
      Diseño y implementación de un chat con CORBA.
      Realizado en Java
    • Práctica 2.4
      Diseño y implementación de un chat con RMI over IIOP con callbacks.
      Realizado en Java

    • Práctica 2.5
      Cuestionario sobre el modelo de herencia y modelo de delegación de CORBA.
      Realizado en Catalán
    • Práctica 3.1
      Implementar un protocolo de sincronización por red de reloj.
      Realizado en Java

  •   Ingeniería del Software IV:
    • Práctica 1
      Implementacion de un chat utilizando Remoting.NET y el máximo número de patrones de diseño posibles.
      Realizado en Visual Studio.NET y C#

    • Práctica 2
      Añadir Custom Attributes y Dinamic Proxy a la implementación del chat anterior.
      Realizado en Visual Studio.NET y C#
    • Práctica 3
      Utilizar la programación orientada a aspectos para modificar el comportamiento de un applet.
      Realizado con Java y AspectJ

    • Práctica 4
      Analisis del framework Spring.
      Realizado en Inglés
    • Práctica 5
      Uso de shared assemblies con GAC y componentes COM desde .NET.
      Realizado en Visual Studio.NET y C#

  •   Seguridad y Hacking:
    • Práctica 2
      Monitorización con sniffer.
      Realizado en Catalán

    • Práctica 3
      Diseño de un sistema de reglas (firewall).
      Realizado con Firewall Builder
    • Práctica 4
      Uso de utilidades de red y cuestionario.
      Realizado en Inglés

    • Práctica 5
      Detección de un escaneo de puertos.
      Realizado con Snort
    • Práctica 6
      Instalación de un Honeypot.
      Realizado con Honeyd

    • Práctica final
      Implementación de un sistema complejo con zona demilitarizada (DMZ), firewall, honeypod y reportes de actividad con snort.
      Realizado en Catalán
  •   Robótica industrial:
    • Práctica 1
      Control de un brazo robotizado CRS A255 para que sea capaz de preparar, servir y ofrecer una copa de cava.
      Realizado en RAPL
    • Práctica 2
      Diseño e implementación de un planificador de movimientos para determinar las trayectorias de 7 aviones del ejercito del aire en diversas formaciones.
      Realizado con Visual Studio.NET, C# y SDL.NET

  •   Simulación:
    • Práctica 1
      Implementación de generadores aleatorios Fibonacci, Randu y GCL.
      Realizado en Mono y C#

    • Práctica 2
      Analizar 7 ficheros que funcionan con Rockwell Arena.
      Realizado en Catalán
    • Práctica 3
      Diseñar dos simuladores para comparar un sistema monoprocesador multiusuario i un sistema multiprocesador multiusuario.
      Realizado con Rockwell Arena

    • Práctica 4
      Diseñar un sistema multiprocesador de 128 CPUs con 3 tipos de trabajos (pequeños, medianos y grandes).
      Realizado con Rockwell Arena
  •   Proyecto final de carrera:
    • Informe
      Design of a Massively Multiplayer Online Game (Diseño de un juego masivo multijugador online)
      Estudio en Inglés.
    • Demo
      Demo cliente/servidor de un mundo virtual 3D por donde es posible desplazar un personaje (robot).
      Realizado en C++, OpenTNL y OGRE 3D.