Proyecto "Coordinador De Ayudantia"

Integrantes: Nicolás Frois

Contenidos
  1. Descripcion del problema
  2. Analisis del problema y casos de uso
  3. Especificaciones
  4. Ejemplos
  5. Descargas

Descripción

Un problema que he identificado durante mi estadía en la universidad es lo engorroso que se hace coordinar el horario de ayudantía en algunos ramos, esto se da principalmente en ramos en que el alumnado es de carreras diferentes, por lo que la existencia de un horario en común entre los alumnos y el ayudante se dificulta. En la actualidad el método mas utilizado para coordinar el o los horarios de ayudantía es un proceso sin un mayor apoyo tecnologico, el ayudante asiste a la sala, y se recorren uno a uno los horarios disponibles preguntando, a mano alzada, que alumnos tienen tope, esto genera discusiones innecesarias, perdida de tiempo, perdida de clases, y confusión, sin embargo, todo esto puede ser evitado. Se propone una solucición basada en lo aprendido en el curso sobre comunicación de procesos no concentrados, el programa propuesto es capaz de definir 1 o 2 horarios de ayudantía facilitando la tarea del ayudante calculando las mejores opciones entre los horarios ingresados, de manera inmediata, el mayor consumo de tiempo se llevará acabo tan solo al ingresar el horario de cada alumno y ayudante a coordinar. Cabe destacar que la solución aqui expuesta no esta lista para ser implementada en casos reales debido a que esta debiese ser mucho mas amigable con los usuarios sin conocimientos de computación, considero la solución que se presenta acá como un primer paso para poder llegar a una aplicación de real utilidad dentro de la universidad.


Analisis

El sistema desarrollado es un Servidor que ejecuta el ayudante y que atiende Clientes que son los alumnos del ramo a coordinar.

A continuación se detalla la secuencia de pasos que el programa toman para la coordinación de ayudantía:

  • Ayudante ejecuta el Servidor, ingresa el nombre del ramo y su horario.


  • Servidor queda atento a conexiones de alumnos que deben tomar la ayudantía.


  • Alumnos se conectan con el servidor a través de Telnet y contestan con su nombre y su horario actualmente ocupado, al servidor.


  • Se calcula la cantidad de conflictos de cada bloque horario, y se analizan los siguientes casos:
    1. Hay mas de 1 bloque libre de conflictos (Caso ideal).
    2. Hay solo un 1 bloque libre de conflictos.
    3. No existen bloques libres de conflictos.


  • Para cada caso anterior se procede de manera diferente
    1. Si hay mas de un bloque libre de conflictos, se deja a elección del Ayudante el/los horarios a fijar.
    2. Si hay solo un bloque libre de conflictos se fija dicho horario y se propone como segundo horario el bloque con menos conflictos, si existe mas de un bloque con la misma minima cantidad de conflictos, el segundo horario a fijar lo determina el ayudante.
    3. Si no existen bloques libres de conflictos, el ayudante deberá escoger uno de los bloques con la minima cantidad de conflictos, el programa procederá a calcular una nueva situación considerando solo a los afectados con el horario fijado.


  • Finalmente se comunica a los clientes los resultados obtenidos y se finaliza la comunicación.
  • Caso de uso

    1. Ayudante y Alumnos: El Ayudante y los alumnos deberán ingresar sus horarios informando los bloques horarios que no pueden asistir a la ayudantía, a continuación se muestra la secuencia de un caso de uso del programa.


    Especificaciones

    Como antes se dijo, este programa cumple las funciones básicas del servicio de coordinación de horario para ayudantía, sin embargo aún le falta mucho para llegar a ser una aplicación usable en la vida real debido a que es de muy dificil acceso a los usuarios a los que está destinada, como siguiente paso, es necesaria una interfaz de usuario visual que indique de manera mas clara el estado del programa.

    Actualmente la información debe ingresarse de manera aún engorrosa, el horario se debe ingresar por día como una cadena de hasta 7 digitos '0' o '1' en que 0 representa un bloque disponible para el usuario y 1 representa un bloque ocupado para el usuario, la primera posicion representa al primer bloque del día, hasta llegar a la ultima posicion de la cadena que representa el septimo bloque del día.

    A continuación se muestra un ejemplo de lo antes descrito:



    A dicho horario corresponería la secuencia:

    1101100


    Ejemplo

    A continuación se presenta un ejemplo simulado de un ayudante y 3 alumnos:

    1. Ayudante inicia el Servidor y completa la información solicitada:


    2. Se conecta el primer cliente (alumno), y completa la información solicitada:


    3. Luego de que todos los alumnos contesten, el servicio ayuda a fijar los mejores horarios y entrega los resultados a los clientes:

    Dificultades

      Las reglas

      La principal dificultad fue el manejo de la información y el como hacer de este un proceso mas sencillo y rápido de calcular, esto se simplificó al momento de analizar los posibles casos que podía adoptar el problema, luego de esto la implementación fue mucho mas llevadera.

      UI

      La idea de que exista esta aplicación es para facilitar la vida universitaria en un aspecto de solución relativamente sencilla, sin embargo, para que este programa sea realmente útil, es necesario que los usuarios puedan interactuar con el programa mediante una interfaz gráfica, de esta forma se merma la barrera de entrada al programa que actualmente es bastante alta.


    Descargas

    Para descargar el código fuente, haz click aquí