1 Competencias Matemáticas Presentes en la Programación ¿Qué competencias matematicas se requieren para aprender a programar? MATEMATICAS NS Programa de diploma IB Daniela Malagon Fonseca NUMERO DE PALABRAS: 3998 Cajica, 2022 2 Contenido 1. Resumen 2. Introducción 3. Marco Teórico 3.1 ¿Qué es una competencia? 3.2 ¿Qué son las competencias matematicas? 3.3 Procesos generales de la actividad matematica 3.4 Tipos de pensamiento matematico 3.5 Programación 3.6 Lenguaje de Programación 3.7 Pensamiento computacional 3.7.1 Resolución de Problemas 3.7.2 Algoritmos 4. Relacion entre pensamiento matemático y el pensamiento computacional 5. Requerimientos para desarrollar la capacidad de programar en los estudiantes 6. Demostraciones 7. Conclusiones 8. Bibliografía 1. Resumen La programación es una habilidad indispensable durante el actual fenómeno de la Cuarta Revolución Industrial, por ello, se hace necesario su aprendizaje desde una temprana edad, sin embargo, su implementación en el sistema educativo colombiano es limitada o nula. A partir de lo anterior, la presente monografía expone como se puede implementar la 3 habilidad de programar, integrando el área de matemáticas, teniendo en cuenta las similitudes entre el desarrollo de pensamiento variacional y los sistemas algebraicos y analíticos, con el desarrollo del pensamiento computacional; este paralelismo entre las habilidades, hace posible que el estudiante pueda desarrollar sus competencias matemáticas, apoyándose en las herramientas tecnológicas que se le brindan. 2. Introducción Una competencia se define como los conocimientos, habilidades, actitudes, comprensiones y disposiciones cognitivas, socioafectivas y psicomotoras apropiadas para un desempeño eficaz hacia una actividad (Ministerio de Educación Nacional, 2006). En el caso de las matematicas estas actividades hacen referencia a la capacidad de resolver problemas numericos. En el contexto actual la habilidad de programar se requiere en los diferentes entornos de las actividades humanas, como estrategia para resolver problemas con medios informaticos. La revision teorica realizada en este trabajo, permitió establecer que el desarrollo de actividades matematicas contribuye al logro de actividades de programación. La programación no se trata solo de escribir código, sino también de la capacidad de analizar una situación, identificar sus componentes clave, modelar los datos y procesos, para crear o refinar un programa a través de un enfoque ágil de diseño. En entornos educativos, la programación podría usarse como una herramienta de creación de conocimiento. Por ende, se debe involucrar a los estudiantes en actividades de programación creativa, ya que la naturaleza interactiva de los medios tecnológicos les permite probar sus modelos, al tiempo que respalda un enfoque orientado a prototipos (Romero, Lepage, & Lille, 2017). 4 La implementación de esta estrategia pedagógica es viable, pues existen múltiples recursos didácticos como los cursos en línea denominados MOOCs, o por medio de aplicaciones gratuititas que permiten el aprendizaje de la programación. Además, se considerarse relevante, ya que implica la creación de productos útiles, valiosos y de creciente uso que pueden ser compartidos a nivel internacional y hacen a la persona notable en la sociedad digital (Gonzáles, 2016). Por otro lado, el STEM, acrónimo para referirse a los conocimientos de ciencias, tecnología, ingeniería y matemática, insiste a incluir este tipo el aprendizaje para comprender el mundo sistematizado y tecnificado que nos rodea. Teniendo en cuenta lo anterior, se hace necesario abordar la enseñanza de programación en edades tempranas (González, 2019). Con fundamento en lo escrito anteriormente, esta monografía tiene como propósito describir la relación entre la programación y el área de matemáticas basándose en las competencias que requieren una y otra, y los elementos necesarios para desarrollar el pensamiento computacional dentro del sistema educativo. 3. Marco teórico A continuación, se desarrollaran los diferentes conceptos que permitirán conocer mejor las competencias que requiere un programador y un estudiante en el área de matemáticas. 3.1 ¿Qué es una competencia? Teniendo como base lo expresado por el Ministerio de Educación Nacional (2006), una competencia “es entendida como un saber hacer en situaciones concretas que requieren la aplicación creativa, flexible y responsable de conocimientos, habilidades y actitudes” (p.12). Con base en lo anterior desarrollar una competencia implica poseer una serie de conocimientos y tener la habilidad de aplicarlos en la situación correcta. 5 3.2 ¿Qué son las competencias matemáticas? Las competencias matemáticas están relacionadas con el saber que, el saber que hacer, y el sabe como, cuando y porque hacerlo, ejerciendo una acción reflexiva que implica conocer que disposiciones y actitudes se requieren para hacerlo de modo que el individuo sea capaz de desarrollar cuatro procesos generales: Formular, plantear, transformar y resolver problemas estableciendo relaciones entre componentes y con situaciones semejantes usando ideas matemáticas pertinentes Utilizar registros de representación simbólica de los lenguajes matemáticos Usar argumentación, prueba y refutación buscando la demostración Dominar procedimientos y algoritmos matemáticos usándolos de manera flexible y eficaz (Ministerio de Educación Nacional, 2006). A partir de lo anterior, podría decirse que ser competente en matemáticas implica tener la capacidad de representar problemas cotidianos, utilizando símbolos matemáticos y resolverlos usando procedimientos y algoritmos. 3.3 Procesos generales de la actividad matematica El Ministerio de Educación Nacional (2006), ha planteado en sus lineamientos curriculares para el área de matemáticas, tres procesos generales que desarrollarían las competencias en esta área, estos son: 1. Resolución de problemas: este proceso permite abordar problemas, desplegando estrategias para resolverlos; abordando situaciones complejas que pueden estar ligadas al quehacer estudiantil o a experiencias cotidianas. 2. Comunicación y modelación: plantear sistemas figurativos, mentales, gráficos o representaciones tridimensionales para comprender estructuras y generar 6 transformaciones o procedimientos por medio de lenguajes propios de las matemáticas, permitiendo comunicar preguntas, problemas, conjeturas y resultados. 3. El razonamiento: capacidad de percibir regularidades y relaciones, hacer predicciones y conjeturas, justificar o refutar las conjeturas, dar explicaciones coherentes, proponer interpretaciones y adoptarlas o rechazarlas con argumentos y razones. Lo anterior plantea la necesidad de desarrollar en los jóvenes la capacidad de reconocer situaciones problemáticas y mediante el análisis de sus componentes, proponer métodos para resolverlas; teniendo como fundamento, una serie de conocimientos que permiten definir las estrategias de solución y los pasos necesarios para ejecutarlas. 3.4 Programación La programación es la ejecución de ordenes a través de un código, en un formato tangible, por medio de una computadora, mediante una serie de pasos o etapas para resolver un problema, en este se emplean palabras clave, símbolos, reglas sintácticas y semánticas. Para ello, el programador debe tener un pensamiento computacional desarrollado, saber diseñar algoritmos, tener un software compilador y conocer un lenguaje de programación (Fonseca, 2021). Partiendo de lo anterior, vemos como la programación busca la resolución de problemas de la vida cotidiana a través de los medios tecnológicos. Para entender mas a profundidad las competencias del programador, se desglosan los términos mencionados. 3.5 Lenguaje de Programación Es el lenguaje que se emplea para crear un programa; se caracteriza por tener una sintaxis y una semántica propia; la sintaxis se refiere a la gramática del código a utilizar, esta es diferente en cada lenguaje. Su semántica se refiere a instrucciones, tipos de datos, 7 definiciones, métodos y demás elementos, los cuales son universales para todos los lenguajes (Fonseca, 2021). El método y estructura utilizado depende del paradigma de programación que se vaya a emplear con base en su finalidad, facilidad e infraestructura tecnológica donde se desarrollara. Los tipos de datos son la forma como se caracteriza la información almacenada en una variable, las cuales pueden ser simples, que almacenan cualquier valor o compuestas, que cambian según el lenguaje y arreglos, es decir, colecciones de datos (Fonseca, 2021). El lenguaje de programación define la forma como el programador dará las instrucciones a la maquina, de modo que realice las operaciones que se desean; usar un lenguaje de programación, implica conocer la sintaxis y la semántica propia del lenguaje, además de tener un pensamiento computacional y matemático, para así desarrollar algoritmos que resuelvan exitosamente un problema. 3.6 Pensamiento computacional El pensamiento computacional fue un termino creado por Jeannette M.Wing en 2006, donde argumenta que este método permite tomar un problema complejo, entenderlo y desarrollar posibles soluciones (Quitério, 2017). Se crea a partir de la presencia de la computación en la cotidianidad y la necesidad de obtener provecho de esta, además de la capacidad analítica que fomenta (Jorge, Mauro, & Hamilton, 2016). Se identifican dentro del pensamiento computacional dos ramas, el pensamiento critico como el modo de pensar sobre algún tema, problema o contenido; y el poder de la computación entendiéndolo como el uso de conceptos relacionados a esta que permiten comprender los aspectos de un problema que puede resolverse (Alberto & William, 2016). 8 Esta forma de afrontar los problemas, proporciona diferentes maneras de resolverlos con el éxito y eficacia, que de otra forma las personas no son capaces de resolver por si solas (Xavier, Miguel, & Juan, 2015). Su integración se hace necesaria para aumentar el crecimiento económico y para los puestos de trabajo tanto de hoy como los futuros próximos, el objetivo no es formar solamente informáticos, sino que cualquier persona con cualquier profesión sea capaz de comprender como usar la computación para resolver los problemas que se presenten (Jordi, Mariá , Francesc, & Mariá , 2019). A partir de lo anterior, distintos autores establecieron las características que el pensamiento computacional debía tener para desarrollarse correctamente. A continuación se muestra la comparación entre tres autores: Jeannette M. Wing (2006) 1. Conceptualización: Pensar en múltiples niveles de abstracción 2. Habilidad básica: No debe ser automatico 3. Manera de pensar: Piensan las personas no los computadores 4. Complemento con el pensamiento matemático e ingenieril: Fundamentos matematicos 5. Ideas: Presentes en la vida diaria 6. Para cualquiera en cualquier parte: Utilizar estos pensamientos constantemente Román, Pérez y Jiménez (2015) 1. Descomposición: Dividir el problema en pequeñas partes 2. Reconocimiento de patrones: Percibir similitudes 3. Generalización de patrones y abstracción: Ignorar informacion innecesaria 4. Diseño algorítmico: Desarrollar un plan paso a paso Fundacion Google for education 1. Abstraccion: Extraccion de informacion importante 2. Diseño de algoritmos: Creacion de pasos para solucionar un problema 3. Automatizacion: Usar las tecnologias para realizar tareas repetitivas 4. Recoleccion de datos 5. Descomposicion: Dividir el problema en partes mas pequeñas. 6. Pararelizacion: Realizar las tareas pequeñas para llegar a la solucion final 7. Generalizacion de patrones: Creación de 9 modelos, reglas, principios y teorías de los patrones 8. Reconocimiento de patrones: Observación de estos en los datos. 9. Simulación: Desarrollo de modelos que imitan las situaciones del mundo real. Tabla 1. Comparacion entre las caracteristicas de pensamiento compuracional segun Wing, Román, Pérez y Jiménez (Angulo, 2019) y Google for education (Sarmiento, 2019) Con base en la Tabla 1, se aprecia que el pensamiento computacional busca resolver problemas, a partir de la abstracción de los mismos, el planteamiento de estrategias para resolverlos y la ejecución de algoritmos que lleven a la solución del problema, evaluando su efectividad. 3.6.1 Resolución de problemas El pensamiento computacional se estructura en su mayor parte a través de la resolución de problemas, entendiéndolo como un mecanismo que favorece el aprendizaje. Para esto, se debe hacer uso de las herramientas digitales para encontrar una o mas soluciones (Pérez, 2017). Esta habilidad a largo plazo puede tener efectos positivos en el campo laboral del estudiante o en ambientes no relacionados con la computación (Jacqueline, Mariela, María, & Roberto, 2018). El desarrollo del pensamiento computacional, permite que el individuo resuelva problemas cotidianos, haciendo uso de conocimientos y experiencias previas, para establecer una secuencia de pasos, que llevaran a la solución exitosa de la situación problemática; por lo general para la ejecución de estos procesos, se emplean herramientas tecnológicas. 10 3.7.2 Algoritmos Según Eduardo, Gara y Coromoto (2017), el pensamiento algorítmico es un conjunto de conceptos que implica descomposición funcional, repetición, organización de datos básicos, generalización y parametrización, diseño planificado y refinamiento, entre otros. Se considera como un paso antes de programar. Según los autores, el pensamiento algorítmico incluye: 1) Analizar problemas dados 2) Especificar o representar un problema con precisión 3) Encontrar las instrucciones básicas y apropiadas para resolver un problema dado 4) Construir un algoritmo para resolver el problema siguiendo la secuencia de acciones dada 5) Pensar en todos los casos posibles de un problema dado 6) Mejorar la eficiencia de un algoritmo. Un algoritmo no es más que la secuencia de pasos que se plantea, para ejecutar una tarea o resolver un problema. A continuación se revisaran las propiedades de un algoritmo. Para Debdi (2014), se identifican tres puntos de vista para descomponer la creación de un algoritmo, cada uno de estos se puede analizar de dos maneras: 1) Corrección: El algoritmo es correcto si presenta la solución requerida para el problema dado. Desde el análisis formal, el algoritmo puede mostrar desde las reglas formales de la lógica que funciona, en el análisis experimental, se le dan diferentes problemas en los que tiene que dar una solución. 2) Eficiencia: El mejor algoritmo que se pueda crear haciendo comparaciones entre otros que resuelven el mismo problema. Para el análisis formal se hace una 11 comparación entre el tamaño de los datos y el tiempo de resolución y para el experimental se toma el tiempo de ejecución del algoritmo. 3) Optimalidad: Debe ser la optimo, no solo valido, para esto desde el análisis formal debe ser mejor que cualquier otra solución posible y desde lo experimental, se debe encontrar un contra-ejemplo para evaluar tal cualidad. A partir de la ultima cualidad, se establecen los algoritmos de optimización para maximizar o minimizar alguna función, como la programación dinámica y el backtracking. La programación dinámica divide el problema en partes pequeñas para darle solución a estas, después combinarlas y resolver el problema completo. El backtracking va buscando soluciones a un problema y cuando comete un error se devuelve al paso anterior. En contraparte, los algoritmos voraces escogen la solución mas optima del momento, sin embargo, no tiene en cuenta las elecciones hechas en el pasado o que se harán en el futuro, por ende, la solución final no es siempre la mas optima (Debdi, 2014). En síntesis, lo que determina la optimalidad, eficiencia y corrección del algoritmo, es que este logre ejecutar la tarea para la que ha sido desarrollado de la manera mas sencilla y eficiente posible. 4. Relación pensamiento computacional y pensamiento matemático Autores como Booth afirman que para la programación se necesita cierto pensamiento matemático, ya que se establece una problematización a la cual se le da una solución. Basado en esto, Papert propuso el aprendizaje matemático, por medio de la programación debido a que se demostró que algunos lenguajes facilitan la conceptualización de algunas variables matemáticas, la resolución de problemas y la cognición (Alvaro & Angel, 2017). Para comprobar lo anterior, se elaboró una experiencia con niños de 11 años los cuales programaron en el lenguaje Hopscroth. Se evidenció una alta motivación de los estudiantes 12 por aprender y un aprendizaje de algebra sencilla, ángulos y sistemas de coordenadas. Otros experimentos se hicieron en base a “Scratch” donde también se encontraron resultados fructíferos(Alvaro & Angel, 2017). Además, una investigación para demostrar la correlación que había entre el gusto por las clases de matemáticas a partir de la programación y los aprendizajes matemáticos que trae consigo, tuvo una correlación fuerte y demostró la capacidad del alumno para “comprender, modificar y utilizar la sintaxis del lenguajes” (Alvaro & Angel, 2017). El autor Abramovich respalda esta información donde establece la dualidad que existe entre la enseñanza y el uso de las tecnologías (Carlos & Roman , 2015). Asimismo, existen programas que ayudan al aprendizaje de fenómenos físicomatemáticos, que incluyen cálculos y representaciones graficas, los estudiantes controlan algunas variables para realizar tal simulación (Segura, Palacios, Granados, & Santaella, 2018). Lo anterior, demuestra la necesidad de que estas dos materias se complementen, pues es poco útil la repetición de ejercicios de algebra, se necesita que el profesor ilustre esto en ejemplos de la vida rea,l donde los estudiantes puedan proponer ideas, teorías y resoluciones del problema, por medio de la computación (Murray.M, 1996). En contraparte, se recomienda el uso de iteración en la programación, apoyándose también en las matemáticas, de manera que se aprenda a reconocer patrones, lo que permite a su vez solucionar problemas con características semejantes usando el mismo método (Zapata, 2015). Para ejemplificar mas específicamente esta relación, basado en los componentes mencionados anteriormente podemos encontrar distintas relaciones. Por ejemplo se define el pensamiento abstracto como el pensamiento geométrico, matemático, etc.; el método de 13 ensayo y error que es frecuentemente utilizado en las matemáticas o la recursividad donde la programación pide que el problema se reparta en problemas mas pequeños (Zapata, 2015): El uso de sistemas algebraicos para resolver problemas, muestra que el pensamiento matemático y el pensamiento computacional, están fuertemente ligados, de modo que, estos dos tipos de pensamientos se complementan, llevando en ambos casos, al desarrollo de habilidades para resolver problemas, utilizando para ello algoritmos que pueden usar operaciones matemáticas, lógicas o de otros tipos. 5. Requerimientos para desarrollar la capacidad de programar en los estudiantes Según Diaz, Fierro y Muñóz (2018), se ha demostrado que una de las causas de dificultad para programar en los estudiantes, es la insuficiencia de conocimiento del profesor hacia tal tema. El problema radica en que los profesores no planifican el currículo de manera gradual y sistemática, además no dan a conocer al estudiante, los diferentes métodos para dirigir su proceso. Más aún, si se lograra dar un proceso de enseñanza de tal modo, los profesores no tienen conocimiento de las habilidades específicas para programar. Teniendo en consideración lo anterior, el estudiante es incapaz de resolver problemas pues no sabe elaborar algoritmos. Es por eso que el profesor necesita de una capacitación, donde se le introduzca el tema y al proceso de enseñanza adecuado para la formación del estudiante. A partir de un estudio realizado en Argentina sobre la dificultad que presentaban los profesores al realizar una tarea, dado que nunca programaron en el pasado y/o actualmente, se demostró la necesidad de capacitar a los profesores para enseñar a programar. Basándose en sus experiencias, el 100% de ellos concluyó que considera importante incorporar la 14 programación en el sistema educativo, mayormente por el pensamiento lógico para la resolución de problemas y las habilidades y competencias requeridas en la actualidad (Dapozo, et al., 2016). Teniendo en cuenta la anterior y el hecho de que ya se ha puesto en consideración el diseño e implementación del curso como una materia mandataria introductoria en las carreras, donde se pueda aplicar la resolución de problemas por medio de la programación (Jacqueline, Mariela, Mariá , & Roberto, 2018), se propone lo siguiente: El lenguaje Python debe ser el primer lenguaje por sus caracteristicas idoneas de sintaxis simple, alta legibilidad, entorno amigable de desarrollo, mayor nivel de expresividad, amplia librería estandar (sintaxis y semantica del lenguaje), diferentes estilos de programacion, disponibilidad de recursos gratuitos y es un software libre (García, 2017). Las instituciones educativas propondrían que se usara C, Turbo C, Pascal; pero estos son lenguajes en desuso y no son de mayor demanda, además, suelen ser mas complicados comparado con la programación orientada a objetos donde se piensa mas en las relaciones entre las partes del programa que como tal en funciones (López, Hernández, Sánchez, Cruz, & Cano, 2009). Además de la necesaria capacitación docente en torno a el uso de lenguajes de programación y de la selección adecuada de un lenguaje de programación para la enseñanza, según Fonseca (2021), se enuncia la importancia de la inclusión de tecnologías apropiadas para el proceso educativo, donde se demostró que el currículo institucional solo menciona de manera informativa sus usos y funciones de manera somera, mas no los incluye como herramienta para el aprendizaje. Finalmente se requiere una mayor difusión acerca de el fenómeno que representa la Cuarta Revolución Industrial, y como este incide en la necesidad del estudiante de aprender 15 a programar, de manera que se tome conciencia del debido proceso a realizar, para incluir esta habilidad en el aprendizaje académico (Fonseca, 2021). Partiendo de las recomendaciones mencionadas anteriormente, se podrá lograr el proceso de transversalización entre el área de matemáticas con el área de tecnología para desarrollar tanto habilidades de programación como el pensamiento variacional y sistemas algebraicos, donde ambas materias se beneficien mutuamente para lograr el proceso educativo que ambas pretenden. 6. Demostraciones: Para corroborar lo establecido en el marco teórico, se tomarán cinco aplicaciones en donde podemos programar y ejercitar nuestra competencias matemáticas, estas son Tracker, Geogebra, Excel, Sublime Text y PyCharm. Tracker y Geogebra: Tracker es una herramienta para la modelación y análisis de videos que permite la comprensión de fenómenos físicos, de modo que el estudiante pueda practicar la competencia de modelación: Figura 1. Aplicación de Tracker Elaboración propia. 16 Como podemos apreciar en la Figura 1, se hace un análisis del movimiento de un objeto en relación con un resorte. Tracker permite observar el movimiento recuadro por recuadro, de manera que podemos realizar un rastreo de este, que estaría representando por los puntos rojos, tanto en el video como en la gráfica. Para programarlo, se establece el plano cartesiano representado por las líneas rosadas, la escala que queremos usar (0,1m) y la cantidad de recuadros en las que seguiremos el movimiento, en este caso se eligió del recuadro 25 al 61. Con estos parámetros especificados, se empezó a seguir el objeto, hasta obtener la tabulación con su respectiva grafica. Ya que el simulador ofrece hasta un tiempo especifico, tenemos una limitada cantidad de datos, por lo que, si se deseara mas información, se obtiene a través de la ecuación de la parábola. Es posible encontrarla con los cálculos respectivos a mano, sin embargo, se puede realizar con mas tiempo y eficiencia a través de la graficadora Geogebra como se muestra en la Figura 2: Figura 2. Grafica en Geogebra Elaboración propia 17 Geogebra permite a partir de la modelación de algunos puntos de cualquier función, hallar la ecuación de esta. Para esto, lo primero es elegir y tabular algunos puntos de la parábola, con certeza, se sabe que entre esos puntos se debe escoger el vértice. Siendo una parábola negativa a simple vista, se debe buscar en la tabla dada por Tracker el punto mas alto en el eje y, en este caso denominado “x(cm)”, el cual es 0.44, y además escoger otros cuatro puntos, todos estos se agruparon en una lista, la cual esta marcada en verde. Geogebra posibilita hacer una entrada que puede realizar distintas acciones, lo que permite hallar la ecuación se denomina “Ajuste polinómico” y dentro del paréntesis pide dos datos: la lista de puntos (l1) y el grado del polinomio, siendo una función cuadrática, se procede a digitar un 2. Automáticamente, Geogebra genera la ecuación y la grafica. Con base en lo hecho en Geogebra, el estudiante practica las competencias de razonamiento y comunicación y modelación. Excel, Sublime Text y Py Charm: Para la siguiente demostración, estos tres programas resolverán el mismo problema: “Calcular Salario por Horas Trabajadas” en donde incluiremos variables como nombre, horas trabajadas, tarifa por hora, bonificación, subtotal y total. La bonificación dependerá de las horas trabajadas, si es mayor a 192 es del 5% y si es menor será del 3%; el subtotal calcula la tarifa por las horas trabajadas y el total suma lo anterior con la bonificación. El compilador que se uso para desarrollar el código C++ se llama Sublime Text y el compilador para desarrollar Python se llama PyCharm. Ambas son aplicaciones gratuitas que se pueden descargar fácilmente. En cuanto a Excel, viene con el paquete Microsoft, también disponible para computadores Mac. 18 Para el desarrollo de un programa, el primer paso será hacer un diagrama de flujo que represente lo que el programa debe hacer: Figura 3. Diagrama de flujo Elaboración propia. Partiendo del diagrama de flujo, teniendo en claro que va a hacer nuestro programa, procederemos a desarrollar el código, para C++ se encontró una fuente que nos provee el código como se observa en la Figura 4, para Python y Excel se realizo con ayuda externa como se observa en la Figura 5 y la Figura 6: Figura 4. Código de “Calcular Salario por Horas trabajadas” en C++ con ejemplo de ejecución (Beastieux, s.f.) 19 Elaboración propia Figura 5. Código de “Calcular Salario por Horas trabajadas” en Python con ejemplo de ejecución Elaboración propia. Figura 6. Código de “Calcular Salario por Horas trabajadas” en Excel con ejemplo de ejecución 20 B2 corresponde a las horas, B3 a la tarifa por horas, B4 a la bonificación y B5 al subtotal. Elaboración propia Los tres programas requieren de conocimientos previos acerca de las funciones que cada programa puede hacer, o bien, una indagación que le permita al programador conocer que clase de funciones puede encontrar y usar para el objetivo planteado. C++ y Python, son códigos bastantes similares, la diferencia radica en la manera en que se nombran las funciones, por ejemplo “cout” equivale a “print”. La facilidad que tiene Python comparada con C++, es que Python no pide definir tipos de variables, mientras que C++ define los datos de texto (“string”), números enteros(“int”) y números decimales(“float”). En cuanto al compilador, PyCharm tiene la facilidad de indicar las líneas donde hay errores de sintaxis, por ende, el programador puede lograr el producto final en menor cantidad de tiempo. Para Excel, tampoco es necesario definir si los datos son de tipo numérico o proposicional. Este programa es un poco mas intuitivo, por lo cual, al menos para el objetivo planteado, es mas eficiente usar esta aplicación. En los tres programas, se evidencio el uso de las tres competencias, donde el estudiante resuelve un problema a través de su razonamiento, para encontrar como calcular los diferentes valores que se le piden, por medio de un lenguaje computacional. Este se considera un ejercicio muy completo, donde el estudiante es capaz de comprender algunos términos 21 matemáticos (operaciones básicas, símbolos de comparación y porcentajes), al mismo tiempo que asimila las bases de la programación. 7. Conclusiones Podemos concluir que las competencias matemáticas están relacionados con el desarrollo del pensamiento computacional, por la similitud de procesos abstractos y prácticos que involucran; así mismo, el desarrollo de estas competencias, favorece el desarrollo de la capacidad de programar, debido a que esto requiere un proceso racional similar que permite la resolución de uno o varios problemas. El desarrollo de las competencias matemáticas forma no solo para resolver problemas matemáticos, sino que permite que el individuo desarrolle la capacidad de abstraer los componentes de problemas cotidianos que sobrepasan el entorno escolar y esto forma para la vida y las diferentes situaciones que se enfrentan a diario. Para llegar al desarrollo de estas competencias se requiere formar en el uso y desarrollo de algoritmos que permitan resolver problemas tanto matemáticos como de la vida cotidiana, de manera que se encuentren patrones en los diferentes problemas que se le presenten y resolverlos de manera similar encontrando sus semejanzas y las maneras mas eficientes de resolverlos. Asimismo, los ejemplos presentados en la sección 6 demuestra el potencial de complemento entre el área de tecnología y de matemáticas mancomunadas, permiten desarrollar las competencias de cada una. Python demostró, en efecto ser una herramienta eficiente para programación, sin embargo, teniendo en cuenta lo anterior, se recomienda para otro tipo de ejercicios que requieran un desarrollo mas complejo. Por su parte Excel da una estructura y unas bases para que el estudiante pueda desarrollar el programa que desee, sin embargo, esto puede presentar una limitante a 22 comparación de Python, que permite empezar de cero y por ende, crear funciones ilimitadas que posibilitan desarrollar un programa de mas complejidad. Finalmente, es necesario que el sistema educativo ponga a disposición de las comunidades educativas, los medios necesarios para lograr el desarrollo de las competencias matemáticas y de programación, lo que implica inversión en capacitación docente e infraestructura tecnológica y conectividad. Bibliografía 1. Romero, M., Lepage, A., & Lille, B. (2017). Computational thinking development through creative programming in higher education. International Journal of Educational Technology in Higher Education, 1-15. 2. Gonzáles, M. R. (2016). CODIGOALFABETIZACIÓN Y PENSAMIENTO COMPUTACIONAL EN EDUCACIÓN PRIMARIA Y SECUNDARIA: VALIDACIÓN DE UN INSTRUMENTO Y EVALUACIÓN DE PROGRAMAS. Madrid: Universidad Nacional de Educacion a Distancia. 3. González, C. (2019). Estado del arte en la enseñanza del pensamiento computacional y la programación en la etapa infantil. Education in The Knowledge Society, 1-12. 4. López, B., Hernández, B., Sánchez, M., Cruz, E., & Cano, R. (2009). PROGRAMACIÓN FÁCIL en el proceso enseñanza-aprendizaje. Sistema de Información Científica Redalyc, 61-70. 5. García, J. (2017). Python como primer lenguaje de programación textual en la Enseñanza Secundaria. EDUCATION IN THE KNOWLEDGE SOCIETY, 148-158. 23 6. Dapozo, G., Petris, R., Greiner, C., Espíndola, M., A. C., & M. L. (2016). Capacitación en programación para incorporar el pensamiento computacional en las escuelas. Revista Iberoamericana de Educación en Tecnología y Tecnología en Educación, 113-121. 7. Angulo, J. A. (2019). El pensamiento computacional en la vida cotidiana. Mérida: Universidad de los Andes, ULA. 8. E. S., G. M., & C. L. (2017). owards the Education of the Future: Computational Thinking as a Generative Learning Mechanism. San Cristóbal de La Laguna: Universidad de La Laguna. 9. Debdi, O. (2014). Aprendizaje Interactivo de Algoritmos Voraces: del Enfoque Individual al Colaborativo . Móstoles: Universidad Rey Juan Carlos. 10. A. B., & A. S. (2017). Aprendizaje de las matemáticas a través del lenguaje de programación R en Educación Secundaria. Valencia: Universidad Católica de Valencia. 11. Segura, C., Palacios, F., Granados, B., & Santaella, C. (2018). Enseñando a programar por ordenador en la resolución de problemas de Fiś ica de Bachillerato. Eureka sobre Enseñanza y Divulgación de las Ciencias, 1-22. 12. Murray.M. (1996). PARADIGMAS EN SOLUCIÓN DE PROBLEMAS MATEMÁTICOS Y USO DE LA COMPUTADORA . Revistas Científicas de América Latina, el Caribe, España y Portugal, 1-9. 13. C. P., & R. S. (2015). ESTADO DEL ARTE SOBRE EXPERIENCIAS DE ENSEÑ ANZA DE PROGRAMACIÓN A NIÑ OS Y JÓVENES PARA EL MEJORAMIENTO DE LAS COMPETENCIAS MATEMÁ TICAS EN PRIMARIA. Bucaramanga.: Universidad Autónoma de Bucaramanga. 24 14. Zapata, M. (2015). Pensamiento computacional: Una nueva alfabetización digital. Revista de Educación a Distancia, 18-28. 15. Pérez, M. (2017). EL PENSAMIENTO COMPUTACIONAL PARA POTENCIAR EL DESARROLLO DE HABILIDADES RELACIONADAS CON LA RESOLUCIÓN CREATIVA DE PROBLEMAS . Cuadernos de desarrollo aplicados a las TIC, 38-63. 16. J. F., M. Z., M. R., & R. G. (14 de 05 de 2018). Experiences in Learning ProblemSolving through Natural Sciences Computational Thinking. Journal of Computer Science & Technology, págs. 136-141. 17. J. B., M. S., & H. N. (2016). Del pensamiento complejo al pensamiento computacional: retos para la educación contemporánea. Red de Revistas Científicas de América Latina, el Caribe, España y Portuga, 143- 159. 18. Quitério, J. (2017). Cómo mejorar el pensamiento computacional: un estudio de caso. EDICIONES UNIVERSIDAD DE SALAMANCA, 35-48. 19. Mauricio, R., & Xavier, B. (2017). Pensamiento computacional: rompiendo brechas digitales y educativas. Revista de Educacion Mediatica y TIC, 27-40. 20. J. S., M. L., F. E., & M. V. (2019). El debate sobre el pensamiento computacional en educación. Revista Iberoamericana de Educación a Distancia, 2-11. 21. A. R., & W. A. (2016). UNA APROXIMACIÓN DESDE LA LÓGICA DE LA EDUCACIÓN AL PENSAMIENTO COMPUTACIONAL. Cuenca : Universidad Politécnica Salesiana del Ecuador. 22. X. B., M. O., & J. O. (2015). Pensamiento Computacional a través de la Programación: Paradigma de Aprendizaje . Revista de Educación a Distancia, 2-33. 25 23. Sarmiento, M. (2019). Experiencias y estrategias educativas con TIC para el desarrollo del pensamiento computacional en Iberoamérica. Revista Pensamiento Actual , 12-26. 24. Ministerio de Educación Nacional. (2006). Estándares Básicos de Competencias en Lenguaje, Matemáticas, Ciencias y Ciudadanas. Bogotá: Ministerio de Educación Nacional. 25. Fonseca, A. (2021). La 4RI en Colombia y el Área de Tecnología e Informática en la Educación Media. Ciudad de Panama : UNIVERSIDAD METROPOLITANA DE EDUCACIÓN, CIENCIA Y TECNOLOGÍA. 26. Diaz, K., Fierro, E., & Muñóz, M. (2018). La enseñanza de la programación. Una experiencia en la formación de profesores de Informática. Santa Clara: Universidad Central Marta Abreu de las Villas.