KnE Engineering | Ibero-American Symposium on Computer Programming jointly held with the International Congress on Technology Education | pages: 221–234

, , , and

1. Introducción

Los tiempos siguen avanzando y una de las más necesarias competencias que se debe fortalecer en nuestros estudiantes de informática es darles la capacidad de que resuelvan a través de la computadora problemas del mundo real de forma automática.

Los docentes debemos por lo tanto promover espacios de investigación en donde el estudiante, ente principal de nuestras instituciones educativas, se motiven a encontrar soluciones de una manera fácil y que lo formen profesionalmente.

El estudiante debe tomar conciencia de que esta área de la informática es de suma importancia para su situación de desarrollo profesional y debe palpar la relación que existe entre el mismo con la matemática, estadística y la lógica misma.

Se deben enmarcar en una interrelacion para que por medio de las teorías de aprendizaje se puedan ver los logros que se van alcanzar simplificando algunas tareas dentro de la formación ingenieril. [1]

El objetivo principal de este artículo consiste en realizar una metodología que se adapte a los medios de estudio que tiene el estudiante para que el mismo tenga una herramienta sólida en la construcción de algoritmos para llegar a obtener un programa de una manera organizada, sistemática, documentada y resolviendo problemas reales, se presenta los resultados obtenidos por parte de los estudiantes tanto en lo cuantitativo (promedio de cada uno de los estudiantes) como en lo cualitativo (opiniones de estudiantes para retroalimentación de otra investigación).

El planteamiento para poder acudir a la resolución de problemas tal como los sugiere [2] dentro de la enseñanza de la programación tiene distintos enfoques didácticos. Esto ha sido una de las constantes preocupaciones en los estudiantes del ámbito de la programación en Ecuador, debido a la dificultad que existe al momento de resolver un problema para poder dar la solución de forma inmediata. En todos estos procesos se debe identificar de una forma clara y precisa las variables que intervienen y resolverlos por vía matemática o vía computacional dentro del marco de soluciones sistémicas [3]

El estudiante debe tener destrezas y aptitudes para poder resolver dichos problemas, formular la solución de una manera clara y sencilla, además implementar de forma automática primero realizando el algoritmo hasta terminar en el programa propiamente dicho. El conocimiento que se adquiere debe siempre ser evaluado y aplicado, teniendo un significado [2] en donde la autonomía del aprendizaje se involucre mejorando dicho conocimiento para alcanzar sus propias metas de aprendizaje [4], pero las mismas no se deben limitar aprender una sintaxis de determinado lenguaje o peor a qué tipo de hardware requiero [5] sino que debe acoplarse al fundamento conceptual que siga reglas claras para relacionar ese problema con la informática [6], el aprovechar estas circunstancias no solo para una determinada asignatura como es la de programación sino para otras determinará el nivel de conocimiento que determinado estudiante tenga.

2. Materiales Y Métodos

Algoritmo

Es un conjunto ordenado de pasos que permiten resolver un determinado problema. El concepto de lo que es un algoritmo lo dice: “una sucesión finita de pasos no ambiguos que se pueden ejecutar en un tiempo finito, cuya razón de ser es la de resolver problemas; por tanto, problema son aquellas cuestiones conceptuales o prácticas, cuya solución es expresable mediante un algoritmo” [4], en la Figura 1 se tiene un tipo de algoritmo.

fig-1.jpg
Figure 1
Representación de un algoritmo.

Diagrama de flujo

Se define a un diagrama de flujo como la representación grafica de un algoritmo. En este artículo se usaran los objetos generales que a nivel mundial se tiene para representar un diagrama de flujo, tal cual como se observa en la Figura 2.

fig-2.jpg
Figure 2
Objetos para realizar un diagrama de flujo.

Entonces para el algoritmo planteado en el ítem anterior A, se tiene el diagrama de flujo en la siguiente Figura 3:

fig-3.jpg
Figure 3
Diagrama de flujo para la suma de 2 números.

Programa

Es el código fuente que se tiene. Es pasar un algoritmo escrito a una sintaxis de código que tiene cada lenguaje de programación, permitiendo que el computador nos dé un resultado que satisfaga el problema planteado [3], un programa podemos observar en la Figura 4.

fig-4.jpg
Figure 4
Líneas de código en Matlab para la suma de 2 números.

Cuando se ejecuta el código de la Figura 4, nos da como resultado lo siguiente:

fig-5.jpg
Figure 5
Ejecución del código en Matlab para la suma de 2 números.

La Figura 5 nos indica como ejecuta Matlab el código de la Figura 4, en donde se debe ingresar un número (ejemplo: 10) y luego otro número (ejemplo: 12), para que la computadora nos devuelva el resultado de la suma (resultado será = 22).

Lenguaje de programación

Es un lenguaje formal en donde se pueden escribir líneas de código para que una computadora pueda resolver un problema entiendo las clases de datos.

“Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés). [7]

Paradigmas de programación

Es una propuesta técnica y tecnológica adoptada por la comunidad de quienes programan y desarrollan programas informáticos. [7]

“Un paradigma de programación es un estilo de desarrollo de programas. Es decir, un modelo para resolver problemas computacionales. Los lenguajes de programación, necesariamente, se encuadran en uno o varios paradigmas a la vez a partir del tipo de órdenes que permiten implementar, algo que tiene una relación directa con su sintaxis.[8]

Principales paradigmas de programación:

  • Imperativo. Los programas se componen de un conjunto de sentencias que cambian su estado. Son secuencias de comandos que ordenan acciones a la computadora.

  • Declarativo. Opuesto al imperativo. Los programas describen los resultados esperados sin listar explícitamente los pasos a llevar a cabo para alcanzarlos.

  • Lógico. El problema se modela con enunciados de lógica de primer orden.

  • Funcional. Los programas se componen de funciones, es decir, implementaciones de comportamiento que reciben un conjunto de datos de entrada y devuelven un valor de salida.

  • Orientado a objetos. El comportamiento del programa es llevado a cabo por objetos, entidades que representan elementos del problema a resolver y tienen atributos y comportamiento.[8]

Otros son de aparición relativamente reciente y no forman parte del grupo principal:

  • Dirigido por eventos. El flujo del programa está determinado por sucesos externos (por ejemplo, una acción del usuario).

  • Orientado a aspectos. Apunta a dividir el programa en módulos independientes, cada uno con un comportamiento bien definido.

Cada paradigma es ideal para la resolución de un conjunto de problemas particular, por lo que no puede decirse que uno sea necesariamente mejor que otro.” [8]

Metodología

Se presenta en la tabla 1 la metodología planteada los estudiantes del primer semestre de ingeniería industrial del periodo octubre 2017 – marzo 2018, esta metodología es una propuesta que acude a una exposición magistral y que busca en cada estudiante involucrarlo dentro del aprendizaje significativo con el propósito de mejorarlo en la cultura de su nivel de entendimiento.

Table 1

Metodología planteada.


Etapa Descripción Objetivo
1 Análisis del problema Realizar oraciones intérpretes del problema
2 Diseño de variables Subrayar las palabras que se interpreten como variables
3 Diseño del algoritmo Pasar las palabras subrayadas a forma de algoritmo
4 Diseño de forma gráfica del algoritmo Pasar el algoritmo a forma grafica
5 Implementación del algoritmo en un lenguaje de programación Pasar el algoritmo y diagrama de flujo a código dentro de un lenguaje de programación escogido por los estudiantes

La metodología propuesta trata en lo posible de mejorar el nivel de resolución que tienen los estudiantes con respecto a problemas con alto índice de complejidad para ellos.

La metodología propuesta está dedicada para que el estudiante mejore sus aptitudes con las herramientas tecnológicas que tiene a mano como son DFD y lenguaje de programación M que viene con Matlab. Los grupos se dividieron [9] de la siguiente manera tal cual como se presenta en la Tabla 2.

Table 2

Distribución de estudiantes de acuerdo a la metodología a utilizar. Fuente: Autores.


La metodología tradicional es la metodología en donde la exposición magistral es la protagonista pero sin ningún tipo de estructura, solo la que el profesor dice en clase sin ninguna estrategia que involucre al estudiante en el proceso de aprendizaje.

Con la metodología propuesta ya tenemos pasos a seguir en la resolución de problemas dentro del campo informático y que concluye con la realización del programa en lenguaje M de Matlab. Un ejemplo de cómo resolver a través de esta nueva metodología se presenta a continuación para el problema de obtener los N primeros números pares.

3. Analisis del problema

Para poder obtener los N=5 números pares debemos indicar que son los siguientes 2, 4, 6, 8 y 10, para lo cual se deberá tener un contador que permita indicar que es el 1, 2, 3, 4 y 5 numero par consecutivo de la serie obtenida.

Necesito como estructura para resolver el problema una repetitiva ya sea Mientras (While) o Para (for).

Alternativas de solución: con el contador mismo puedo visualizar los N primeros números pares, con otra variable inicializada en cero puedo obtener los N primeros números pares (dentro del bucle tengo que irle sumando 2 y visualizando el resultado) o con otra variable inicializada en 2.

4. Diseño de variables

Cuantos números deseo visualizar = N

Contador = Cont inicializada en 1

Variable inicializada par=0 o par =2

5. Diseño del algoritmo

  • Inicio

  • Ingreso de valores: El usuario debe ingresar el valor de la variable N

  • Inicializar valores: par=0, Cont=1

  • Estructura a utilizar: (while)Mientras Cont < =N entoncespar=par+2visualizar parCont=Cont+1

  • Fin

6. Diseño de forma grafica del algoritmo o DIAGRAMA DE FLUJO

fig-7.jpg
Figure 6
Representación gráfica del algoritmo en la herramienta DFD.

Como se puede observar en la Figura 6 se representa tal cual el algoritmo de forma gráfica, representando las variables de entrada (las que ingresa el usuario y las que se debe inicializar), la estructura que se utiliza es la que se dijo en la etapa 1 que es el análisis y fue la mientras (while) en este caso, para luego en la misma seguir visualizando el resultado.

7. Implementación del algoritmo en un lenguaje de programAción como el lenguaje M de matlab

fig-8.jpg
Figure 7
Código implementado en Matlab.
fig-9.jpg
Figure 8
Código ejecutado.

Como se puede observar el código implementado y ejecutado esta hecho en Matlab que es una herramienta de software matemático con un entorno de desarrollo integrado [10] que tiene un lenguaje de programación llamado lenguaje M.

8. Resultados Y Discusión

Evaluar los resultados de una nueva metodología requiere no solo un semestre sino varios semestres y en distintas carreras porque es un proceso complejo. Para obtener la validez de los resultados obtenidos a través de esta propuesta de una nueva metodología en el mundo de la programación y más específicamente para partir desde un algoritmo y como los estudiantes van ir implementando dicha situación, se diseñó un experimento en donde dos grupos de estudiantes debidamente clasificados [11] se procedió a decirles que cada grupo va ir resolviendo en la metodología que se les indicó, entonces se realizó un análisis estadístico que permita comprobar si existe diferencias significativas entre la metodología planteada y la metodología tradicional. No se procedió a la comparación con otras metodologías ya que eso es para una nueva investigación.

En la tabla 3 y tabla 4 se muestran los datos para evaluaciones que se realizaron todo el proceso por parte de cada grupo, tomando en cuenta el tiempo de cada uno de los integrantes de cada grupo.

En esta situación se considera los tiempos en segundos desde el momento que se plantea el problema hasta que el resultado obtenido se visualiza en un lenguaje de programación escogido por cada estudiante, para ello se dio una clase magistral durante 8 semanas en el mismo ambiente y en el mismo horario para que no altere el proceso de enseñanza aprendizaje del estudiante, dado que una cosa es darles la charla a un grupo en horario de la mañana y otro en horario de la tarde, entonces no se tomó esta alternativa sino que se hizo a los dos grupos en la misma situación para poder tener los mejores resultados de preparación.

Table 3

Resultados de la metodología Tradicional. Fuente: Autores


Table 4

Resultados de las metodología Propuesta. Fuente: Autores


El código implementado en Matlab se lo hizo dado que los estudiantes en el próximo semestre utilizaran este programa para darle solución a los distintos problemas que el docente incluya dentro de su horario de clases y entonces los estudiantes tendrán que darle una solución de orden automático.

Es importante tener en cuenta que el uso de esta metodología tiene su dificultad en el momento de generar las variables de entrada, inicializarlas, calcularlas y obtener el resultado deseado, pero si no sabe el estudiante que variables de entrada tiene al momento que le plantean el problema, entonces la solución se vuelve compleja. [12]

La solución está en ir realizando cada día más y más ejercicios con esta metodología y al final se verán como los estudiantes tienen la capacidad de resolver cualquier problema que le pongan dentro del ámbito de programación.

Hay que prever que los sin número de problemas que existen en el mundo real tienen su diferente complejidad y entonces el estudiante debe adaptarse a resolverlos desde el punto de vista informático con herramientas que existen a su alcance para poder desarrollarlos y obtener un resultado que tenga por objeto seguir los pasos que dice nuestra metodología.

Es muy importante que el estudiante de su opinión respecto de estas investigaciones realizadas para poder retroalimentarlos en otros artículos que próximamente estaremos publicando con esta situación pero ya no solo en una escuela, sino que, en diferentes escuelas en el mismo ámbito de la asignatura de programación y de TICs.

Como trabajos futuros se propone entonces realizar una estadística de todas las escuelas y facultades que quieran adaptarse a esta metodología dentro de la Escuela Superior Politécnica de Chimborazo en Riobamba Ecuador.

9. Conclusiones

En este artículo se ha realizado una presentación de la metodología que sigue un estándar basado en las fases que un estudiante tiene para realizar un algoritmo y concluir con el programa deseado en cualquier lenguaje de programación.

Se ha dado una breve introducción a los algoritmos, diagrama de flujo y programa partiendo de los conceptos que el estudiante debe saber y terminando con los resultados de la metodología presentada.

Cuando se aplica la metodología en el sistema de enseñanza aprendizaje es posible lograr muy buenos resultados siempre y cuando el estudiante esté predispuesto al cambio y el mismo docente en sí.

El uso de esta metodología se realizó con estudiantes de primer semestre de la escuela de ingeniería industrial en la asignatura de TICs categorizando a estudiantes pro su nivel de conocimiento, es decir, no todos los estudiantes que tienen excelente promedio estaban en un grupo sino que les pusimos en diferentes grupos para que puedan ayudarnos con los otros estudiantes, fue una estrategia muy buena.

Es muy valioso indicar que el estudiante debe saber aspectos matemáticos básicos para que lo puedan relacionar con la programación y por ende a través de la lógica puedan resolver los distintos problemas que se les ponga.

El estudiante en el momento que escribe la solución con papel y lápiz o esferográfico se notó que alcanza el fin deseado que es la de aplicar la metodología sin ningún problema y pasa de un algoritmo a un programa de manera fácil y sencilla.

El docente al analizar las pruebas a realizar debe ser muy cuidadoso dado que siempre debe estar con lo que nuestros estudiantes han adquirido como conocimiento.

Agradecimientos

A mi querida familia, mis hijos, en especial a mi querida Ceci. Solo puedo decir Gracias! a las autoridades de la Facultad de Mecánica, autoridades de la Escuela Superior Politécnica de Chimborazo por haberme ayudado y brindado todas las facilidades para realizar este trabajo. (Mejia F)

References

1 

Attard, A., Di Ioio, E., & Geven, K. 2018. Student Centered Learning. An insight into theory and practice. Bucarest: Lifelong learning programme - European Community, Bucarest

2 

Ausubel, D. 1963. Psychology of meaningful verbal learning: an introduction to school learning. New York: Grune & Straton, 272p

3 

Cairó, Osvaldo. Metodología de la Programación: Algoritmos, Diagramas de Flujo y Programas. México: Alfaomega, 2017. Impreso.

4 

De la Cruz, Joel. Algoritmos y Diagramas de Flujo aplicados a PHP. Lima: Megabyte, 2006. Impreso.

5 

Bruner, J. S. 1969. Hacia un teoría de la instrucción. Ciudad de México: Hispanoamericana, 185p

6 

Eguíluz, Javier. Introducción a JavaScript. 2016. Librosweb. Web. 17-08- 2016. < URL > .

7 

8 

9 

Diaz Barriga, F. 2015. Estrategias docentes para un aprendizaje significativo. México: McGraw Hill, 476p Felleisen, M. e. 2006. How to design Programs. Boston: MIT Press, 720p

10 

Brassard, G., & Bratley, P. 2016. Fundamentos de Algoritmia. Madrid: Prentice Hall, 581p

11 

International Journal of Teaching and Learning in Higher Education, 23(3), p 92-97.

12 

Casale, Juan Carlos. Introducción a La Programación. Buenos Aires: Users, 2012. Impreso.

FULL TEXT

Statistics

  • Downloads 11
  • Views 119

Navigation

Refbacks



ISSN: 2518-6841