Logo Studenta

Desenvolvimento de Videojogo Interativo

¡Este material tiene más páginas!

Vista previa del material en texto

Desarrollo de Videojuego Interactivo que Estimule la Lógica de Programación 
a Los Estudiantes de Ingeniería de Sistemas de Primeros Semestres de la Universidad 
Cooperativa de Colombia 
 
 
 
 
 
 
Juan Camilo Muñoz Rivera 
Oscar Mauricio Peña Escobar 
 
 
 
 
 
 Asesor: 
José Martín Delgado 
Ingeniero en Sistemas 
 
 
 
 
 
 
 
 
Universidad Cooperativa de Colombia 
Facultad de Ingenierías 
Programa de Ingeniería de Sistemas 
Bogotá, 2021 
 
Desarrollo de Videojuego Interactivo que Estimule la Lógica de Programación 
a Los Estudiantes de Ingeniería de Sistemas de Primeros Semestres de la Universidad 
Cooperativa de Colombia 
 
 
 
 
 
 
Juan Camilo Carrillo Rivera 
Oscar Mauricio Peña Escobar 
 
 
 
 
Análisis sistemático de literatura para optar al título de ingeniero de sistemas 
 
 
 
 Asesor: 
José Martín Delgado 
Ingeniero en Sistemas 
 
 
 
 
 
 
Universidad Cooperativa de Colombia 
Facultad de Ingenierías 
Programa de Ingeniería de Sistemas 
Bogotá D.C 
 
NOTA DE ACEPTACIÓN 
 ______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
 
PRIMERA ENTREGA 
______________________________________ 
______________________________________ 
 
 
SEGUNDA ENTREGA 
 ______________________________________ 
______________________________________ 
 
 
 
 
 
 
 
 
OBSERVACIONES 
 ______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
______________________________________ 
 
 
 
 
AGRADECIMIENTOS 
En primera medida queremos agradecer a Dios por darnos la fuerza salud y entendimiento al 
llegar a este punto del camino. En segunda medida agradecemos a nuestros padres y personas 
aledañas, quiénes han sido un apoyo fundamental para este proceso educativo y crecimiento 
profesional. 
Por último, queremos agradecer a cada docente que nos atribuyó conocimiento para nuestro 
crecimiento profesional y en especial a nuestro tutor que nos dio su apoyo guía en cada 
momento de este proyecto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RESUMEN 
En el presente documento se plasma desde la planeación, diseño, y desarrollo de un 
videojuego interactivo para estudiantes de primeros semestres de ingeniería en sistemas de 
la Universidad cooperativa, esto con la finalidad de que por medio de este videojuego se 
pueda enseñar de una manera didáctica los conceptos básicos de la programación por medio 
de puzles sencillos. 
 
Esta idea surge a consecuencia de la recolección de datos por medio de encuestas realizadas 
a estudiantes de primeros semestres de la Universidad, en las cuales se busca determinar 
porque se refleja una reducción al no optan por seguir la rama del desarrollo del software. Al 
realizar un análisis detallado y una comparativa entre los estudiantes de primero y segundo 
semestre de ingeniería de sistemas, se llega a conclusión que las metodologías 
convencionales son un factor clave del por qué se presenta esta reducción. 
 
Teniendo en cuenta el análisis de los datos recolectados, se opta por el desarrollo de un 
videojuego en 3D en el motor Unity. En el cual, se reflejarán los conceptos básicos de la 
programación yendo desde las variables, sentencias de decisión, y ciclos repetitivos. Esto con 
la finalidad de que por medio de este videojuego se incentive y se muestre a los estudiantes 
de primer semestre de ingeniería de sistemas de manera interactiva enseñar e incentivar el 
aprendizaje de la programación. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CONTENIDO 
 
1. Definición del Tema a Tratar9 
1.1 Antecedentes10 
2. Justificación11 
3. Desarrollo Organizado y Sistemático de la Revisión Bibliográfica12 
3.1 Marco Teórico12 
3.1.1 Algoritmo12 
3.1.2 Lenguaje de programación13 
3.1.3 Programación Orientada a Objetos (POO)13 
3.1.4 Librerías14 
3.1.5 Sentencias15 
3.1.6 Variables15 
3.1.7 Estructura de decisión16 
3.1.8 Ciclos repetitivos16 
3.1.9 Arreglos (Arrays)17 
3.1.10 Juegos interactivos18 
3.1.11 Puzles19 
3.1.12 Programación Extrema (XP)20 
3.2 Marco Conceptual24 
3.2.1 Unity24 
3.2.2 Adobe Mixamo25 
3.2.3 Adobe Fuse25 
3.2.4 C#25 
3.2.5 C++25 
3.2.6 MySQL25 
3.2.7 Entorno Virtual de Aprendizaje25 
3.3 Revisión del Estado del Arte26 
3.3.1 Análisis de las herramientas Unity y Blender para el desarrollo de video juegos 
con enfoque educativo26 
3.3.2 Videojuego educativo para ayudar a comprender los principios básicos de la 
programación y desarrollar la habilidad lógica en niños de educación básica27 
3.4 Diseño de la Solución28 
3.4.1 Planificación29 
3.4.1.1 Historias de Usuario29 
3.4.1.2 Plan de entregas29 
3.4.1.3 Plan de Iteraciones29 
3.4.1.4 Reuniones diarias de seguimiento32 
3.4.2 Diseño32 
3.4.2.1. Simplicidad32 
3.4.2.2 Manual de usuario36 
4. Análisis y Discusión40 
4.1 Análisis40 
4.2 Discusión40 
5. Recomendación41 
6. Conclusiones42 
Referencias43 
Anexos47 
Anexo 1. Encuestas realizadas a estudiantes de primer y segundo semestre de la 
Universidad Cooperativa de Colombia.47 
Anexo 2. Historias de Usuario54 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LISTA DE TABLAS 
Tabla 129 
Tabla 229 
Tabla 330 
Tabla 430 
Tabla 530 
Tabla 631 
Tabla 732 
 
 
 
LISTA DE FIGURAS 
Figura 133 
Figura 233 
Figura 334 
Figura 4¡Error! Marcador no definido. 
Figura 5 ................................................................................................................................. 30 
Figura 6 ................................................................................................................................. 31 
Figura 7 ................................................................................................................................. 31 
 
 
 
 
 
 
 
 
 
 
 
https://campusuccedu-my.sharepoint.com/personal/juan_munozri_campusucc_edu_co/Documents/Monografia.docx#_Toc74585168
https://campusuccedu-my.sharepoint.com/personal/juan_munozri_campusucc_edu_co/Documents/Monografia.docx#_Toc74585169
https://campusuccedu-my.sharepoint.com/personal/juan_munozri_campusucc_edu_co/Documents/Monografia.docx#_Toc74585170
 
 
 
 
 
1. Definición del Tema a Tratar 
 
 Para empezar, según (Fuentes Rosado & Moo Medina, 2017, pág. 1), para un 
ingeniero de sistemas es obligatorio que aprenda a codificar algoritmos en algún lenguaje 
de programación, sin embargo, estimular la lógica de programación no es un proceso tan 
sencillo como lo es el resolver procesos matemáticos, o memorizarlos, dado a que según la 
forma en la que se aplique, un problema se resolverá de distintas formas; unas más cortas 
que otras. 
Teniendo en cuenta que todo ingeniero debe aprender a programar, se realizó una 
encuesta a los estudiantes de primer y segundo semestre de la Universidad Cooperativa de 
Colombia con el fin de conocer su avance en el campo de la programación. Analizando las 
respuestas, se puede evidenciar el interés por parte de los alumnos hacia los videojuegos y 
mediante ellos facilitar el entendimiento sobre la programación dado a que a la mayoría de 
las personas que empiezan a estudiar ingeniería de sistemas, les gustan los videojuegos. 
Mediante la encuesta realizada, se da a entender que no a todos los estudiantes de la 
carrera de ingeniería de sistemas se les facilita aprender a programar; todo esto es debido a 
que en su camino de aprendizaje de bachillerato no se hizo énfasis en el artede la 
programación, por consiguiente se busca desarrollar un video juego, el cual será interactivo 
para que los estudiantes de la Universidad Cooperativa de Colombia de primeros semestres 
logren estimular su lógica y con ello se les facilite entender el flujo de la programación; 
además, para los que se les dificulta programar, logren iniciar su camino en este arte sin 
presentar demasiados conflictos a la hora de codificar. 
Hablar del contexto “artístico” del código suena algo extraño, pero debemos 
comprometernos en la búsqueda y experimentación de buenos trabajos que reflejen 
el pensamiento creativo contemporáneo. Para ello debemos poder usar todas las 
formas de expresión de la cultura contemporánea, y si nos preguntamos cuál es la 
forma más pura del pensamiento creativo contemporáneo, pienso que es el código, 
software es arte. (Barragán, 2008, pág. 5) 
Por medio de este videojuego se quiere llegar a los estudiantes de primeros 
semestres de la Universidad Cooperativa de Colombia por medio de puzles que, de manera 
interactiva, estimulen y fortalezcan las bases del conocimiento en cuanto a la programación, 
debido a que los estudiantes antes de ingresar a la universidad no se refleja un uso de algún 
lenguaje de programación y dado a ello consideran la programación como un desafío. 
El videojuego interactivo permitirá que los estudiantes de primeros semestres de la 
Universidad Cooperativa de Colombia fortalezcan y estimulen su lógica de programación 
con el fin de que puedan tener un mejor rendimiento académico. 
Mediante la técnica de los puzles se puede estimular el aprendizaje de los conceptos 
que se deseen enseñar sin la necesidad de que una persona los explique, además, si se 
logran entender y aplicar, los estudiantes podrán reconocer y lo que han aprendido. 
(Anguas, y otros, 2006) 
Para lograr desarrollar este video juego, se analizarán las diferentes mecánicas de 
puzles interactivos, los cuales permitan instruir al estudiante con el fin de que desarrolle 
una agilidad en la solución de problemas. Se diseñará un entorno interactivo donde el 
usuario pueda reconocer los diferentes usos de las sentencias más utilizadas en el lenguaje 
de programación C++. Este desarrollo de software estará basado en diferentes bloques, 
enfocados en la estimulación de la lógica conforme a las sentencias básicas usadas en el 
lenguaje de programación C++. 
 
1.1 Antecedentes 
Según Bill Gates, fundador, filántropo y propietario de Microsoft “para programar 
solo debes aprender a sumar o restar” (Code.Org, 2013), y también teniendo en cuenta una 
frase de Mark Zuckerberg programador, fundador y propietario de Facebook: 
 Solo creo que tienes que empezar de a poco. Ese es uno de los mayores conceptos 
erróneos sobre la informática y programación en general dado a que usted tiene que 
aprender este gran cuerpo de información antes de poder hacer algo. No tienes que. 
(Code.Org, 2013) . 
Ambos empresarios muy representativos de la informática dan importancia a la 
programación. Estas opiniones justifican la importancia de saber sobre algoritmia como 
principio básico y primordial para programar sistemas operativos, programas aplicativos, 
redes sociales, entre otras; y aunque al principio no es fácil comprender el tema de la 
algoritmia, una vez aprendido se puede aplicar a cualquier proyecto: desde un sistema 
operativo con una considerable cantidad de herramientas informáticas como Microsoft 
hasta una red social con usuarios comunicados entre sí a nivel internacional como 
Facebook. En conclusión, la dificultad para comprender la algoritmia se puede tratar desde 
la niñez y en esta etapa de la vida y de la era digital donde los juegos están presentes, se 
puede aprovechar un videojuego para que los niños tengan facilidad de aprender sobre la 
algoritmia de una forma creativa y divertida. 
Según Steve Jobs, cofundador y presidente ejecutivo de Apple Inc., todos 
deberíamos aprender a programar, ya que programar te enseña a pensar y en algunos países 
como China se aprobó un plan para que niños a partir de los 6 años comiencen a estudiar 
programación (Esteve, 2012). En España se realizó un estudio que determinaba que el 76% 
de los alumnos entre 12 y 16 años no manejan algún lenguaje de programación.(SINC, 
2016). 
Y en la pregunta de saber si es necesario que todos aprendan a programar, se 
determina que no es necesario saber profundamente algún lenguaje como lo es Java, C++, 
php, etc., sino saber algo básico como que es un algoritmo, o la estructura básica, para así 
poder entender y aprovechar mejor las herramientas de los programas que se manejan en el 
día a día. 
En Colombia, el Ministerio de Tecnologías de la información y las Comunicaciones 
(MinTIC) han lanzado diferentes campañas que fomentan al estudio de la programación, 
una de ellas llamada “Yo puedo programar” que brinda cursos de programación gratuitos a 
niños y jóvenes de 11 y 25 años, esto fue creado por Microsoft en alianza con MinTIC 
(Ministerio de Tecnologías de la Información y las Comunicaciones, 2015) . En 2017 se 
unió con la plataforma Platzi para la habilitación de cursos virtuales gratuitos, y se abren 
cada vez más espacios que permiten enseñar a los jóvenes a interactuar con la tecnología, 
para así facilitar la interacción entre el ser humano y las maquinas, generar interés por el 
crecimiento tecnológico e igualar conocimientos. (Ministerio de Tecnologías de la 
Información y las Comunicaciones, 2017) 
2. Justificación 
 
Conforme a los resultados obtenidos de las encuestas realizadas a los alumnos de 
primer y segundo semestre de la Universidad Cooperativa de Colombia (Anexo 1Anexo 1, 
se puede dar a entender que el 58,8% de los estudiantes de primer semestre no han 
manejado un lenguaje de programación antes de entrar a estudiar la carrera, dado a esto, un 
70,6% de los estudiantes consideran la programación como un reto dentro de la carrera 
profesional, sin embargo este campo es al que más de la mitad de los estudiantes le llama la 
atención con un 52,9%. 
 
Dado a que al 43,5% de los estudiantes de segundo semestre de ingeniería de 
sistemas de la Universidad Cooperativa de Colombia les parece regular la metodología de 
aprendizaje en el campo de programación, un 39,1% considera la programación como una 
materia que le generará dificultades en el transcurso de la carrera; este porcentaje a 
comparación con el que se encuestó a los estudiantes de primer semestre de ingeniería de 
sistemas, tiene un incremento considerable, ya que ningún estudiante de primer semestre de 
ingeniería de sistemas considera la programación como un impedimento. 
 
En cuanto la encuesta expuesta a los estudiantes de 1° y 2° semestre de ingeniería 
de sistemas, la cual señala porque medio les gustaría prender a programar, se presenta un 
incremento de estudiantes interesados en el aprendizaje por medio de un videojuego; se 
puede evidenciar un aumento por parte de los estudiantes de 2° semestre a comparación con 
los de 1° semestre. Basado en este interés y a que a mayoría de estudiantes les gustan los 
videojuegos, se propone desarrollar un software el cual estimulará la lógica de 
programación de los estudiantes de primer y segundo semestre la carrera de ingeniería de 
sistemas de la Universidad Cooperativa de Colombia. Esto con el fin de dar a conocer un 
software que incite al estudiante a estimular su lógica de programación por medio de 
puzles, dado que en la evidencia expuesta por medio de encuestas se da a entender que los 
estudiantes de 2° semestre presentan dificultad en lo relacionado a la programación. 
Además de beneficiar a los estudiantes, dará a la universidad una herramienta propia de 
apoyo en la formación profesional de sus estudiantes. 
 
 
 
 
 
 
 
 
3. Desarrollo Organizado y Sistemático de la Revisión Bibliográfica 
 
 3.1 Marco Teórico 
 
3.1.1 Algoritmo 
El algoritmo es lo que siempreestá presente en todo programa de computación, dado 
que y según Francisco Noguera y Daniel Terren como muchos otros artículos y libros señalan 
“los algoritmos son el resultado de aplicar el razonamiento a un problema: los pasos que hay 
que seguir para resolver una situación en concreto.” (2013, pág. 115). Además, un algoritmo 
no solo tiene el propósito de solucionar un problema en concreto, sino que puede llegar a 
solucionar más de uno, cómo se puede expresar: 
 
Un algoritmo constituye una lista bien definida, ordenada y finita de operaciones, 
que permite encontrar la solución a un problema determinado. Dado un estado inicial 
y una entrada, es a través de pasos sucesivos y bien definidos que se llega a un estado 
final, en el que se obtiene una solución o varias. (Juganaru, Introducción a la 
programación , 2014, pág. 2) 
 
 Los algoritmos son un aporte clave y primordial en el desarrollo de todo proyecto 
enfocado al software, como es en nuestro caso. Los algoritmos deben ser de carácter preciso, 
esto quiere decir que no importa que tanto se ejecute, siempre debe dar el mismo resultado. 
Son finitos esto quiere decir, debe terminar en algún momento. (Vásquez, s.f.). 
 
Entre las categorías que abarcan los algoritmos se encuentran los secuenciales, 
condicionales y repetitivos. Estos, se pueden representar a su vez de dos maneras, ya sean de 
carácter cualitativo o cuantitativo. Los algoritmos son vistos en la vida cotidiana, no importa 
el idioma siempre tiene el fin de expresar una serie de pasos para un fin. Como lo hace notar 
Vásquez en una de líneas de texto “Una receta de un plato de cocina se puede expresar en 
español, inglés o francés, pero cualquiera sea el lenguaje los pasos para la elaboración del 
plato se realizarán sin importar el cocinero.”. (salas, 2003). 
 
3.1.2 Lenguaje de programación 
Un lenguaje de programación es un lenguaje computacional que lo conforma un 
conjunto de órdenes que trabajan al unísono, para el procesamiento de acciones consecutivas, 
algoritmos y datos. Como define Enrique Quero en su libro: “Son conjunto de ordenes 
(instrucciones y sentencias) diseñados y creados a través del razonamiento lógico y 
almacenados en ficheros, respetando la sintaxis de un determinado lenguaje de 
programación.” (2002, pág. 2). Estos programas tienen el fin de controlar el comportamiento 
ya sea, físico o lógico de un software o una máquina. Todo lenguaje de programación tiene 
a su disposición diferentes variables, métodos y funciones definidas por defecto, las cuales 
facilitarán la formación de la estructura que llevará un orden lógico. Dado que las 
computadoras poseen un lenguaje de máquina propio y al poseer nosotros un programa 
escrito en lenguaje de programación, esto nos facilita la comunicación de los ordenadores. 
Dado como se muestra en las siguientes líneas: 
 
Los lenguajes de programación nos facilitan la comunicación con los ordenadores, ya 
que nos ahorran tener que saber escribir código máquina. Éste es muy complejo y 
tiene más en cuenta la estructura y la arquitectura del ordenador que el tipo de 
problema que se tiene que resolver. (Javier Francisco Otera Noguera, 2013, pág. 29) 
 
Un lenguaje de programación, el cual, a su vez, está definido por su sintaxis, que 
establece e indica las reglas de escritura (la gramática), y por la semántica de los 
tipos de datos, instrucciones, definiciones, y todos los otros elementos que 
constituyen un programa. Un lenguaje de programación es un caso particular del 
lenguaje informático; este último permite hacer programas, pero también describir 
datos, configuraciones físicas y protocolos de comunicación entre equipos y 
programas. (Juganaru, 2014, pág. 5) 
 
De esta manera y por medio de los lenguajes de programación podemos hoy en día 
crear software útil para la sociedad, desde videojuegos, aplicaciones web, API’s, entre otras. 
Gracias a los lenguajes de programación nos brinda la oportunidad de desarrollar e innovar 
nuevas tecnologías para el bien de personas o compañías. 
 
3.1.3 Programación Orientada a Objetos (POO) 
La programación orientada a objetos es conocida por ser uno de los paradigmas de la 
programación en la cual se pueden modular partes del código de un proyecto. Nace con la 
necesidad de la reutilización de código y la disminución de tiempo en el desarrollo de 
software que a diferencia con la programación estructural. Como se puede plantear a 
continuación: “La programación orientada a objetos es una de las técnicas más modernas que 
trata de disminuir el coste del software, aumentando la eficiencia en la programación y 
reduciendo el tiempo necesario para el desarrollo de una aplicación.” (Sierra, 2007). La 
programación orientada a objetos tiene también como fin la maquetación o estructuración de 
objetos físicos de uso cotidiano, llevándolo a lo digital. Estos se expresan por medio de 
bloques, que encierran las características y las funciones que realizan. 
 
Un objeto representa un concepto dentro de un programa y tiene la información 
necesaria para abstraerlo: los datos que describen su estado y las operaciones que 
pueden modificar este y determinan las capacidades del objeto. Los objetos tienen 
un tiempo de vida (existen mientras está en ejecución el programa) y un 
comportamiento, en el que los programas interactúan con los objetos mediante 
interfaces de otros objetos. (López, 2014, pág. 105) 
 
Una clase es una plantilla para crear objetos que constituye una abstracción del 
mundo real, como la clase Burro, la clase persona, la clase cuenta, etcétera. Las 
clases se nombran sustantivos en singular y poseen variables que definen la 
información que se desea almacenar y métodos que definen las acciones que se 
desean realizar. Las variables se nombran sustantivos y los métodos como verbos en 
infinitivo. (Oviedo, 2015, pág. 207) 
 
La programación orientada a objetos hoy en día es uno de los paradigmas más 
utilizado ya que como se mencionó anteriormente nos ahorra tiempo a la hora de escribir 
código. Además, nos permite la reutilización de este y no sigue una secuencia estructural, 
sino que todo está encapsulado por medio de módulos (clases) para de esta manera poder 
usarse en cualquier lugar sin seguir una secuencia explícita en la estructura del código. 
También hay que resaltar que la programación orientada a objetos tiene un mayor grado de 
dificultad a comparación con la programación estructural. 
 
3.1.4 Librerías 
Las bibliotecas o librerías nos proporcionan acceso a elementos de mucha 
importancia en los lenguajes de programación. Estas librerías se encuentran en diversos 
lenguajes como por ejemplo C++. Al contar con un cierto número de módulos en su interior 
con funciones y procedimientos que son útiles a la hora de programar. Dando el chance de 
ser usadas en cualquier momento, esto quiere decir que podemos reutilizar la librería 
cuantas veces queramos sin necesidad de volver a escribir código. Cada librería en su 
interior posee un cierto contenido de funciones las cuales son usadas dependiendo el tema 
en específico, ya sea de carácter matemático, gráfico, salida o entrada, etc. Así lo afirma en 
su libro Jordi Gómez y compañía: “Las bibliotecas de funciones nos proporcionan el acceso 
a elementos muy importantes para la implementación de cualquier programa como pueden 
ser los que nos permiten realizar entradas (por el teclado) y salida (por la pantalla), 
operaciones, matemáticas, etc.” (Pere-Pau Vazquesz Alcocer, 2006, pág. 51). 
 
Existen dos tipos de librerías las estáticas y las definidas por el programador. Las 
estáticas, son las librerías que facilitan la programación, desde permitir el acceso de 
periféricos físicos, modos gráficos, procesos matemáticos, etc. Las librerías fijas son 
aquellas que son creadas por el desarrollador. Toda librería tiene un nombre que lo 
identifica de las demás y disponen de diferentes tipos:Librerías en código fuente: Vienen escritos en el lenguaje de programación usado. 
Librerías compiladas: Son maduros objetos de la librería con el programa ya 
compilado. 
Librerías Dinámicas: Estas librerías son las que se encuentran el sistema operativo 
Windows, son completamente independientes del programa. 
Dependiendo de lo que se quiera realizar en un programa se pueden usar este tipo de 
librerías o inclusive pueden ser creadas por los mismos usuarios. Cómo lo resalta Luisa 
Villar y compañía: 
Las librerías pueden ser creadas por usuarios o pueden venir definidas en las 
herramientas que usamos para programar. Las librerías no incluyen un programa 
simplemente deben hacer referencia al traductor para que se incluya dicha librería y de esta 
manera puedan ser usadas sus funciones directamente (Luisa Garzón Villar, 2004, pág. 
188). 
3.1.5 Sentencias 
Todo lenguaje de programación abarca en la serie lenguaje que posee unas 
determinadas reglas por defecto, ya que por medio de esta se pueda teclear en lenguaje 
natural, la lógica que interpretará el computador. Los lenguajes de programación tienen 
desde sentencia de escritura, lectura, asignación de variables, estructura de decisión, 
estructuras de repetición, etc. 
 
3.1.6 Variables 
Dado que las personas no pueden entender el lenguaje de máquina surgieron los 
lenguajes de programación y con esto se desarrollaron las variables. Las variables son un 
medio por el cual el ser humano puede asignar una porción de memoria en la cual se desea 
almacenar información: “Como nosotros los humanos no manejamos la información de la 
misma forma de los computadores, preferimos asignar etiquetas a la parte de la memoria 
donde queremos guardar información y a estas etiquetas le llamamos variables.” (Razif, 
2016). 
Las variables dependientes del lenguaje de programación pueda que se declaren de 
diferente manera, pero su significado en general siempre va a especificar lo mismo. Se 
pueden encontrar desde variables de tipo entero, carácter, boolean, Strings, double, float, 
constantes, etc. 
Tipos de variables básicas: 
Enteras: Al declarar un tipo este tipo de variable se guardará un número entero 
Carácter: Esta variable este tipo de variable almacenará en su interior caracteres 
(letras, Símbolos especiales, etc.). 
Boolean: Este tipo de variable almacena sólo dos posibles valores el 1 y el 0 
Double: Este tipo de variable almacena en su interior el número decimal de mayor 
tamaño. 
Float: Esta variable en su interior almacena el número decimal. 
Constantes: Estas se caracterizan porque al declararse una variable con un dato en 
específico, no se puede alterar, siempre tendrá el mismo valor declarado en un principio. 
Hay que tener presente que cada variable al ocupar un espacio memoria ocupa cierta 
cantidad de bytes. Además, cada variable tiene un límite de almacenamiento de bytes. “Una 
variable sin importar el lenguaje de programación, es un espacio de memoria que contiene 
un valor una variable tiene un nombre que se utiliza en la programación para hacer 
referencia a un espacio de memoria en particular” (Arias, 2004, pág. 20). 
 
3.1.7 Estructura de decisión 
La estructura de decisión o estructura condicional es aquella que ejecuta una acción 
de acuerdo con el valor asignado con anterioridad. De acuerdo este valor asignado puede 
tomar dos posibles caminos. Este tipo de estructura está presente en todo lenguaje de 
programación dado que es uno de los básicos y de mucha utilidad a la hora de asignar un 
valor dado si toma un valor diferente al esperado. 
 
Esta estructura decisión se puede declarar por medio del if y else. En algunos lenguajes de 
programación podemos encontrar este esta estructura decisión más comprimida como en el 
caso de PHP. 
 
Si se encuentra que la condición es diferente de 0 entonces ejecutar la acción y 
luego sigue con la próxima instrucción en el programa se encuentra que las 
condiciones 0 no ejecuta la acción y sigue con la próxima instrucción en el 
programa. (Santamaria, 1991, pág. 60) 
 
Esta estructura condicional evalúa el dato entrante y al evaluarlo por medio del 
asignado en dicha condición. Esta evaluará por cuál camino o ruta Cumple con dicha 
sentencia. Esta sentencia también puede contar en su interior con otra sentencia, que son 
conocidas como condicionales anidados. En las cuales se puede definir sí se cumple una 
condición eso conllevaría a tomar otra decisión. Como lo expresa Becerra en su libro: “Las 
instrucciones que se considera son controladas por un if, pueden incluir otras instrucciones 
if en este caso se dice que las instrucciones if anidadas son una condición inicial que en su 
interior posee otras posibles condiciones” (Santamaria, 1991, pág. 73). 
 
Estructuras condicionales son una parte importante a la hora de programar van 
desde la estructura simple del “if else” hasta las condicionales anidadas. También podemos 
encontrar en múltiples lenguajes de programación, como el denominado “switch case”. El 
switch case, es la parte simplificada del if anidado. Esto nos puede garantizar una mayor 
facilidad a la hora de declarar múltiples condicionales y además de esto nos permite ahorrar 
memoria a comparación con el if anidado. “El switch case nos permite seleccionar una 
opción entre un conjunto de opciones de acuerdo el valor de algún parámetro” (Santamaria, 
1991, pág. 79). 
 
3.1.8 Ciclos repetitivos 
Las estructuras repetitivas tienen la función repetir una condición n veces hasta que 
se cumpla lo declarado. A esta repetición se le conoce como bucle y está presente en 3 tipos 
de estructuras repetitivas while, do-while y For: “Estas estructuras de control o sentencia 
repetitivas controlan el número de veces que una sentencia o lista de sentencias se ejecutan” 
(Zahonero Ignacio Martinez, 2005, pág. 195). Estas 3 estructuras repetitivas poseen la 
misma calidad anteriormente mencionada, pero a la hora de usarse se debe declarar de una 
forma específico. Por ejemplo, la estructura do-while al declararse una sentencia, puede que 
se ejecute una o más veces dependiendo de la decisión que tome internamente la máquina. 
 
La diferencia de esta estructura con el For y el while radica en que, si la condición 
no se cumple desde un primer momento, el buque se habrá ejecutado una sola vez, 
es decir en la estructura do while el bucle se puede ejecutar una o más veces 
(Didact, 2005, pág. 35) 
 
Las estructuras repetitivas con los ciclos repetitivos son estructuras fundamentales y 
básicas en la incursión de cualquier tipo de lenguaje de programación. Hoy día se han 
añadido ciclos de sintaxis más corta, pero que cumplen con el mismo fin. Estos ciclos como 
por ejemplo en los lenguajes javascript y PHP, se incluyen una estructura denotada como 
Foreach y for in. 
 
3.1.9 Arreglos (Arrays) 
Un arreglo o array, es aquel que puede guardar en su interior cierta cantidad de 
datos según se le defina su tamaño estos datos almacenados pueden ser de carácter entero 
decimal y flotante. Los arreglos se caracterizan debido a que en cada índice se puede 
ocupar un dato en memoria, comenzando desde la posición 0 hasta la posición n. Estos son 
usados y se catalogan en dos tipos de arreglo unidimensional y arreglo bidimensional. “Un 
array se declara de modo similar a otros tipos de datos excepto que se puede indicar al 
compilador el tamaño y longitud del array” (C algoritmos, 2005, pág. 137). Existen dos 
tipos de arreglos los unidimensionales y los multidimensionales: 
Arreglos unidimensionales: Estos arreglos son los básicos en programación dado 
que se caracterizan por poseer un solo índice, estos arreglos son similares a los vectores 
usados en matemáticas dados que solo poseen una dimensión. Ejemplo: Vectores. 
Arreglos bidimensionales: Estos arreglos se caracterizan porque en cada elemento 
en su interior está ubicada en una fila y una columna, esto quiere decir,cada elemento tiene 
una posición que se identifica mediante dos índices la fila y la columna. Comenzando desde 
el índice 0,0 hasta finalizar en el índice n,n dependiendo del tamaño definido. Ejemplo: 
Matrices. 
 
En definitiva, los arreglos un unidimensionales y bidimensionales son una parte 
esencial en la programación para principiantes dado que esta unidad comienzo a que las 
personas interactúen en cómo funcionan los espacios de memoria en un programa: 
Un arreglo unidimensional posee un nombre (un identificador), un tipo y una 
dimensión. El nombre de un arreglo es un identificador del programa, el cual debe ser el 
único al interior del bloque de definición. El tipo, por su parte, es un tipo escalar estándar, 
un tipo apuntador o cualquier otro tipo definido por el programador; en este caso, se 
excluye el tipo void. La dimensión es un número entero positivo que indica el tamaño del 
arreglo. (Juganaru, 2014, pág. 148) 
 Un array bidimensional (tabla o matriz) es un array con dos índices, al igual que los 
vectores que deben ser ordinales. Para localizar o almacenar un valor en el array se deben 
especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna. 
(Joyanes, 2006, pág. 365). 
 
Para finalizar los arreglos con esenciales para todo programador, ya que con estos 
nos evitan el declarar muchas variables. En vez de esto con sólo una variable podemos 
ingresar datos en una posición diferente. En la actualidad ya hay lenguajes de programación 
como por ejemplo Python, el cual permite que se almacenen valores mixtos dentro de los 
arreglos, esto quiere decir enteros y de tipo carácter. 
 
3.1.10 Juegos interactivos 
Los juegos interactivos son aquellas actividades universales que se caracterizan por 
su singularidad a la contribución del desarrollo social, cognitivo y afectivo de las personas. 
Los juegos interactivos desarrollan en niños y personas jóvenes desde habilidades de 
comunicación, procesamiento al interpretar información. 
 
La obra y la interacción con los juegos permiten que el niño aprenda reglas y 
acciones impulsivas por placer. De este modo, los juegos actúan para él como 
elementos mediadores entre el conocimiento ya cristalizado, construido, presente en 
el nivel de desarrollo real, y las posibilidades y potencialidades existentes en la 
Zona de Desarrollo Proximal (ZDP). (Gama, 2017, pág. 24). 
 
Cómo se ha escrito con anterioridad los autores les quieren expresar qué gracias a la 
interacción con los juegos, se permite que los niños aprendan reglas, se impulse su 
desarrollo cognitivo, lingüístico y psicomotriz qué le será de gran ayuda a medida que vaya 
creciendo. Los juegos interactivos también permiten que las personas y niños, adquieran 
una mejor comprensión y atención a lo que le rodea, en el ámbito escolar o social (Garcia, 
2020) . Por esta razón la importancia de los videojuegos en el desarrollo de niños es 
importante dado que por medio de estos aprenden de forma interactiva. 
 
Por esa razón, actualmente los videojuegos son una fuente de reconocimiento dado 
que en estos se pueden inculcar ya sea desde historias, hechos científicos para fomentar la 
imaginación e impulsar el desarrollo y el interés propio hacia un tema en particular: 
Los videojuegos como una compleja mezcla de tecnología arte y narrativa en la que 
se desarrollan integran elementos interactivos de diseño arte gráfico-música y calidad 
industrial. Además, es la combinación que permite que a comienzos del siglo 21 los vídeos 
del proyecto como un sector relevante dentro de la industria cultural promoviendo un solo 
interés por parte de consumidores y empresas y 9 personas de las áreas académicas y de 
investigación (Ángel Torres-Toukoumidis, 2010, pág. 20). 
 
Como sea es expresado en citaciones anteriores, los videojuegos son parte cultural 
actual del mundo. Dado que ya no son sólo una fuente de entretenimiento sino una fuente 
educativa que además impulsa el desarrollo de diferentes destrezas humanas en los jóvenes 
y niños de la actualidad. Ya que ahora estamos rodeados de medios tecnológicos, los 
videojuegos ahora son un medio de aprendizaje moderno dejando atrás las antiguas 
metodologías de aprendizaje. 
 
3.1.11 Puzles 
Los puzles son una forma de entretenimiento el cual su objetivo principal es 
resolver una serie de acertijos, rompecabezas o pequeños juegos de habilidad qué 
fortalezcan el desarrollo cognitivo en niños y en personas. Además, estos puzles ofrecen el 
desarrollo lógico, psicomotriz y de memoria. Existen algunos puzles que se caracterizan por 
ser juegos de habilidad y acción los cuales se caracterizan por resolverse a un ritmo muy 
rápido que conlleva a la capacidad de respuesta y reflejos de forma más ágil. Existen otro 
tipo de puzles que no conllevan una rápida acción de juegos, sino que su finalidad está más 
enfocada a la reflexión y al pensar de manera más consciente. 
 
Los puzles son videojuegos basados principalmente en acertijos, rompecabezas, y 
pequeños juegos de habilidad. Estos juegos suelen tener una única solución válida por lo 
que el campo de posibilidades de actuación creativa del jugador se ve muy reducido. Sin 
embargo, es interesante comprobar cómo el reto y la curiosidad por descubrir la solución 
actúan como un aliciente para aprender y promueven el aprendizaje (Morales, 2015, pág. 
96). 
 
La primera entrega de estos juegos de aprendizaje se remonta al uso de piezas 
plásticas, madera o papel. Los cuales se caracterizan por poseer una forma singular con las 
cuales encajan entre sí. El objetivo principal de este tipo de juegos es que por medio de 
estas figuras se armara otra figura más grande que la que se conformaba. Principalmente 
estos juegos eran usados por niños de temprana edad, pero al pasar de los tiempos esta 
metodología de juegos de aprendizaje se ha inculcado en diversos videojuegos como, por 
ejemplo: Tetris y Dr Mario. Estos juegos son muy populares dado que tiene la 
denominación de ser de lógica e inteligencia, en la cual exige a los jugadores ejercer una 
gran agilidad mental y motriz. Entre los diferentes desafíos qué presentan dichos puzles, 
pueden ir desde problemas matemáticos, lógicos e incluso reconocimiento de patrones. 
 
 Conocido lo anterior y citando a Agustín Marrero estos puzles no sólo desarrollan 
habilidades en niños, sino que además como comenta en su libro, es una estrategia para el 
aprendizaje de estudiantes de ingeniería dado que como él resalta la principal falencia de 
los jóvenes al embarcarse en la programación es la falta de un pensamiento estructural. 
Además, por medio de estos puzles permitirá la mejora de habilidades matemáticas y la 
resolución ante problemas. 
 
La metodología de aprendizaje basado en puzles tiene como objetivo el fomentar en 
estudiantes de ingeniería e ingeniería informática, el pensar en cómo estructurar y resolver 
problemas que normalmente no se encuentran en los libros de texto tradicionales en la 
materia. El objetivo es motivar al estudiante mientras se incrementa sus habilidades 
matemáticas y de resolución de problemas mediante la discusión de una variedad de 
problemas de la materia expresados en forma de puzles y sus estrategias de solución. (Darias, 
2014, pág. 193). 
 
Por medio de puzles no sólo podemos llegar a las estudiantes de ingeniería, sino que 
además podemos fomentar a la demás población a él desarrollo de un pensamiento 
estructural. Dado que cómo se nombró con anterioridad los puzles sirven para desarrollar 
muchas habilidades cognitivas que posee el ser humano pero que no se han pulido o 
descubierto. 
 
3.1.12 Programación Extrema (XP) 
Más conocida como “Extreme Programming”, es una metodología ágil la cual se 
basa en la simplicidad y agilidad para realizar un proyecto, el cual puede ser realizado por 2 
personas o más: 
 
La metodología XP define cuatro variables para cualquier proyectode 
software: costo, tiempo, calidad y alcance. Además, se especifica que, de 
estas cuatro variables, sólo tres de ellas podrán ser fijadas arbitrariamente 
por actores externos al grupo de desarrolladores (clientes y jefes de 
proyecto). El valor de la variable restante podrá ser establecido por el equipo 
de desarrollo, en función de los valores de las otras tres. Este mecanismo 
indica que, por ejemplo, si el cliente establece el alcance y la calidad, y el 
jefe de proyecto el precio, el grupo de desarrollo tendrá libertad para 
determinar el tiempo que durará el proyecto. (Joskowicz, 2008, pág. 7). 
 
 3.1.12.1 Valores 
 
 XP maneja 4 valores los cuales deben tenerse presente a la hora de realizar el 
proyecto para que este tenga éxito: 
 
 Comunicación: En todo ámbito la comunicación es un factor bastante importante 
ya que, por medio de esta, se intercambia o comparte información y por ello los procesos se 
vuelven más claros. En XP es un valor esencial debido a que todo el equipo de trabajo debe 
mantenerse informado conforme a las decisiones del cliente ya que pueden suceder cambios 
en el modelo del proyecto. 
 
 Simplicidad: Todos los procesos deben ser entendibles en el proyecto y por ello se 
debe realizar de la forma más sencilla, para que todos entiendan ya sean los procesos o el 
código. 
 
 Retroalimentación: Esta debe ser permanente debido a que el cliente es el que la 
debe brindar con el fin de tomar decisiones para las próximas iteraciones sobre el proyecto 
y para cerciorarse del cumplimiento de sus necesidades. 
 
 Coraje: Se deben tomar decisiones conforme a los procesos del proyecto así se 
tengan pérdidas ya que, si es necesario el cambio, se tiene que generar. 
 
 3.1.12.2 Ciclo de vida de Software en XP 
 
 XP propone desarrollar un ciclo de vida de software dinámico dado a que, en la 
mayoría de los casos, al inicio del proyecto, los clientes no determinan la totalidad de los 
requerimientos del proyecto. Por esa razón, XP maneja ciclos de desarrollo cortos 
denominados iteraciones, esto con el fin de que en cada iteración se realice un análisis, 
diseño, desarrollo y pruebas las cuales debe cumplir con los estándares de la metodología 
(Joskowicz, 2008). 
 
 En XP se maneja la fase de exploración que es la que fija el alcance del proyecto, 
las necesidades del cliente las cuales son plasmadas en las historias de usuario con el fin de 
que se obtenga un tiempo estimado sobre el desarrollo de estas; el objetivo de esta fase es 
definir una visión del proyecto. Luego de esta fase, viene la fase de planificación, en ella se 
realizan reuniones con todos los integrantes del proyecto se reúnen con el fin de acordar un 
orden de entrega conforme a las historias de usuario, su objetivo es formar el plan de 
entregas o “Release Plan.” Finalmente, viene la fase de iteraciones, las cual se basan en el 
desarrollo y las pruebas funcionales de las historias de usuario de acuerdo al orden 
establecido (Rivera Meza, 2017). 
 
Un proyecto se inicia con una fase de exploración donde se sientan las bases 
para que sea exitoso su desarrollo. El plan de entrega a seguir es concebido durante 
la planificación, con la participación del cliente y los desarrolladores. A 
continuación, tienen lugar una serie de iteraciones que no concluyen hasta obtener 
una primera versión del sistema, o una primera entrega que es lo mismo. (Ramírez, 
2008, pág. 3) 
 
 3.1.12.3 Planificación 
 
 La planificación es la fase donde el cliente desarrolla las historias de usuario, el plan 
de entregas, el plan de iteraciones y las reuniones diarias de seguimiento con el equipo del 
proyecto, esto con el fin de darle una visión a corto, mediano y largo plazo al mismo. 
 
 3.1.12.3.1 Historias de Usuario 
Son documentos que sustituyen a los casos de uso debido a que son descripciones 
realizadas por parte del cliente las cuales brindan la información y el comportamiento que 
debe tener el sistema de forma funcional. Mediante esta, los desarrolladores deberán 
estimar el tiempo de desarrollo de lo que el cliente solicite (Joskowicz, 2008, pág. 10). El 
valor de comunicación es muy importante en el desarrollo de las historias, ya que cuando se 
empiecen a desarrollar, el desarrollador debe tener comunicación constante con el cliente 
para que le brinde los detalles de lo que se desea hacer. 
3.1.12.3.2 Plan de Entregas (Release Plan) 
 Es un cronograma donde el cliente planificará las iteraciones del proyecto conforme 
a las historias de usuario y su complejidad; este deberá ser estudiado por el cliente, el 
equipo de gestión y el equipo de desarrollo ya que en este se estimará el tiempo y cualquier 
dato que no se cumpla en el tiempo establecido, afectará el rendimiento del proyecto. Es 
recomendable realizar varias iteraciones dado a que en caso de que se genere un error, 
habrá tiempo para resolverlo en alguna de estas iteraciones (Ferrer, 2002, pág. 4). 
 3.1.12.3.3 Plan de Iteraciones (Iteration Plan) 
En XP un ciclo de iteración es la planificación del orden en el que se ejecutará el 
desarrollo de cada historia de usuario, esta planificación se debe dar al comienzo del ciclo. 
Estas historias de usuario irán relacionadas con una iteración escalada por prioridad, en esta 
iteración se adjuntarán las historias de usuario que no han sido aprobadas en iteraciones 
anteriores. Al final de un ciclo de iteración, todas las historias de usuario deben ser 
probadas con el fin de que cumplan con los criterios de aceptación del cliente y no afecte el 
desarrollo de ciclos anteriores. 
Según (Joskowicz, 2008), las pruebas de aceptación que fallen en un ciclo anterior 
deben ser analizadas para generar su corrección para que así se garantice que no vuelvan a 
fallar. 
3.1.12.3.4 Reuniones Diarias de Seguimiento (Stand-Up-Meeting) 
 Son reuniones que se realizan con el fin de que se mantenga una comunicación 
grupal en la cual se compartan problemas y soluciones (Echeverry Tobón & Delgado 
Carmona, 2007, pág. 33). 
Ya depende de la estructura del proyecto la forma de realizarla, ya sea online o presencial. 
 
 3.1.12.4 Diseño 
 XP se apoya en su valor de la simplicidad al realizar el diseño, los conceptos que 
sobresalen de este diseño a parte de la simplicidad son las soluciones puntuales (Spike 
Solution), recodificación y las metáforas. 
 3.1.12.4.1 Simplicidad 
 En el diseño, la simplicidad se plasma al realizar un diseño de un modelo sencillo 
pero que cumpla con los requerimientos del cliente. 
 3.1.12.4.2 Soluciones Puntuales (Spike Solution) 
 Cuando el equipo se enfrenta a un problema de diseño o implementación conforme 
a una historia de usuario, el equipo podrá acudir a la herramienta de soluciones puntuales, 
esta herramienta es una pequeña aplicación con la cual se intentará explorar el programa 
para validar el grado de dificultad de la solución para así encontrarla (Echeverry Tobón & 
Delgado Carmona, 2007, pág. 37). 
 3.1.12.4.3 Recodificación 
 Cuando se termina de escribir el código de un programa, es recomendable volverlo 
a codificar de una forma más clara si es posible. XP sugiere recodificarlo para que cada vez 
que se realice este proceso, el código será más fácil de entender, más eficiente y se acople a 
la lógica de negocio que se implementará en el programa (Joskowicz, 2008, pág. 12). 
 3.1.12.4.4 Metáforas 
 El equipo debe plasmar la arquitectura del sistema en una “historia” con la cual el 
grupo de desarrollo tenga una visión sobre el proyecto para que así se acoplen a este y 
puedan reconocer los aspectos más importantes del sistema (Echeverry Tobón & Delgado 
Carmona, 2007, pág. 37). 
 3.1.12.5 Desarrollo del Código 
 El código al igual que el diseño debe ser entendible y claro para todo el 
equipo. Para el desarrollo es crucial contar con la disponibilidad del cliente, el uso de 
estándares, la programación dirigida por las pruebas, la programaciónen pares, las 
integraciones permanentes, la propiedad colectiva del código y el ritmo sostenido. 
 3.1.12.5.1 Disponibilidad del Cliente 
 XP requiere al cliente como parte del grupo del proyecto y que este tenga la 
disponibilidad para cuando se requiera; el cliente es primordial para que un proyecto se 
pueda llevar a cabo mediante la metodología XP. Cuando el proyecto inicial, el cliente es el 
que debe brindar las historias de usuario; sin embargo, al no ser tan precisas para su 
desarrollo, el cliente debe brindar los detalles necesarios a los desarrolladores para que se 
pueda codificar lo que el cliente necesita y así evitar inconformidades a futuro y 
desperdicio de tiempo con solicitudes de mejora (Joskowicz, 2008, pág. 13). 
 3.1.12.5.2 Uso de Estándares 
 Se requiere el uso de estándares para que el código sea entendible y más fácil de 
recodificar. 
 3.1.12.5.3 Programación Dirigida por las Pruebas (Test-Driven-Programming) 
 XP propone realizar un desarrollo de código con base a pruebas unitarias, esto con 
el fin de que se tengan todos los posibles errores controlados aplicando buenas prácticas y 
así generar bloques de código limpios. 
 3.1.12.5.4 Programación en Pares 
 El desarrollo de parejas en XP aplica el valor de la comunicación, ya que hay una 
mayor interacción entre los desarrolladores y se logra un mejor ambiente laboral, una mejor 
productividad y cada desarrollador adquiere conocimiento de su pareja: 
XP propone que se desarrolle en pares de programadores, ambos trabajando 
juntos en un mismo ordenador. Si bien parece que ésta práctica duplica el 
tiempo asignado al proyecto (y, por ende, los costos en recursos humanos), 
al trabajar en pares se minimizan los errores y se logran mejores diseños, 
compensando la inversión en horas. El producto obtenido es por lo general 
de mejor calidad que cuando el desarrollo se realiza por programadores 
individuales. (Joskowicz, 2008, pág. 13). 
 3.1.12.5.5 Integraciones Permanentes 
 Se debe trabajar mediante un sistema de control de versiones para que los 
desarrolladores siempre desarrollen sobre la versión actual del sistema la cual no contenga 
errores. XP propone que solo una pareja de desarrolladores debe integrar al mismo tiempo. 
 3.1.12.5.6 Propiedad Colectiva del Código 
 Todo el equipo de XP tiene la potestad de cambiar el código si es necesario, así 
como realizar una mejora o una recodificación, esto con el fin de que el código cada vez sea 
más sencillo y que el equipo se apropie de todo el código y lo pueda modificar en caso de 
ver oportunidades de mejora. Hay que aclarar que estos cambios deben cumplir con lo 
requerido por el cliente. (Joskowicz, 2008, pág. 14). 
 
 
 
 
3.2 Marco Conceptual 
 
 3.2.1 Unity 
 Unity es un motor gráfico 2D, 3D gratuito el cuál se opera mediante el lenguaje de 
programación C#. Por medio del enfoque que se quiera dar, se pueden desarrollar 
aplicaciones interactivas, video juegos y animaciones en 2D o 3D. Además, las assets store 
de unity, proporcionan una amplia variedad de modelados y texturas gratuitos que facilitan 
la implementación en ambientes en videojuegos. 
Unity se estructura mediante el manejo y la creación de escenas para el desarrollo de 
la aplicación deseada, una escena puede ser cualquier parte del juego o la 
animación, ya sea un nivel del juego o un área determinada. Se empieza con un 
espacio en blanco en el cual se puede dar forma a todo lo que se desee crear usando 
las herramientas de Unity. Este motor de Unity incluye además un editor de 
terrenos, donde se puede esculpir la forma del terreno usando las herramientas 
visuales que ofrece Unity, se puede pintar, texturizar, añadir hierba, colocar árboles 
o similares, o inclusive se permite la importación de otros materiales provenientes 
de otros motores de desarrollo. (Cerón Cardona & Bedoya Herrera, 2017). 
 3.2.2 Adobe Mixamo 
 Mixamo es una página web la cual permite crear o editar animaciones para 
personajes 3D creados en otros programas. Con el fin de que se puedan descargar y utilizar 
en algún motor gráfico (Adobe, 2019) . 
 3.2.3 Adobe Fuse 
 Fuse es un programa que funciona para diseñar personajes 3D los cuales se pueden 
personalizar mediante una biblioteca de recursos de texturas de alta calidad con el fin de ser 
exportador ya sea a un motor gráfico o a alguna herramienta de adobe (Adobe , 2020). 
 3.2.4 C# 
 C# es uno de los lenguajes de programación de alto nivel que pertenece a “.NET”. 
Es una evolución de C/C++. Con este lenguaje se pueden escribir tanto programas básicos 
como programas avanzados para ser implementados en internet. Este lenguaje permite usar 
interfaces gráficas o textuales, ya depende del uso que se le desee dar (Sierra, Microsoft C#. 
Curso de Programación. 2ª edición, 2011). 
 3.2.5 C++ 
 Es un lenguaje de programación que proviene del lenguaje de programación C. Este, 
tiene la potencia de procesamiento que le falta a C para ejecutar lenguajes de nivel superior. 
C++ agrega capas de abstracciones y de objetos, para agregarlas, debe utilizar Linux. 
También permite a los desarrolladores extender el código de programación para código lot 
y embebido. C++ ha inspirado a otros lenguajes de programación como lo son Java, 
Phyton, C#, entre otros (GlobalData plc, 2016). 
 3.2.6 MySQL 
 Es un sistema de gestión de base de datos relacionales que usa el lenguaje estándar 
SQL. Se destaca entre varios gestores de bases de datos ya que sus características son la 
velocidad, estabilidad y fiabilidad en el manejo de datos. Tiene bastantes usos para 
almacenar diferentes tipos de información y es utilizado para el desarrollo de páginas web 
dinámicas, portales web, sitios web y también para páginas web pequeñas (Niederauer, 
2005). 
3.2.7 Entorno Virtual de Aprendizaje 
 Es un espacio educativo alojado en el internet el cual está conformado por un 
conjunto de herramientas informáticas que posibilitan la interacción didáctica. Está 
constituido por dos dimensiones, una dimensión tecnológica que es la que le brinda las 
herramientas o aplicaciones informativas con las cuales es posible construir el entorno y la 
dimensión educativa la cual es la que representa el proceso de estimulación de aprendizaje 
(Salinas, 2011). 
3.3 Marco legal 
Para el desarrollo de este videojuego se usó el motor Unity básico, esta con la licencia de 
estudiante que proveen. De igual manera, se utilizó los recursos gratuitos que nos ofrece 
unity en su asset store desde texturas y modelados para el ambiente. También, de las 
páginas ambientcg.com, hdrihaven.com, es.cooltext.com y free3d.com, se hizo uso de las 
texturas y modelos gratuitos. Para la parte de personajes, se usaron del sitio de adobe 
Mixamo las animaciones del personaje y creación de este. Para la parte de sonidos y 
ambientación se hizo uso de los recursos sin copyright de los sitios Infraction - No 
Copyright Music, soundcloud.com y premiumbeat.com. 
 Se hacen las menciones de estos sitios, para enfatizar que, de acuerdo con el 
cumplimiento de las políticas de uso mostradas en estos sitios visitados, no se usara estos 
recursos con finalidad de lucro, sino al contrario de manera educativa para la obtención de 
título profesional como ingeniero de sistemas. 
 
3.3 Revisión del Estado del Arte 
 
 Se relacionan las investigaciones relacionadas con el análisis y desarrollo de video 
juegos interactivos dirigidos a un público en especial con el fin de que la persona que 
interactúe con el programa pueda estimular su lógica y aspectos cognitivos. 
 3.3.1 Análisis de las herramientas Unity y Blender para el desarrollo de video 
juegos con enfoque educativo 
 El video juego educativo se considera un género independiente de los demás 
géneros de video juegos. El desarrollo de un video juego requiere de creatividad, 
organización ya que en este tipo de desarrollos se exige experiencia para abarcar todos los 
objetivos ytambién es necesario tener las herramientas adecuadas para poder plasmar lo 
requerido con el diseño: 
Los modelos de educación actuales intentan que el alumno desempeñe un papel 
activo en el proceso enseñanza aprendizaje, con el fin de desarrollar sus 
competencias permitiendo estar altamente calificado y competente para asumir los 
retos que las nuevas sociedades plantean. En los últimos años se ha prestado 
especial atención al componente lúdico como un facilitador de estas tareas. La 
lúdica enriquece el aprendizaje creando un espacio dinámico y virtual que 
transforma el entorno e incluso la forma de interactuar con éste. El aprendizaje 
lúdico tiene como elemento principal el juego. Mediante lúdica, el estudiante 
comienza a pensar y actuar en medio de una situación determinada que fue 
construida con semejanza en la realidad, con un propósito pedagógico. (Méndez, 
Obviedo, Fallas, Vega, & Méndez , 2014). 
 Para el desarrollo de un video juego es crucial la visión y la trama que tendrá este, 
ya que se debe construir una trama sólida y una interfaz amigable y sencilla, esto con el fin 
de que el video jugador siempre quiera seguir jugándolo: 
El planeamiento de la trama y el guion se realizó con reuniones durante varias 
semanas, donde se realizaban bocetos, modelos, texturas, logotipos y la 
escenografía en general. Así mismo se planearon los objetos, los cuales debían 
responder a la solución por parte del personaje en relación con un problema 
específico, mediante objetivos (misiones) que permiten avanzar en la trama, o pasar 
de nivel, así como mejorar las estadísticas del jugador (como su estado vital). Otros 
temas importantes que fueron tomados en cuenta en esta etapa temprana fueron la 
banda sonora y los efectos de sonido. Se concluyó que estos estaban divididos en 
dos facetas. Por una parte, sonidos de naturaleza como gotas, viento, agua, animales 
nocturnos, entre otros. Y, por otra parte, sonidos fríos y oscuros que reflejaran el 
ambiente pos-apocalíptico a causa de la destrucción ambiental. Con respecto a lo 
que el jugador debía hacer con el personaje, se tuvo que tomar en cuenta el guion 
principal y al mismo tiempo, las misiones, y que estas correspondieran con el 
género del videojuego. (Méndez, Obviedo, Fallas, Vega, & Méndez , 2014). 
 3.3.2 Videojuego educativo para ayudar a comprender los principios básicos de 
la programación y desarrollar la habilidad lógica en niños de educación básica 
 “Los videojuegos son parte del desarrollo social y cultural de las personas y llegan a 
influir en su desarrollo físico, sensorial, mental y creativo.” Dice Ana Ticante y compañía 
resaltan en su artículo, la importancia de la enseñanza de la programación no sólo es capaz 
de fortalecer la capacidad de diseñar, inventar o crear, sino que además de eso es de vital 
importancia para el desarrollo tecnológico en la sociedad. “Los juegos son una herramienta 
útil para la obtención de conocimiento, donde a través de retos y actividades, el estudiante 
es el protagonista de su propio aprendizaje” asimismo se puede evidenciar “Existen 
videojuegos educativos para aprender muchas cosas, los más básicos enseñan a leer, sumar, 
restar o hasta tocar instrumentos, aprender algún idioma, o sobre temas más específicos 
como la biología” (Ticante Hernández, Herrera Orduña, Arguijo, Meléndez Armenta, & 
Vázquez López, 2019). 
 Por otro lado, en este proyecto Ana Ticante resalta, como los videojuegos además 
de fortalecer la destreza en jóvenes, sea introducido en áreas de medicina, como también en 
la enseñanza de lenguajes de programación. Como ejemplo podemos tomar a Immune 
Attack y Code Combat. 
El aprendizaje de conceptos de programación no es como cualquier otro 
aprendizaje, no es un proceso definido y no se trata sólo de memorización, para este 
propósito los videojuegos educativos pueden ser una herramienta efectiva, donde el 
jugador puede obtener conocimientos de programación en un ambiente educativo-
virtual e interactivo, donde pueden aumentar la motivación para el aprendizaje y 
mejorar la comprensión y adquisición de nuevos conocimientos (Ticante 
Hernández, Herrera Orduña, Arguijo, Meléndez Armenta, & Vázquez López, 2019) 
 En el anterior artículo se habla sobre la importancia de los juegos y sus usos en 
áreas ajenas a la ingeniería, como es el caso de la medicina y de cómo he aportado un 
método de enseñanza intuitivo e interactivo hacia la población joven. También, cómo por 
medio de los videojuegos se puede obtener una herramienta que facilita el aprendizaje Y la 
adquisición de nuevos conocimientos. 
3.4 Diseño de la Solución 
 A continuación, se mostrarán las diferentes implementaciones del desarrollo del 
proyecto con base a la terminología relacionada en el marco teórico y plasmada en el 
diagrama de flujo. 
 
 
 
 
 
3.4.1 Planificación 
 3.4.1.1 Historias de Usuario 
 Se desarrollaron las historias de usuario ( 
) conforme a lo que los requerimientos funcionales como lo son, la interfaz gráfica, las 
diferentes pantallas y escenas, el guion y la trama del video juego, la banda sonora, los 
comportamientos de las pantallas y los comportamientos del entorno y personaje, 
conexiones a la base de datos y roles de usuarios. 
 3.4.1.2 Plan de entregas 
 Conforme a la dificultad de las historias de usuario se realiza el siguiente plan de 
entregas: 
Tabla 1 
Plan de Entregas 
Historias Iteración Prioridad Esfuerzo Fecha Inicio Fecha Final 
Historia 1 1 Media 1 01/04/2021 04/04/2021 
Historia 2 1 Alta 2 04/04/2021 15/04/2021 
Historia 3 1 Alta 2 15/04/2021 27/04/2021 
Historia 4 1 Media 2 27/04/2021 02/05/2021 
Historia 5 2 Alta 3 02/05/2021 19/05/2021 
Historia 6 2 Alta 3 19/05/2021 23/05/2021 
Historia 7 3 Media 3 23/05/2021 26/05/2021 
Historia 8 3 Media 1 26/06/2021 29/06/2021 
Historia 9 3 Alta 3 29/06/2021 04/06/2021 
Historia 10 3 Alta 3 04/06/2021 09/06/2021 
Nota: Cronograma en base a la prioridad de las historias (elaboración propia) 
 3.4.1.3 Plan de Iteraciones 
 Conforme al plan de cronograma se realiza la planificación de las iteraciones. 
 Primera iteración: En a la primera iteración se han desarrollado los módulos de 
registro e ingreso del usuario, los cuales para lograr su progreso se ha utilizado u aplicado 
cada una de las herramientas que se destacan en la metodología XP. 
 
 
Tabla 2 
Primera Iteración 
Número Nombre Módulo 
1 Pantalla de presentación Usuario 
2 Pantalla de configuración Usuario 
3 Panel de sonido u 
sensibilidad 
Control 
4 Pantalla de inicio Consulta 
Nota: Historias de usuario a trabajar en la primera iteración (elaboración propia) 
Se muestra de manera general las tareas de ingeniería de la primera iteración: 
Tabla 3 
Tareas de Ingeniería Primera Iteración 
Número de tarea Historia Nombre de la tarea 
1 1 Diseña interfaz inicial del 
juego 
2 2 Diseño interfaz de 
configuración 
3 2 Planeación de niveles 
4 2 Maquetación niveles 
5 3 Movilidad de personaje 
6 3 Animación de personaje 
7 4 Programación interfaz 
(empezar, salir, 
configuraciones) 
8 4 Implementación de texturas 
Nota: Tareas a trabajar en las historias de usuario relacionadas con la primera iteración (elaboración propia) 
 
 
 
 
 
 
Segunda Iteración: 
Tabla 4 
Segunda Iteración 
Número Nombre Módulo 
5 Configuración Configuración y consulta 
6 Tutorial Interacción 
Nota: Historias de usuario a trabajar en la segunda iteración (elaboración propia) 
 Se muestra de forma general las tareas de ingeniería para la segunda iteración. 
Tabla 5 
Tareas de Ingeniería Segunda Iteración 
Número de tarea Historia Nombre de la tarea 
1 5 Interfaz donde se plasmará 
las diferentes 
configuraciones principales 
del juego. 
2 5 Interfaz de sensibilidad y 
sonido del juego 
3 5 Interfaz de ayuda con 
información útil a cerca del 
juego. 
4 5 Interfaz explicando los 
controles para la movilidad. 
5 5 Interfaz de creadoresdel 
juego 
6 5 Programación de continuar 
o regresar entre escenas 
7 6 Desarrollar animación de 
movimientos básicos del 
personaje 
8 6 Programación de teclas y 
cámara al personaje. 
9 6 Programación de físicas de 
personaje y objetos. 
10 6 Programación del entorno y 
objetos. 
11 6 Programación de puzles y 
eventos. 
12 6 Animación a objetos y 
entorno. 
Nota: Tareas a trabajar en las historias de usuario relacionadas con la segunda iteración (elaboración propia) 
 
 
 Tercera Iteración: 
Tabla 6 
Tercera Iteración 
Número Nombre Módulo 
8 Configuración del juego Configuración 
9 Opciones Configuración 
10 Lobby del juego Control 
Nota: Historias de usuario a trabajar en la tercera iteración (elaboración propia) 
 Se muestra de forma general las tareas de ingeniería para la tercera iteración: 
Tabla 7 
Tareas de Ingeniería Tercera Iteración 
Número de tarea Historia Nombre de la historia 
1 8 Programación sonido y 
orientación. 
2 8 Interfaz de configuraciones 
de volumen. 
3 9 Programación recargue de 
escenas 
4 9 Interfaz de instrucciones de 
niveles 
5 9 Programación de sonidos de 
ambiente. 
6 10 Programación sonidos de 
personaje 
7 10 Programación interacción 
con objetos 
8 10 Programación y 
enlazamiento de niveles. 
Nota: Tareas a trabajar en las historias de usuario relacionadas con la tercera iteración (elaboración propia) 
 
3.4.1.4 Reuniones diarias de seguimiento 
Para el seguimiento de cada historia propuesta por el cliente se establecerá 
reuniones diarias de desarrolladores y el cliente presente, para revisar el proceso de dichas 
historias. Puntualizando temas cómo qué inconvenientes se han presentado en el transcurso 
del desarrollo, cómo se ha seguido el cronograma propuesto para la entrega de cada historia 
y compartir soluciones qué maximicen el desarrollo. 
 
3.4.2 Diseño 
 
3.4.2.1. Simplicidad 
El siguiente apartado se mostrarán las figuras 1-6 de pantallazos del juego ya 
finalizado en su totalidad. 
 
Figura 1 
La figura 1 muestra la interfaz del ingreso del usuario 
 
Figura 2 
 
 
En la figura 2 se visualiza el lobby principal del juego en donde aparecerá el 
personaje y se podrá ir a diferentes niveles dependiendo la opción que se escoja. 
 
 
Figura 3 
 
 
 
La figura 3 se muestra u mensaje de bienvenida y una pequeña sinopsis del juego 
 
Figura 4 
En la figura 4 se da un vistazo a los controles principales que permitirán la 
movilidad del personaje y vehículo. 
 
 
 
En la figura 5 vistazo del nivel encargado de presentar los variables que son usada 
en la programación. 
 
Figura 5 
 
 
 
 
 
 
 
 
 
En la figura 6 se muestra el nivel encargado de mostrar las sentencias condicionales. 
 
 
 
 
 
 
 
 
 
 
 
En la figura 7 se muestra el nivel encargado de mostrar los ciclos repetitivos por 
medio de unas pitas de carreras. 
3.4.2.2 Manual de usuario 
Como resultado final, se realizó el manual de usuario en donde se brindan las 
instrucciones de las mecánicas del video juego a la persona que vaya a jugar. 
 
Figura 6 
Figura 7 
 
Para la interacciona con los banners en el lobby, se usa la letra e y se realiza el cambio de 
dialogo con q. 
 
 
 
Para tomar objetos se usa el click izquierdo y se suelta con el click de scroll del mouse 
 
 
Las mecánicas de movimiento se realizan con las letras a, w, s, y d. Para correr se usa 
manteniendo el click derecho. 
 
Para realizar saltos se ejecuta con la tecla espacio 
 
Para la manipulación del automóvil, se usan de movimiento las teclas a, s, w y d. Para 
frenar se usa la tecla la tecla sostenida s. el movimiento de la cámara se realizará con el 
mouse y para reiniciar el nivel se usará la tecla i. 
 
En este manual se habla de los comandos que se presentan en el juego, de igual manera, al 
iniciar el juego se presentara un pequeño esquema de los controles que se usaran el todo el 
juego. 
4. Análisis y Discusión 
 
 4.1 Análisis 
En este proyecto se llegó desde la etapa de diseño hasta la de desarrollo. Abarcando 
una investigación a fondo de tecnologías que aplicaremos en nuestro videojuego como 
también de antecedentes posteriores qué propusieron o desarrollaron una idea parecida a la 
nuestra. También se condensa la metodología ágil XP, la cual se resaltan desde el 
cronograma, historias por parte del usuario, organización, asignación de tareas y además se 
caracteriza por no ser necesario la estructuración de todo el proyecto desde un comienzo, 
dado que en el transcurso del tiempo se pueden ir haciendo modificaciones, pero se tendrá 
una idea inicial. Igualmente, se implementó el diseño de acuerdo con la metodología, 
llevando desde un orden en el desarrollo del proyecto, asignación de dificultad, 
complejidad, prioridad y hasta la asignación de tiempos de entrega por parte de los 
desarrolladores. A consecuencia de la aplicación de la metodología XP en nuestro proyecto, 
se llega a presenciar de manera más simple dado que se puede evidencia que conformar el 
desarrollo y terminación del proyecto. En vista a lo expresado con anterioridad se da a la 
finalidad del producto final desde interfaces iniciales y sus correspondientes niveles, 
cumpliendo con la idea principal del juego; representar de una manera sencilla lo básico en 
la programación. 
4.2 Discusión 
A pesar de que hoy en día aún se siguen viendo a los videojuegos de una manera 
negativa, decidimos incursionar en el desarrollo de un videojuego que abarca el 
fortalecimiento de estudiantes de ingeniería. Dado que es una de las principales dificultades 
que se presentan a los futuros aspirantes a ingenieros de sistemas. Para cambiar su manera 
de pensar a la hora de percibir los problemas, como se puede presenciar en las 
investigaciones citadas y también referenciadas en este documento. Se evidencia qué los 
videojuegos no impactan de manera negativa a jóvenes, sino que, al contrario, despierta en 
ellos una forma de aprender de manera intuitiva al desarrollarse diferentes retos o pruebas 
que se presenten en transcurso. Por esta razón y dejando a un lado las críticas negativas 
decidimos incursionar para llegar a los jóvenes de una manera fácil y sencilla de 
fortalecimiento lógico. En la actualidad, podemos encontrar diversas herramientas para 
aprender a programar, pero viéndose que el problema trasciende más a fondo. Si, cualquiera 
puede aprender a programar, por medio de libros, cursos o las metodologías de aprendizaje 
convencionales, pero ¿qué herramientas conocemos que sean intuitivas y bajo en el 
esquema de un videojuego para estudiantes? Por medio de un videojuego no solo será 
entretenido, sino que además podrías ser un medio que refuerce las enseñanzas de los 
estudiantes. 
 
 
5. Recomendación 
 En esta primera entrega del proyecto se dará en estado beta, dado que no se llegará a 
poner en prueba en estudiantes de primer semestre en la ingeniería de sistemas. Pero coma 
cabe aclarar que queda la posibilidad de una segunda o tercera entrega, siguiendo los 
mismos objetivos o ideas principales de este proyecto como englobando la idea principal de 
este trabajo. Esta idea queda disposición de cualquier persona que sienta curiosidad o que 
quiera llevar más allá en el aprendizaje de estudiantes de primer semestre de la ingeniería 
en sistemas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6. Conclusiones 
 
 Como conclusión a la finalización del desarrollo de este videojuego el cual cumple 
con el objetivo de plasmar en su interior de forma didáctica conceptos básicos como las 
variables sentencias de decisión y los ciclos repetitivos de la programación. Cabe aclarar 
que no se llegó a poner en práctica en estudiantes de primeros semestres dado que esta 
primera entrega es una beta, esto quiere decir que queda abierta la posibilidad a cualquier 
persona que quiera indagar en el desarrollo de una segunda otercera entrega. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Referencias 
Adobe . (13 de 03 de 2020). Encuentre respuestas a preguntas comunes sobre Adobe Fuse 
CC (Beta) y servicios relacionados. Obtenido de adobe: 
https://helpx.adobe.com/beta/fuse/faq.html 
Adobe. (04 de 11 de 2019). Animar personajes 3D con Mixamo. Obtenido de adobe: 
https://helpx.adobe.com/es/creative-cloud/help/animate-characters-mixamo.html 
Ángel Torres-Toukoumidis, L. M. (2010). Juegos y sociedad. Mexico: Mc Graw Hill. 
Anguas, J., Díaz, L., Gallego, I., Lavado, C., Reyes, A., Rodríguez, E., . . . Valero, M. 
(2006). La técnica del Puzzle al servicio del aprendizaje de la. Obtenido de 
researchgate: 
https://www.researchgate.net/profile/Eva_Rodriguez7/publication/228359182_La_t
ecnica_del_Puzzle_al_servicio_del_aprendizaje_de_la_programacion_de_ordenado
res/links/0c96051caf6fd0d3c4000000.pdf 
Arias, Á. (2004). Aprende a programar C. 
Barragán, H. (2008). Software: ¿arte? Obtenido de banrepcultural: 
https://www.banrepcultural.org/artenlared/sccs/02/barragan.pdf 
C algoritmos, p. y. (2005). Luis Aguilar Joyanes. MCGraw-Hill. 
Catalinas, E. Q. (2002). Sistemas operativos y lenguajes de programación. Editorial 
Paraninfo. 
Cerón Cardona, A., & Bedoya Herrera, P. A. (2017). MANUAL BASICO DE UNITY 3D 
COMO APOYO AL DESARROLLO TURÍSTICO NACIONAL. Obtenido de 
amazonaws. 
Code.Org. (26 de 02 de 2013). "Code Stars" - Short Film [archivo de vídeo]. Recuperado el 
19 de 04 de 2020, de Youtube: 
https://www.youtube.com/watch?time_continue=6&v=dU1xS07N-
FA&feature=emb_title 
Darias, A. M. (2014). Cuadernos de innovacion educativa. 
Didact, S. (2005). MAnual de programacion lenguajes C++. MAD. 
Echeverry Tobón, L. M., & Delgado Carmona, L. E. (2007). Caso Práctico de la 
Metodología Ágil XP al Desarrollo de Software. Obtenido de amazonaws: 
https://s3.amazonaws.com/academia.edu.documents/45543592/0053E18cp.pdf?resp
onse-content-
disposition=inline%3B%20filename%3D2_CASO_PRACTICO_DE_LA_METOD
OLOGIA_AGIL_X.pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=ASIATUSBJ6BACDBXQW7V%2F20200423%2Fus- 
Esteve, J. (22 de 11 de 2012). Xataca. Obtenido de Xataca: 
https://www.xataka.com/otros/debe-ensenarse-programacion-en-todas-las-carreras-
de-la-universidad 
Ferrer, J. (10 de 10 de 2002). Programación eXtrema y Software. Obtenido de geofisica: 
http://www.mmc.geofisica.unam.mx/Replicas/LuCAS/Presentaciones/200211hispal
inux/ferrer/robles-ferrer-ponencia-hispalinux-2002.pdf 
Fuentes Rosado, J. I., & Moo Medina, M. (2017). Dificultades de aprender a programar. 
Revista Educación en Ingeniería, 6. 
Gama, R. L. (2017). Game over: juegos electronicos y veolencia. UOC. 
Garcia, I. (11 de 03 de 2020). Todo papas. Obtenido de 
https://www.todopapas.com/ninos/educacion/la-importancia-de-los-juegos-
interactivos-infantiles-en-la-educacion--6704 
GlobalData plc. (08 de 07 de 2016). What is C++? Obtenido de ProQuest LLC: 
https://bbibliograficas.ucc.edu.co:2149/docview/1802712221?accountid=44394 
Javier Francisco Otera Noguera, D. R. (2013). Programación. En D. R. Javier Francisco 
Otera Noguera, Programación (pág. 115). Editorial UOC. 
Joskowicz, J. (10 de 02 de 2008). Reglas y Prácticas en extreme Programming. Obtenido 
de amazonaws: https://s3.amazonaws.com/academia.edu.documents/31398587/xp_-
_jose_joskowicz.pdf?response-content-
disposition=inline%3B%20filename%3Dxp_jose_joskowicz.pdf&X-Amz-
Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=ASIATUSBJ6BAHPM2T653%2F20200420%2Fus-east-1%2Fs3%2 
Joyanes, L. A. (2006). Programación en Pascal. McGraw-Hill. 
Juganaru, M. M. (2014). Introducción a la programación. Editorial Patria. 
Juganaru, M. M. (2014). Introducción a la programación . En M. M. Juganaru, Introducción 
a la programación . Grupo Editorial Patria. 
López, L. J. (2014). Programación oritada a objetos C++ y Java. Patria. 
Luisa Garzón Villar, E. L. (2004). Informativa Volumen ll. Sevilla: MAD. 
Méndez, G., Obviedo, E., Fallas, G., Vega, C., & Méndez , A. (2014). Análisis de las 
herramientas Unity y Blender para el desarrollo de videojuegos con un enfoque 
educativo. Obtenido de amazonaws: 
https://s3.amazonaws.com/academia.edu.documents/33748007/Analisis_de_las_her
ramientas_Unity_y_Blender_para_el_desarrollo_de_videojuegos_con_un_enfoque_
educativo.pdf?response-content-
disposition=inline%3B%20filename%3DAnalisis_de_las_herramientas_Unity_y_B 
Ministerio de Tecnologías de la Información y las Comunicaciones. (19 de 10 de 2015). 
Miles de niños colombianos aprenderán a programar desde Puntos Vive Digital. 
Obtenido de Ministerio de Tecnologías de la Información y las Comunicaciones: 
https://www.mintic.gov.co/portal/inicio/Sala-de-Prensa/Noticias/13710:Miles-de-
ninos-colombianos-aprenderan-a-programar-desde-Puntos-Vive-Digital 
Ministerio de Tecnologías de la Información y las Comunicaciones. (30 de 10 de 2017). 
MinTIC y Platzi abren cursos virtuales gratuitos para fortalecer habilidades TIC de 
los emprendedores colombianos. Obtenido de Ministerio de Tecnologías de la 
Información y las Comunicaciones: https://www.mintic.gov.co/portal/inicio/Sala-
de-Prensa/Noticias/61415:MinTIC-y-Platzi-abren-cursos-virtuales-gratuitos-para-
fortalecer-habilidades-TIC-de-los-emprendedores-colombianos 
Morales, J. M. (2015). Serious games: Diseño de videojuegos con una agenda educativa y 
social. UOC. 
Niederauer, J. (2005). Integrando PHP 5. Obtenido de amazonaws: 
https://s3.amazonaws.com/academia.edu.documents/34869982/php.pdf?response-
content-
disposition=inline%3B%20filename%3DGuia_de_Consulta_Rapida.pdf&X-Amz-
Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=ASIATUSBJ6BAKYHP5KFY%2F20200424%2Fus-east-
1%2Fs3%2Faws4_requ 
Oviedo, E. R. (2015). Lógica de programación orientada a objetos. Ecoe Ediciones. 
Pere-Pau Vazquesz Alcocer, J. M. (2006). Programción en C++ para ingenieros . Madrid: 
Espain Paraninfo S.A. 
Ramírez, D. P. (2008). METODOLOGÍAS ÁGILES.¿CÓMO DESARROLLO. Recuperado 
el 20 de 04 de 2020, de amazonaws: 
https://s3.amazonaws.com/academia.edu.documents/52482210/1174-1242-1-
PB.pdf?response-content-
disposition=inline%3B%20filename%3DMETODOLOGIAS_AGILES._COMO_D
ESARROLLO_UTI.pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=ASIATUSBJ6BAKNVWHWHB%2F20200420% 
Razif, K. A. (1 de 09 de 2016). Medium. Obtenido de Medium: https://medium.com/10-
goto-10/algoritmos-pseudoc%C3%B3digo-estructuras-de-decisi%C3%B3n-y-
repetici%C3%B3n-917169a36ce4 
Rivera Meza, I. D. (2017). DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA DE 
CÓDIGO DE BARRAS CON LA METODOLOGÍA XP PARA OPTIMIZAR EL 
CONTROL DE ASISTENCIA EN LA JUNTA ADMINISTRADORA DE SERVICIOS 
DE SANEAMIENTO QUILCAS. Obtenido de Universidad Peruana de los Andes: 
http://repositorio.upla.edu.pe/handle/UPLA/232 
salas, J. J. (2003). Introducción a la programación teoríca y practica. San Vicente: 
Editorial Club Universitario. 
Salinas, M. I. (01 de 04 de 2011). Entornos virtuales de aprendizaje en la escuela: tipos, 
modelo didáctico y rol del docente. Obtenido de amazonaws: 
https://s3.amazonaws.com/academia.edu.documents/33050741/Eva1.pdf?response-
content-
disposition=inline%3B%20filename%3DEntornos_virtuales_de_aprendizaje_en_la.
pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=ASIATUSBJ6BABLBSC6XJ%2F20200424%2Fus-east-1 
Santamaria, C. A. (1991). Lenguaje C++. Bogotá: CODICE LTDA. 
Sierra, J. C. (2007). Programcion Orientada a Objetos con C++. RA-MA. 
Sierra, J. C. (04 de 03 de 2011). Microsoft C#. Curso de Programación. 2ª edición. 
Obtenido de Google Libros: https://books.google.es/books?hl=es&lr=&id=EK8-
DwAAQBAJ&oi=fnd&pg=PT6&dq=que+es+C%23&ots=aiSENyvqHn&sig=ctAK
IFvhbLEpvSXhX-Lh5mwNs2Y#v=onepage&q=que%20es%20C%23&f=false 
SINC. (20 de 04 de 2016). Sinc La Ciencia es Noticia. Obtenido de 
https://www.agenciasinc.es/Noticias/La-programacion-una-gran-desconocida-para-
alumnos-y-padres 
Ticante Hernández, A. C., Herrera Orduña, C. M., Arguijo,

Continuar navegando

Materiales relacionados