|
||
|
Descripción
y Justificación: Esta unidad
temática será la introducción al estudiante sin conocimientos previos de
programación, a la misma. Como requisito es necesario que el estudiante tenga
habilidades para manejo del sistema operativo. Estas habilidades quedarán en
evidencia al tutor mientras se realiza la práctica aquí propuesta y le dará
motivo para ajustar el ritmo o dosificación de contenidos que se impartan
inicialmente al estudiante. Esta demostrado que no tener dominio de la
máquina, impide al estudiante verificar la verdad de los algoritmos que se
desarrollarán desde esta unidad en adelante. Después de
entrevistar a muchos estudiantes de primer curso de informática -algoritmia o
programación- creo estar convencido que el estudiante necesita una
comprobación –en la máquina- de las reglas de juego que se le explican en
forma algorítmica –el estudiante no “come cuento” - claro a menos que lo
amenacen, como hasta ahora pasa, con la nota. Ellos preferirán haber podido
trabajar con la máquina inicialmente. Creo es una terquedad nuestra insistir
en que deben abstraer las estructuras algorítmicas en sus mentes solamente.
Si les dicen curso de programación, es un balde de agua fría el primer día de
clase cuando les decimos que no se necesitan computadores para aprender los
algoritmos, que nosotros –superhombres- no necesitamos rebajarnos al nivel de
la máquina. Esta posición ya me parece totalmente pedante, que estupidez. En últimas el estudiante es
el cliente, y el “cliente tiene la razón”.
La principal razón que aducen los estudiantes, el no haber podido
haber entendido los algoritmos es esa, “hubiéramos entendido si lo hiciéramos
en el computador”. Uhm,...como le
parece, estimado colega, usted que trabaja en otra disciplina y leyó el
párrafo anterior. Creo no entendió, debió quedar aturdido. SI!... LOS
PROFESORES DE PROGRAMACIÓN DAMOS EL PRIMER CURSO DE PROGRAMACIÓN SIN
COMPUTADOR, COMO CUANDO NOS TOCO APRENDER CON TARJETAS PERFORADAS Y SOLO
HABÍA UNA SOLA MÁQUINA POR UNIVERSIDAD EN UN CUARTO FRIO Y CON RESTRICCIÓN DE
ENTRADA AL 99.99999...% DE USUARIOS. Mi Código era el 730472 de Univalle en
el IBM1130. Esta es una
nueva generación –y no por eso- sino que ellos están recibiendo unos
estímulos muy diferentes a los de generaciones anteriores. Que los
equivocados somos nosotros con nuestra terquedad de seguir con metodologías
mandadas a recoger. Con seguir insistiendo seguir siendo los protagonistas.
Pero claro el cambio mental de nuestro ajuste es necesariamente lento,
sentimos como obligación ética –laboral- el llenar pizarras y pizarras, el
darle a los estudiantes “todos” los modelos, dárselos ojalá lo más moliditos
posibles, y les vaya bien en el consabido examencito, lo hemos hecho con gran
honestidad. Pero estábamos equivocados, resulta que los estudiantes no
agradecen –desagradecidos- nuestros esfuerzos en molerles toda esa
información, están hartos de eso. Y venimos a saber ahora que ellos tienen
razón. Por lo
anterior, estoy convencido que el aprendizaje de los algoritmos debe hacerse
simultáneamente con la introducción a la programación de computadores y en un
solo lenguaje, el que usted quiera, y por espacio de al menos tres semestres.
Por que estimado colega no programador, últimamente se ha querido que los
estudiantes se aprendan todos los lenguajes que suban a la palestra –que
estén de moda- por que después los van a necesitar. La verdad es
que los estudiantes de esta forma terminan aprendiendo una sarta de comandos
e instrucciones que después de un tiempo quedan obsoletos, ya que aparecen
otros lenguajes –mejores, peores o simplemente de moda- Debe entonces es
insistirse en la algoritmia, el estudiante debe poder hacer las abstracciones[.1] que necesita para poder programar. Que
ellas pasen a su acervo cultural –por medio de un aprendizaje significativo-
y no como ahora que los estudiantes simplemente están como cuando se va al
cine: “me vi la película de Visual Basic, también la de C y creo que la de
C++, a pero también vimos la de Java, es el más bacano por que con el manejamos
la Internet y podemos chatear. Claro que tuvimos un profe que sabe muchísimo
y para que no perdiéramos el tiempo nos hizo ver la película de ensamblador
–que no estaba en el guión- y lo
chévere es que con él podemos hacer virus y hacerles pasar mal ratos a todos
esos cuchos. A lo bien.” Que ingenuidad
-la verdad- lo poco que haya aprendido significativamente no les va ha servir
de mucho, bueno, también les sirve
para reuniones sociales y explicar lo que aprenden en la U. Me acuerdo de una historieta de Nieves –de
Consuelo Lago- en la cual la patrona le decía a su hijo –el de la patrona ya
que Hetor no le a dado hijos a Nieves, hasta donde yo se- que le hablara una
palabras en Pascal a una amiga suya que estaba de visita, ante esto hasta
Nieves no tuvo sino que irse de espaldas. Pascal es otro lenguaje que estuvo
de moda entre nosotros y ese sí con méritos en todo sentido y principalmente
para la enseñanza de la programación como ningún otro. Pascal lo dejamos de
utilizar también por puro snobismo, porque los gringos –y ellos si con gran
razón- ya no lo estaban utilizando como antes, mientras que en Cuba todavía
lo utilizan en las universidades. La razón es que en Cuba si se hacía y hace
investigación y sus desarrollos los han hecho en Pascal, mientras nosotros no
hicimos nada, por eso lo tiramos por la borda tan fácilmente. Pero al tirar
a Pascal, no sabíamos Lenguaje C, que pretendíamos enseñar, ya de ipso facto,
el siguiente semestre. Pues nos inventamos que mejor les daríamos
pseudocódigo en español, mientras aprendíamos lo que estaba “in”, el lenguaje
C. Ahaa asiiií, ANSI C. Y desde eso hace más de cinco años, se quedó así.
Honestamente, creo que los estudiantes, en la época que les dábamos Pascal
aprendían más significativamente. Y más atrás cuando nos tocó como primer
curso de algoritmia, recibir directamente el código en Fortran, pues con
mayor razón, claro yo estaba hay. En
estos momentos hay convocatoria para migrarnos totalmente a Java, ahhh..., es
que el manejo mediático si es que es muy fuerte, en todos los sentidos de
nuestra sociedad consumista. Debo advertir que esta historia no es solo la
que me ha todcado vivir, es la de gran cantidad de nuestras universidades
latinoamericanas, con la honrosa excepción de Cuba. Bueno, “any way” por ahora estoy todavía enamorado
del lenguaje C, y no me dejo convencer de la propaganda de Java, es un
intermediario adicional, y toda intermediación–como bien saben los
economistas- sale muy costosa. Por lo tanto para la presente unidad he escogido el lenguaje
C, pero como escribí más arriba podría ser cualquier otro, por ejemplo Java.
Bueno no me importa que de pronto digan que me estoy contradiciendo. |
||
|
|
||
|
|
||
|
|
[.1]La abstracción es uno de los aspectos fundamentales para el estudio de los sistemas modernos de información. Permite tener en cuenta aspectos relevantes para la solución de un problema y deja en segundo plano todo aquello que no es trascendente.
El abstraer es la habilidad de concentrarse e los general y fundamental y pasar por alto el detalle, lo que simplifica el análisis, y lo centra en lo relevante.
Por ejemplo en la instrucción de escritura cout << el usuario no se debe interesar por cómo s que ella hace el trabajo, sino que simplemente lo hace.
Mediante la abstracción se determinan los propósitos u operaciones necesarias para dar la solución a un problema y mediante la modularidad –el divide y vencerás- se efectúa la separación en unidades funcionales.