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”