Project

General

Profile

Acerca del proyecto

Problemática

Actualmente existen múltiples problemas de los alumnos y docentes a la hora de poner en práctica la programación, el proyecto aborda principalmente:

  • Accesibilidad, tanto alumnos como profesores requieren de instalar Software en sus equipos personales o prestados por la universidad, tanto compiladores, editores de texto, dependencias requeridas para el uso de cierto lenguaje de programación, etc. Este aspecto toma varios factores, principalmente la falta de prestación hardware, inexperiencia instalando ambientes de programación, tiempo para la preparación del ambiente, factores económicos, factores temporales como problemas con el equipo, etc.
  • Vías de comunicación, no existe una vía rápida de comunicación para poder discutir sobre código de programación, tanto entre alumnos en caso de dudas, y entre alumno profesor para realizar consultas. Todo esto se realiza enviando mensajes o correos con el archivo adjunto, o simplemente de forma sincrónica en un entorno específico.
  • Entorno, al programar en algunos lenguajes de programación, hay veces que sucede que el código de programación funciona con ciertas dependencias o versiones que no necesariamente las cumplen sus pares o el docente, por lo cual habrá problemas de ejecución recurrentes en ambientes con diferentes parámetros de ejecución. Para un docente, el poder evaluar este tipo de problemas puede ser una gran pérdida de tiempo.
  • Trabajo en equipo, considerando que no todos los alumnos y principalmente los de primeros años conocen como utilizar repositorios Git para el versionado de un proyecto, usualmente recurren a que solo algunos integrantes tengan el código principal y si uno de los alumnos del equipo desea arreglar algún error, este tiene que ponerse de acuerdo con el alumno correspondiente. Lo definido anteriormente, definitivamente no permite la programación en equipo, y esto puede causar problemas en las bases del conocimiento, al tener encargados del código del proyecto, los otros colaboradores no pueden participar activamente, siendo posible causarles deficiencias futuras en sus capacidades de programación.

Solución propuesta

El proyecto consiste en una plataforma web orientada al aprendizaje de programación básica e intermedia, la cual será implementada dentro del departamento de Ingeniería Civil en Computación e Informática de la Universidad de Tarapacá. Debido a que los usuarios principales son los alumnos y docentes, se explicarán las funcionalidades principales de cada uno.

La idea principal, es que los alumnos tengan un lugar en donde poder aprender a programar o experimentar con algún lenguaje de programación sin la necesidad de tener el hardware o software adecuado (compiladores, editores de texto, IDEs, etc) y en cualquier lugar con conexión a internet. Esto funcionará a través de repositorios personales de los alumnos en donde podrán compartir carpetas o archivos con sus compañeros y poder trabajar programando colaborativamente, además de poder probar el código a través de un compilador embebido en la aplicación. Otra funcionalidad será el poder realizar talleres o evaluaciones que serán definidas por el docente, en donde se trabajará en conjunto en tiempo real.

Los docentes que requieran utilizar esta aplicación web para la realizar la enseñanza a sus alumnos, podrán inscribir a los alumnos a un curso virtual correspondiente a la asignatura dentro de la aplicación. Dentro del curso virtual, se podrán crear recursos de aprendizaje en los cuales los alumnos podrán acceder en cualquier momento, además de poder crear talleres en donde los alumnos puedan participar tanto individualmente como en grupos (definido por el docente), y trabajar con respecto a un enunciado que él defina pertinente, mientras los alumnos trabajan en el taller, el profesor podrá monitorizar el avance de cada uno de los grupos. Luego, una vez finalizado el taller, el docente tendrá acceso al desarrollo de los alumnos de la actividad para realizar la respectiva evaluación.

Propósito y justificación del proyecto

El proyecto surge de la necesidad de mejorar el estado actual de la enseñanza y aprendizaje de programación y trabajo en equipo de los estudiantes del Departamento de Ingeniería Civil en Computación e Informática de la Universidad de Tarapacá, mediante un sistema que contenga las herramientas necesarias para este fin, permitiendo que sea accesible para todos los involucrados. Si consideramos un ambiente de desarrollo de software actual, se requieren de habilidades y hábitos, tales como; buen manejo al explicar código de programación, utilizar lenguaje técnico, realizar una buena documentación, conocimiento amplio en diversos lenguajes de programación y experiencia en el trabajo en equipo.

El propósito principal del proyecto es, hacer más accesible las condiciones de trabajo mencionadas a los estudiantes, de manera que estos tengan un aprendizaje temprano significativo de cómo funciona el desarrollo de software en la actualidad. Además, de que estos puedan desarrollarse como futuros profesionales, en cualquier lugar, sin importar las condiciones, simplemente con un navegador web y acceso a internet.

Otro punto importante, son las evaluaciones, actualmente se realizan de forma independiente por cada alumno que curse la asignatura, cada uno en un entorno de trabajo diferente, por lo cual el docente al finalizar la evaluación, tiene que recolectar y organizar el conjunto de evaluaciones realizadas para luego revisarlas una a una. Es por esto, que el sistema propuesto va a permitir mejorar el tiempo de revisión al ser centralizado, con las herramientas necesarias para llevarlo a cabo.

Como referencia a este proyecto, existen herramientas de trabajo colaborativo, tales como Google Drive con sus herramientas de ofimática o GitHub para alojar proyectos utilizando un sistema de control de versiones.

Alcance

  • Los lenguajes de programación considerados para la compilación en consola virtual de la plataforma, son; Python, C, C + +, Java y JavaScript.
  • La compilación online tendrá limitaciones funcionales, en cuanto a librerías utilizables, las entradas posibles, salidas que serán limitadas a resultados de consola y un tiempo límite de espera por una respuesta, además de un límite de uso de memoria RAM y CPU.
  • El usuario va a tener la posibilidad de instalar librerías a través de comandos en la consola.
  • El diseño de experiencia de usuario (UX) tendrá un nivel inferior al actual en el mercado, además no será orientado a móviles.

Requerimientos

  • Las cuentas serán creadas por los usuarios administradores del sistema, las cuales serán de alumnos o docentes.
  • Solo los usuarios registrados tendrán acceso a la plataforma.
  • Los usuarios podrán crear repositorios, los cuales permitirán gestionarlos a partir de carpetas y archivos.
  • Los repositorios podrán ser compartidos a otros usuarios, los cuales podrán verlos o editarlos.
  • Los usuarios podrán programar en un ambiente con un texto colaborativo, además podrán compilar o ejecutar código de programación en una consola embebida en la plataforma web del sistema.
  • Todos los cambios ocurridos en el sistema tienen que ser guardados de forma automática y tiene que tener un registro de cambios realizados.
  • Las cuentas de los docentes pueden crear repositorios de tipo aula virtual, los cuales vienen con funcionalidades extras, como carpeta para los recursos de las clases, gestión de estudiantes y realizar evaluaciones o talleres en tiempo real.
  • El sistema debe ser montado en el servidor del departamento de la carrera.