Propuesta base del proyecto de investigación

Planteamiento del problema

Actualmente el mundo está encaminado a una nueva revolución industrial debido a la transformación digital que han venido sufriendo las empresas en los últimos años, lo cual representa un gran reto para las instituciones de formación profesional y especializada en el área de la ingeniería de sistemas, específicamente en la rama de desarrollo de software. Colombia es un país que tiene una gran demanda de ingenieros de desarrollo que proviene tanto desde el exterior como desde el interior del país, la demanda siempre ha superado la oferta y el déficit de buenos ingenieros de desarrollo continúa en crecimiento. Existen diversos síntomas que causan dicha situación y están relacionados con la dificultad en el aprendizaje de los fundamentos de programación, la abismal brecha que existe entre los conceptos teóricos de programación y la práctica como tal, la preferencia de los profesionales por tomar otras áreas de la ingeniería de sistemas diferentes al desarrollo de los propios sistemas, la falta de formación técnica y experiencia laboral en los desarrolladores, además de otras cuantas hipótesis más que buscan resolver esta problemática que de continuar empeorando dejará a Colombia sin personas capaces de construir buena tecnología en un futuro no muy lejano.


Para el desarrollo de este proyecto abordaremos un solo problema de toda la problemática en cuestión, el cual se centra en la dificultad que tienen los profesionales para el aprendizaje de los fundamentos de programación y la abismal brecha que existe entre los conceptos teóricos y la practica como tal, lo cual se refleja en el déficit de buenos desarrolladores que hay actualmente en las empresas colombianas, que actualmente se prevé en 70 mil profesionales en programación para el 2019, esto según cifras de la Federación Colombiana de la Industria de Software y Tecnologías de la Información (Fedesoft).

Título de la investigación

Evaluación del impacto en la enseñanza del curso de introducción a la programación de la UNAD para el segundo semestre del 2019 usando técnicas de gamificación.

Objetivo general

Evaluar el impacto en la enseñanza del curso de introducción a la programación de la UNAD en el segundo semestre del 2019 por medio de la implementación de un prototipo de apoyo usando técnicas de gamificación.

Objetivos específicos

Definir los requerimientos y el diseño del prototipo en su primera fase, incluyendo técnicas de gamificación.
Implementar el prototipo funcional según los requerimientos y las especificaciones de diseño definidas.
Demostrar el funcionamiento del prototipo desarrollado en una prueba piloto en el curso de introducción a la programación de la UNAD.
Analizar el impacto generado en los estudiantes y docentes al introducir la herramienta de apoyo en el curso de introducción a la programación de la UNAD.

Pregunta de Investigación

¿Cuál es el impacto que genera en los estudiantes y docentes el contar con una herramienta de apoyo en la enseñanza del curso de introducción a la programación que cuente con técnicas de gamificación?

Justificación

Es innegable la gran relevancia que ha alcanzado el desarrollo de software en la actual era de la información, en la cual las personas y los dispositivos se conectan en una gran red que interviene cada vez más en todos los aspectos de la vida a una velocidad abrumante, donde el poder computacional permite la resolución de diversos e importantes problemas mediante software.

Claramente, estos avances tecnológicos y culturales requieren de profesionales altamente capacitados en las áreas relacionadas con la ingeniería de software y en especial en el desarrollo de software de calidad que puedan aprovecharse para resolver problemas relevantes y de alto impacto.

Por tanto, la propuesta se enfoca en encontrar una forma de garantizar que los estudiantes se interesen en el área de la programación y se encuentren con un ambiente amigable que les permita formarse de manera sólida en sus primeros pasos. En caso de tener éxito, podría convertirse en un modelo que puede permear niveles intermedios y avanzados, propendiendo por incrementar la calidad en la enseñanza y el aprendizaje de conceptos envueltos en gran complejidad.

Se espera que el impacto generado afecte tanto a estudiantes como a docentes, en donde los primeros puedan evidenciar una aprehensión adecuada de los conceptos básicos de programación que se refleje en una mejoría en los promedios de calificaciones con respecto a periodos anteriores, así como en el favorecimiento a la mejora en la aprehensión significativa de los conceptos de los cursos siguientes debido al fortalecimiento en las temáticas esenciales y la motivación inyectada. En el caso de los docentes, el prototipo busca que estos dejen de preocuparse por aspectos de menor importancia, pudiendo enfocarse en el apoyo a los estudiantes con las dificultades relacionadas directamente en el entendimiento de los conceptos de programación.

Como repercusión para el país, esto supondría una mejora relevante en la calidad y cantidad de profesionales, lo cual permitiría avanzar para acortar la brecha existente frente a la gran demanda existente en esta disciplina, incrementando la competitividad del país.

Debido a que la solución planteada se configura como un producto de software de tipo web, no se vislumbran dificultades técnicas para su realización porque se trata de una tecnología de amplio conocimiento hoy, basada en estándares y lenguajes abiertos que están ampliamente apoyados por documentación y comunidades abiertas en línea que reducen la complejidad en su desarrollo.

Adicionalmente, debido a que el entorno de ejecución se da del lado del cliente, las limitaciones se imponen allí, las cuales se reducen al mínimo por apuntar a docentes y estudiantes de la UNAD, situación que, además, supone que los gastos en infraestructura son apenas simbólicos ya que pueden pertenecer al repositorio institucional como un Objeto Virtual de Aprendizaje (OVA) o integrarse dentro del Sistema de Gestión del Aprendizaje (LMS) de la UNAD.

Finalmente, se cuenta con un equipo de trabajo de cinco personas, con las cuales pueden distribuirse las tareas de planificación y establecimiento de requerimientos, diseño, desarrollo, aseguramiento de la calidad, gestión de la prueba y análisis de los resultados obtenidos.

Glosario de términos

 Algoritmo
Método que describe cómo se resuelve un problema en término de las acciones que se ejecutan y especifica el orden en que se ejecutan estas acciones. Los algoritmos ayudan al programador a planificar un programa antes de su escritura en un lenguaje de programación.

Aplicación informática
Un programa de ordenador que se compra ya realizado y listo para usar. Las hay de muy diversos tipos, según para qué propósito se hayan diseñado: procesadores de texto, bases de datos, programas de contabilidad, de facturación, etc.

Aplicación web
Programa escrito en lenguajes que pueden ser interpretados por los navegadores web y que pueden acceder a datos y procesos avanzados en servidores. Este tipo de aplicaciones son ejecutadas principalmente en internet, sin necesidad de su instalación en el equipo local.

Framework
Marco de aplicación o conjunto de bibliotecas orientadas a la reutilización para facilitar el desarrollo de aplicaciones.

Gamificación
Estrategia educativa que busca utilizar algunas mecánicas usadas en los juegos de video con el fin de conseguir mejores resultados en cuanto al aprendizaje de las temáticas y la motivación en los estudiantes.

HTML
HyperText Markup Language: el lenguaje de descripción de la estructura de documentos con los cuales son creadas habitualmente las páginas en Internet.
HTTP
El protocolo usado en las páginas del WWW (HyperText Transfer Protocol).

Lenguaje de programación (programming language)
Notación utilizada por los programadores para escribir programas. Un lenguaje tiene una sintaxis (las palabras y símbolos utilizadas para escribir códigos de programa), una gramática (las reglas que definen una secuencia de palabras y símbolos significativos y correctos) y semántica. Java es un lenguaje de programación.

Metodologías ágiles
Por definición, las metodologías ágiles son aquellas que permiten adaptar la forma de trabajo a las condiciones del proyecto, consiguiendo flexibilidad e inmediatez en la respuesta para amoldar el proyecto y su desarrollo a las circunstancias específicas del entorno.

Página web
Una de las páginas que componen un sitio de la WorldWideWeb. Un sitio web agrupa un conjunto de páginas afines. A la página de inicio se la llama "home page".

POO
Paradigma de programación que implica resolver los problemas en el código organizándolos en forma de objetos, como se representarían en la vida real, estableciendo sus características y comportamientos en clases de componentes reutilizables.

Programador (progammer)
Personas que diseña, escribe, prueba y depura programas.

Programa
Un conjunto de órdenes para un ordenador. Cuando se trata de un programa ya terminado que se compra, se suele hablar de una Aplicación Informática. Los programas se deben escribir en un cierto lenguaje de programación. Los lenguajes de programación que se acercan más al lenguaje humano que al del ordenador reciben el nombre de "lenguajes de alto nivel" (como Pascal); los que se acercan más al ordenador son los de "bajo nivel" (como el ensamblador).

Prototipo
Primer ejemplar que se fabrica de una figura, un invento u otra cosa, y que sirve de modelo para fabricar otras iguales, o molde original con el que se fabrica.

Python
Lenguaje de programación interpretado de alto nivel y de propósito general enfocado en la legibilidad de su código y una gran versatilidad debido al soporte de diversos paradigmas de programación.

Software
Término general que designa los diversos tipos de programas usados en computación.

Widget

Pequeña aplicación o programa ejecutado por un motor de widgets, cuyo objetivo fundamental es dar fácil acceso a funciones frecuentemente usadas y proveer de información visual (relojes de arena, calculadoras, etc.)

Planeación de la solución


La importancia que tiene la tecnología en la actualidad, la convierte en indispensable, mejorando procesos normalmente administrativos, sin generar mayor trauma en infraestructura y en personal, como por ejemplo el archivo de una oficina, evitando gastos en logística de archivo y de almacenamiento.

Análisis de la situación: Teniendo en cuenta la alta demanda que tiene el mercado de profesionales en el ámbito de programación, se hace imprescindible, la formación de programadores idóneos para un comercio cada vez más competitivo, lo que trae un problema que muestran muchas personas que estudian esta profesión y es dificultad en el aprendizaje en lo que el desarrollo de software concierne, generando un déficit de profesionales idóneos en Colombia.

Formulación:  Definir el impacto que se puede obtener la implementación en primera fase de un prototipo utilizando técnicas de gamificación, fortaleciendo de esta forma el aprendizaje didáctico de los estudiantes, mejorando su aprendizaje general.

Generación de alternativas: Con la definición de los requerimientos y diseño del prototipo se pretende realizar la evaluación del impacto que tiene la implementación de este prototipo a través de gamificacion a los estudiantes de ingeniería de sistemas, fortaleciendo la introducción a esta carrera, para así mejorar la calidad de ingenieros y evitar de igual manera la migración de la carrera.
Esto se hará con la implementación del prototipo, para el curso de introducción a la programación de la UNAD, donde se explique de manera más amena para que la aprehensión de conocimientos sea mucho mejor, para así incrementar el número de ingenieros que se dediquen a la programación de sistemas de información.
Al contar con un equipo conformado se pretende realizar la planificación, desarrollo, diseño y el análisis de los resultados obtenidos.

Evaluación: Con los datos obtenidos se pretende estudiar el impacto que la implementación de este prototipo traerá, analizando una media donde se pueda calcular de manera rápida, los niveles y mejoras obtenidos con el nuevo prototipo.

Decálogo de Bernal


CONCEPTO
DESCRIPCIÓN
Cronología (¿Cuando?)
Se realiza la propuesta del proyecto para la construcción de un prototipo funcional de la aplicación propuesta basados en el cuadro de síntomas identificados, los cuales pueden ser los principales factores que afectan el aprendizaje de buenas prácticas de programación.
Axiomas (¿Quién?)
A lo largo de nuestras carreras académicas y laborales se han identificado falencias en cuando a la aplicación de buenas prácticas de programación en el área del desarrollo de software, por lo que se ha realizado una propuesta por parte del equipo para disminuir dicha falencia. Las personas implicadas en el proyecto seriamos Víctor Hugo Arias Valencia, Carlos Fernando Vargas Vélez, Oscar William Morales Díaz, Cristhian Andrés Zapata, Lina Maritza Galvis.
Método (¿Cómo?)
Tomando la propuesta del compañero Víctor Hugo Arias Valencia, que consiste en que por medio de un proyecto de investigación podamos llevar a cabo la construcción de un prototipo funcional de una aplicación que permita facilitar y mejorar el aprendizaje y la aplicación de buenas prácticas en el área del desarrollo de software.
Ontología (¿Qué?)
La búsqueda de mejorar la enseñanza en el área del desarrollo de software, mejorando la aplicación de buenas prácticas de programación en los profesionales de la ingeniería de desarrollo.
Tecnología (¿Con qué?)
La tecnología base para la construcción de la aplicación como proyecto para mejorar el aprendizaje y la aplicación de buenas prácticas de desarrollo de software, es el lenguaje de programación Phyton.
Teleología (¿Para qué?)
Para apoyar los procesos de enseñanza relacionado con el desarrollo de sistemas de software, específicamente fortaleciendo los conocimientos para la aplicación de buenas prácticas de programación en los aprendices.
Topografía (¿Donde?)
Esta propuesta es realizada para apoyar el proceso de enseñanza en los cursos relacionado con el desarrollo de software de la Universidad Nacional Abierta y a Distancia – UNAD.
Ecología (¿Contra qué?)
Prevenir el crecimiento de profesionales en ingeniería de desarrollo con conocimientos para el desarrollo de aplicaciones que no se basan en la aplicación de buenas prácticas y que generan soluciones poco óptimas para la industria del software.
Etiología (¿Por qué?)
Porque durante el tiempo académico y laboral vivido por algunos de nosotros hasta este momento, nos ha mostrado que muchos de los profesionales en el área del desarrollo de software carecen de conocimientos relacionados con los paradigmas modernos de programación y la aplicación de buenas prácticas en el desarrollo de productos de software.
Experiencia (¿Cuánto?)
Este proyecto está basado en investigación aplicada, ya que se usa tecnología web y de fácil acceso para el desarrollo de conocimientos relacionado con la aplicación de buenas prácticas de programación y el uso de paradigmas de programación modernos en estudiantes del área de la ingeniería de sistemas y afines.


Con respecto a la tecnología moderna o de alto impacto

 ¿Qué es? y ¿para qué sirve?
Es la tecnología de la época en la que actualmente vivimos,   y que ha ido evolucionado o renovando en muchos aspectos comparando tecnologías antiguas como por ejemplo en los dispositivos electrónicos y otros tipos de tecnología, la tecnología moderna ha mejoran la vida a las personas, es decir que mientras más avance la tecnología, las personas tienen un mejor confort.

La aplicación educativa es una fuente para que los estudiantes obtengan de manera exitosa los conocimientos en el aprendizaje de los fundamentos de programación, y que adquieren las habilidades apropiadas para afrontar los conceptos intermedios.

Sirve para generar cambios en su mayoría positivos a los estudiantes, permitiendo mejorar la calidad de aprendizaje y ayudándonos a tener experiencias agradables en la manera como aprendemos.


¿Cuáles son las características principales?
·       Los desarrolladores tienen un gran potencial de agregar valor en distintas industrias
·       Facilitan las comunicaciones
·       Generar la capacidad de solucionar problemas propios de empresas
·       Con el software propuesto se ayuda a los estudiantes a ser autodidactas
·       Se potencializa la capacidad de tratar con demás personas Tutores y compañeros.

 ¿Cuáles son las ventajas y desventajas?
Ventajas

Los estudiantes y usuarios del software tendrán un mejor control de su propia experiencia de aprendizaje, a través de la cual podrán aprender de mejor manera.
Constituyen una nueva, atractiva, dinámica y rica fuente de conocimiento para los futuros desarrolladores de software
Se puede adaptar el software a las características y necesidades de su grupo

Desventajas
El software debe ser cuidadosamente diseñado con el propósito de asegurar que la atención de los estudiantes y mantener el interés en el desarrollo de software
Los estudiantes pueden sentir frustración al inicio cuando están aprendiendo a manejar el software
Requiere de un navegador y la conexión a internet inhabilitando personas que no tengan tantas facilidades de acceder
  
¿Cuáles son las aplicaciones o usos?
Medio de enseñanza: contribuye a la participación activa, tanto individuales como colectivas de los estudiantes, además es atractiva, dinámica y contiene una alta fuente de información.
Enriquece el campo de la Pedagogía: al incorporar la tecnología de punta que revoluciona los métodos de enseñanza aprendizaje.

 ¿Por qué se puede aplicar en determinado problema o en ciertos sistemas?
Los medios tecnológicos de la aplicación, no solamente deben ser usados por los tutores, sino que deben resultar de verdadera utilidad a los estudiantes para el desarrollo de la interacción y habilidades, que sirven de apoyo al proceso de enseñanza y contribuyen decisivamente al logro de los objetivos planteados, lo cual hace que este proyecto genere un impacto positivo en la comunidad estudiantil, al avanzar en el procesos educativos que le parecían complejos y con la aplicación se hace más fácil su aprendizaje, y allí en este proceso, las herramientas tecnológicas establecen un puente interactivo, motivador, con una participación constante que lleva a tener excelentes resultados.

¿Por qué se considera una tecnología de punta o moderna?
Porque las aplicaciones web han resuelto muchísimos problemas en la actualidad, esta aplicación educativa es innovadora y ayudara a la adquisición de conocimientos y al desarrollo de habilidades anteriormente impensables para los aprendices de desarrollo de software, además sirven como como apoyo al docente. Y de esta manera, los estudiantes ya no necesitan presencia o acompañamiento directo del docente y puede aprender por su propia cuenta. 

¿Qué trabajos se han realizado por diversos investigadores alrededor del tema?
Gates, B., Rinearson, P., & Myhrvold, N. (1997). Camino al futuro. Madrid: McGraw-Hill.
P. 163 “Las computadores con interfaces sociales podrán entender como presenta información de manera que esta esté adaptada al usuario particular.
Muchos programas de software educativo tendrán distintas personalidades, y el estudiante y el programa tendrán que conocerse.”
 
Klingberg, L. (1989). Introducción a la didáctica general. Berlín: la gente y el conocimiento.

“Como medio de enseñanza se denominan todos los medios materiales necesitados por el maestro o el alumno para una estructuración o conducción efectiva y racional del proceso de instrucción y educación a todos los niveles, en todas esferas de nuestro sistema educacional y para todas las asignaturas, para satisfacer el plan de enseñanza”