Uploaded by DANIELA MALAGON

monografiìa final

advertisement
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.
Download