Publicaciones sobre la experiencia docente del CCH

Docencia en Cibernética y Computación
Nuevos Cuadernos del Colegio Número 2


Fecha: 2013-09-13
Área: Matemáticas
Materia: Cibernética y Computación I y II
Temática: Estrategias didácticas
Descarga: Descargar Pdf
Autor(es)
Verónica Lidya López Escobar

Palabras clave: clase, enseñar, computadora, programar, analizar.

La primera experiencia como docente en el CCH, hace ya algunos años, definitivamente me ocasionó una gran preocupación, porque no sabía cómo dar clase, qué tenía que hacer para que los alumnos comprendieran lo que quería enseñarles. Sin embargo, al presentarme al grupo y ver que los alumnos eran unos jóvenes inquietos por aprender, por saber, y además no teníamos mucha diferencia de edades, me relajé, me sentí tranquila y empecé a platicar con ellos sobre el material que llevaba preparado, y lo aceptaron con agrado.

Actualmente, trato de seguir aplicando la misma técnica, ver a los alumnos como jóvenes inquietos que quieren aprender, mientras que yo quiero platicarles de lo que llevo como material para exponer en clase.

El primer reto importante fue ¿Cómo enseñarles a programar sin que utilizaran una computadora?

La solución fue ir y utilizar la computadora en el Centro de Cómputo de la UNAM los sábados y, en algunas ocasiones, los domingos. Cuando se lo propuse a los alumnos, pensé que no aceptarían y que, en todo caso, los que asistirían, serían pocos; pero resulto que asistían muchos, para mi sorpresa no sólo de mis grupos sino de otros grupos, así que sentados en el pasto o dentro de las instalaciones, asesoraba a los que se presentaban.

Era realmente satisfactorio cuando los alumnos lograban obtener la corrida de sus programas de manera correcta, pero muy desagradable cuando el listado marcaba error por la mala perforación de tarjetas, alguna instrucción mal codificada o debido a que el análisis del problema no fue el adecuado y resultaba una codificación equivocada, sobre todo porque tenían que esperar cerca de tres horas.

El siguiente paso fue que los alumnos perforaran sus programas en el plantel y enviarlos a CU, para posteriormente recuperar sus listados en el mismo plantel, ¡ya no teníamos que ir a CU!, y tenían los listados al día siguiente.

Ahora tenemos salones especiales que cuentan con equipos de cómputo y los alumnos pueden ver los resultados de manera inmediata.

Desafortunadamente, es de resaltar que los alumnos actuales ya no se preocupan tanto por revisar si el problema se analizó bien, si la edición del programa es correcta, todo esto porque, en caso de no ser correcta, la computadora de inmediato señala el error, la posición donde se encuentra y el alumno corregirá, volverá a ejecutarlo y comprobará que se pueden obtener los resultados correctos de manera casi inmediata, sin que se preocupe por tener programas que funcionen a la primera y que la computadora no les marque algún error.

El segundo reto importante: ¿Qué quiero que aprendan mis alumnos?

Recordando que el CCH tiene como propósito dotar a los alumnos de conocimientos básicos, y que los principios del Colegio son que los alumnos aprendan a aprender, a ser y a hacer, no debemos ser tan ambiciosos y pretender que los alumnos sean unos programadores excelentes; tampoco que estén al tanto de todas las novedades tecnológicas actuales, ya que existen las opciones técnicas, algunas de ellas con dicho propósito.

Además, en relación a su preparación matemática, creo que más que sólo promover que los alumnos utilicen una computadora que les resuelva los problemas, lo que debo procurar y lograr es que analicen los problemas, diseñen el algoritmo de solución, se familiaricen con un lenguaje de programación, para que puedan editar, compilar y ejecutar un programa que obtenga los resultados correctos, sin que la computadora intervenga indicando al alumno que corrija los errores. Aspiro que los alumnos realmente programen a la computadora y que no sean robots a los que la computadora señale dónde y qué deben corregir, es decir; no es mi intención que la computadora programe a los alumnos.

Otro aspecto importante es que, si hago ver al alumno la diferencia entre los diferentes tipos de datos que se pueden manejar, ampliará el concepto de variable, numérica: real, entera, alfanumérica: string, char, booleana, arreglo (matriz) o registro, y si lo presento de una manera sencilla, con ejemplos cotidianos, comunes pero no obvios, los alumnos aplicarán sus conocimientos de matemáticas y comprenderán mejor la formalidad y exactitud que se aprende en matemáticas, diseñando un programa en un lenguaje de alto nivel, pero que les permita comprobar los algoritmos elaborados por ellos mismos.

Si como ejemplos en clase, trato problemas matemáticos (sistema de ecuaciones, suma de matrices), porque son los que más me gustan y se me facilitan, la mayoría de mis alumnos no se motivan, porque no quieren clases de matemáticas. Además, no es natural manejar variables tipo string (conjunto de letras y/o números) como nombre, dirección o tipo char (un solo carácter) como turno M o V o sexo F o M. Sin embargo, al proponerles problemas como calcular el promedio de los alumnos, debo manejar el nombre, calificaciones y el promedio, o si el problema consiste en obtener el listado de salarios de los trabajadores de una empresa, tenemos que manejar el descuento o aumento dependiendo de la categoría (A, B, C, …) del trabajador; pero, para poder realizarlo, es necesario empezar con un problema más sencillo, como el pago de un trabajador que tiene como datos el nombre, el número de horas trabajadas y el pago por hora o el pago de cinco artículos, en una tienda de autoservicio, donde sólo se considera el nombre del artículo y su precio unitario. Aunque parece sencillo el problema de calcular el pago de un artículo que tiene un 20% de descuento, resulta que los alumnos dan evidencia de que no saben calcular el porcentaje de ninguna cantidad.

Así que he decidido que el primer acercamiento que los alumnos tengan, al diseñar el algoritmo de solución, debe ser muy sencillo, para que comprendan totalmente todos los elementos que deben diseñar y manejar, para tenerlo como base en la elaboración del programa en computadora, y posteriormente aumentar el grado de dificultad, hasta que puedan realizar programas de alto grado de complejidad.

Se necesita que los alumnos comprendan un algoritmo básico, para que posteriormente puedan modificarlo y logren obtener los resultados solicitados, según las nuevas especificaciones que les indica el profesor.

Anteriormente, los alumnos de Cibernética y Computación eran alumnos que querían estudiar una carrera donde las matemáticas eran importantes. Ahora la mayoría de los alumnos que eligen la materia es porque no quieren llevar Matemáticas y creen que, al elegir Cibernética y Computación, tomaran un curso que será como la segunda parte del curso de Taller de Computo del primer semestre.

La idea de resolver problemas de matemáticas que los motiven y aumenten su habilidad en el manejo de conceptos de alto nivel matemático no me desagrada, pero considero que es más importante que los alumnos comprendan conceptos básicos, que se encuentran en los problemas comunes de la vida diaria. Los conceptos profundos de matemáticas, los comprenderán y aplicarán en sus cursos posteriores de nivel superior, enfocados al manejo lenguajes de programación, de técnicas y procedimientos correspondientes a los intereses de los estudios y programas de la carrera o la facultad que elijan.

Para la mayoría de los alumnos, el curso de Cibernética y Computación será la última oportunidad de comprender de manera sencilla y práctica los conceptos básicos de variable, constante, números enteros o reales, variables no numéricas, pero sobre todo de que analicen los problemas y definan un algoritmo de solución que puedan verificar por medio de la computadora, porque también se familiarizan con un lenguaje de programación (PASCAL) que les sirve de base para lenguajes más complicados o especiales.

El propósito principal del curso es que los alumnos analicen los problemas, puedan identificar los datos del problema, el procedimiento que lo resuelve y los resultados que desean obtener, así como ser capaces de expresar las instrucciones de manera ordenada y correcta, para que los resultados que muestre la computadora, aparezcan de manera clara y correcta. Sin embargo, esto no resulta fácil de lograr.

Creo que es importante contar con la programación del curso, seleccionar de antemano los ejemplos y ejercicios que puedan resultar interesantes para los alumnos, y se presenten de manera que se puedan ir modificando o ampliando para que puedan resolver problemas de mayor complejidad, aplicando los conocimientos adquiridos y agregando conceptos de mayor complejidad, según se desarrolle el curso.

Otro aspecto importante es el hecho de tratar de que cada uno de los alumnos desarrolle desde el análisis hasta la codificación, edición y ejecución del programa correspondiente, ya que una alternativa para el profesor consiste en “mecanizar” a los alumnos, indicándoles cuál debe ser el encabezado y la descripción de variables que deben tener “todos” los programas, incluso un menú que ofrezca las opciones de cada programa. Ellos solo tendrán que cambiar “algunas” instrucciones para realizar el nuevo programa.

Por lo anterior y después de algunos años de docente, considero que lo importante de dar clases es que mis alumnos apliquen los conocimientos, según los vayan adquiriendo. Por ello es necesario que el docente planee sus clases, ejemplos y ejercicios de manera que los conceptos básicos se repitan y los alumnos logren obtener habilidad en el manejo de esos conceptos; la complejidad de los problemas aumente de manera dosificada; es decir, que el profesor tenga el control de los elementos que se deben utilizar en cada uno de los ejemplos y ejercicios proporcionados a los alumnos.

Para lograr que los alumnos aprendan a programar es necesario que el profesor les enseñe a analizar el problema, diseñar el algoritmo de solución, codificar el programa en el lenguaje de programación (PASCAL) También es necesario que el profesor los haga entender que, como cualquier lenguaje, PASCAL tiene una estructura, sintaxis y semántica, así como la precisión y exactitud de las instrucciones necesarias en cada programa.Ì