|
|
Adolfo Di Mare
|
Presento mis ideas sobre cómo debe impartirse el curso CI-0202 Principios de Informática, que es el curso introductorio para Ingeniería en la Universidad de Costa Rica. Concluyo que se puede lograr una significativa mejora si las lecciones se imparten usando la ayuda audiovisual de un equipo DataShow en lugar de dar las clases en el laboratorio de computadores de la Facultad. | I share my ideas on how to teach CI-0202 Principios de Informática, the first Engineering course at Universidad de Costa Rica. My conclusion is that a significant improvement can be achieved by using a DataShow instead of teaching at the computer lab. |
Después de más de diez años de impartir lecciones sólo a estudiantes de la Escuela de Ciencias de la Computación e Informática [ECCI], tuve la oportunidad de impartir el curso CI-0202 Principios de Informática, a dos grupos de estudiantes de la Facultad de Ingeniería, en la Universidad de Costa Rica [UCR]. Este cambio me ha ayudado mucho a entender mejor qué significa docencia en computación y en la Universidad. Por eso escribo estas líneas, con la esperanza de que contribuyan al mejor desarrollo de nuestros estudiantes.
Espero que mis ideas contribuyan a mejorar la calidad de nuestros cursos, o al menos a ayudar a que el material que los profesores entregamos a nuestros estudiantes tenga más relevancia a su futuro quehacer profesional. De todas maneras, en toda academia es importante propiciar estas discusiones curriculares.
OBJETIVOS GENERALES
CONTENIDOS
IF
...THEN
...ELSE
...
IF
's anidados.
FOR
, WHILE
, REPEAT
,
UNTIL
EVALUACION
Tareas cortas, quices, concepto del profesor | 10% |
Tareas programas | 15% |
Examen Parcial #1 (temas 1 - 3.2) | 30% |
Examen Parcial #2 (temas 1 - 3.6) | 30% |
Examen Parcial #3 (tema 4) | 15% |
Este programa ha evolucionado con la tecnología, pues, en sus primeras versiones, el curso de Principios de Informática era un curso del lenguaje Fortran. Posteriormente fue adoptado el lenguaje Pascal porque tiene muchas cualidades como lenguaje de programación [Set-92]. A continuación las menciono, y aprovecho la oportunidad para justificarlas.
IF-THEN-ELSE
, WHILE
,
REPEAT
).
Como la computación es una tecnología joven, no tiene la tradición que otras profesiones han acumulado. Por eso, los primeros programas para cursos de cómputo estaban dirigidos a aprender lenguajes de programación, pues para muchos "saber computación" era "saber programar" y, para simplificar las cosas, la enseñanza se concentró en un lenguaje específico. Así, en Principios de Informática primero se enseñó Fortran y luego Pascal. También se probó enseñar Dbase III o Fox, y luego se agregó la hoja de cálculo Excel.
No es resorte de la ECCI decidir si aprender a programar es relevante para la formación profesional de estudiantes de otras carreras, en particular de las ingenierías, como tampoco puede la Escuela de Matemática definir si la capacidad de razonamiento para la carrera de Medicina se logra mejor con materias de Cálculo que de Filosofía. Esta decisión la deben tomar los docentes de cada carrera.
Sin embargo, muchos profesores en la ECCI coincidimos en que la enseñanza de programas específicos como Word y Excel no debería ser materia de cursos de nivel universitario, pues son menudencias que pueden ser impartidas, a un costo muy bajo pero con gran eficacia, por otras instituciones educativas como escuelas, colegios, o institutos de enseñanza especializados en ese ramo. De hecho, muchos estudiantes ya aprenden a usar esos paquetes de computación solos en casa o en su colegio de secundaria. Este argumento lleva a la siguiente conclusión:
No debería enseñarse Word o Excel en Principios de Informática |
Los profesores de Principios de Informática imparten dos lecciones de 100 minutos cada semana, y una de las sesiones se desarrolla en el laboratorio, en donde los estudiantes se sientan en parejas ante las computadoras. Como hay 14 máquinas disponibles (aunque con frecuencia al menos una de ellas no funciona), la matrícula del curso está restringida a poco más de 25 cupos. En la práctica el director de la ECCI permite que se matriculen más estudiantes, pues siempre ocurre que unos pocos abandonan las aulas por razones personales.
El cupo se restringe porque, principalmente, un profesor no puede atender en forma adecuada a 30 estudiantes, y menos a 40 ó 50. En resumen, en estos momentos, en el curso de Principios de Informática se invierten una gran cantidad de recursos docentes, de laboratorio y de asistentes; pero, pese a esta inversión, persiste semestre a semestre una demanda insatisfecha de más del 50% de los cupos disponibles. Por eso conviene cambiar la cosas, para poder ofrecer un mejor servicio docente y reducir el costo de prestarlo.
A los estudiantes les gustaría que, en lugar de enseñarles Pascal, les permitieran manejar muchos programas o paquetes de computación. Como muchos vienen de otras facultades, principalmente de la Facultad de Ciencias Económicas, muestran poco interés en la programación y toman el curso como un castigo necesario para graduarse. Por eso los estudiantes sienten que el curso debería empezar por lo que les es más útil: la hoja de cálculo Excel.
Los profesores sabemos que toma un par de lecciones aprender Excel, pero que para programar es necesario madurar algunos conceptos; por eso le damos mucho más énfasis a la programación Pascal. De hecho, para conseguir profesores, se busca a quien sepa programar, y nunca se pregunta siquiera si el profesor conoce Excel.
En la mente de los estudiantes, el curso Principios de Informática es una incomodidad más en su carrera, por lo que les interesa pasarlo con el mínimo esfuerzo. Por eso muchos recurren a copiar las tareas, o incluso a comprarlas. Este hecho ya es conocido por los profesores, y explica por qué el valor de las tareas programadas es tan bajo: sólo un 15%. Lo mismo ocurre en los exámenes: los estudiantes a veces no consideran que copiar en este curso sea "realmente malo", pues no lo perciben como fundamental para su desenvolvimiento profesional, mientras que sostienen que por su entereza personal no deben copiar en los cursos propios de su carrera.
¿Debe eliminarse este curso del pensum de cada carrera? Eso no le corresponde a la ECCI determinarlo. Pero es natural que la ECCI se oponga a impartir cursos de paquetes, y, si los imparte, es porque la Universidad los solicita con ahínco. De todas formas, los profesores de computación siempre daremos más importancia a la parte de programación.
Otra gran ventaja de Pascal sobre otros lenguajes es que hay muchos buenos libros de texto en español[2] ([Gol-93], [Gro-86], [Pas-93], etc.). La dificultad más grande que deben sortear los estudiantes para aprender a programar es entender por qué y cómo secuenciar instrucciones. Esto requiere de un gran apoyo del profesor, y de intensa concentración del estudiante. Los profesores sabemos que después de comprender qué es un algoritmo, para concluir su aprendizaje el estudiante sólo necesita memorizar las reglas sintácticas del lenguaje de programación.
La práctica docente nos ha mostrado que la programación se aprende más con ejemplos que con clases teóricas. Por eso en cualquier curso de programación, en cualquier parte del mundo, los profesores usamos mucho tiempo para exponer ejemplos. Más aún, es factible no impartir clases de "teoría" si se cuenta con un buen libro de texto, pues los estudiantes lo que buscan en clase es entender la mecánica algorítmica que se muestra en los ejemplos de programación.
Precisamente, el curso Principios de Informática se imparte en el laboratorio para que los estudiantes puedan apreciar mejor los ejemplos que su profesor les enseña. Para aprender a programar hay que ver muchos algoritmos, desde muchas perspectivas.
Los profesores contamos con una gran cantidad de programas Pascal
que podemos usar como ejemplos en nuestras lecciones. Uno que es
particularmente interesante de analizar es el programa
Armstrong.pas
.
PROGRAM Armstrong;
{ Determina cuantos numeros son de Armstrong, desde 1
hasta numero. Un numero es de Armstrong si la suma de
los digitos que lo componen al cubo es igual al
numero. Por ejemplo 153 es un numero de Arms.}
CONST n = 3000;
VAR
numero, suma,
digito, temp : INTEGER;
begin
WriteLn('Numeros encontrados (1 .. 3000)');
WriteLn(' que son de Armstrong:');
WriteLn;
for numero:=1 to n do begin
suma:=0;
temp:=numero;
WHILE temp <> 0 DO BEGIN { suma de digitos }
digito:= temp MOD 10; { al cubo }
suma:= suma+(digito*digito*digito);
temp:= temp DIV 10
END;
IF suma = numero then
WriteLn(numero,' Suma de su digitos al cubo ', suma);
end;{ FOR }
ReadLn;
END. { Armstrong }
Armstrong.pas
El programa Armstrong.pas
de la
Figura 1 tiene varias cualidades.
Primero, es muy corto, pues consta de unas decenas de
instrucciones. Además, incluye las primitivas de control
más importantes: FOR
, IF
y
WHILE
. También utiliza la operación
aritmética MOD
. Este programa es muestra de
que en una sola página, con unas cuantas instrucciones
Pascal, se puede ver casi toda la materia de programación
del curso de Principios de Informática.
Con mucha facilidad cualquier profesor de un curso de
programación de computadores puede obtener o escribir
programas como
Armstrong.pas
, lo que lleva a la
siguiente inferencia. Como en el curso lo más
difícil es lograr que el estudiante entienda cómo
funciona un algoritmo, y como la manera más rápida
de llegar a esta meta es exponer al estudiante a muchos ejemplos
prácticos, entonces hay que enseñar de forma que el
estudiante pueda ver muchos algoritmos funcionando.
La primera aproximación a esta solución ha sido impartir las clases de programación en el laboratorio. Sin embargo, esta manera de hacer las cosas presenta varios problemas:
La principal ventaja de aprender en el laboratorio es que los estudiantes pueden practicar inmediatamente lo que su profesor les explica en la pizarra. Es natural que en el pasado los profesores de la ECCI, por medio de su director, hayan sugerido impartir las lecciones en el laboratorio, pues la práctica nos ha mostrado que para aprender paquetes de computación (Word, Excel, AutoCAD, etc) conviene recibir lecciones frente al computador.
Pero aprender a programar es mucho más difícil que aprender a usar un paquete de programas. Requiere mayor intensidad intelectual, mayor concentración y mucho más práctica. Por eso en la Universidad cabe aprender a programar, en tanto que los paquetes se pueden aprender en otro lado, a un costo mucho más bajo.
Recientemente la ECCI adquirió una herramienta audiovisual que permite mostrar a los estudiantes el funcionamiento dinámico de un algoritmo, sin necesidad de sentarlos en el laboratorio de computadoras. Este dispositivo se conecta como si fuera un monitor del computador, y, junto con un proyector de transparencias, permite desplegar en una pantalla gigante lo que aparece en la del computador. A estos aparatos los llamamos DataShow, posiblemente porque esa es la marca del primero que obtuvimos.
El DataShow tiene sus desventajas. Primero, para usarlo se necesita disminuir la intensidad de la luz en el salón de lecciones, para que todos los estudiantes puedan ver la pantalla. Además, se necesita contar con un computador debidamente configurado al que esté conectado el DataShow, lo que efectivamente fuerza a que el computador permanezca anclado en el salón de clases; el aula debe permaner cerrada para que no se roben el equipo. El DataShow es un aparato pequeño que cabe en un maletín, y cuesta desde $700 hasta $3,000[3]. Sin embargo, estos impedimentos se pueden solventar con un poco de organización administrativa, y con un desembolso monetario relativamente pequeño. Las ventajas operativas y didácticas que se derivan de impartir lecciones con este aparato cubren con creces estos inconvenientes.
Con un DataShow el profesor puede mostrarles a sus estudiantes los algoritmos en acción. Para esto basta que cargue en el computador el ambiente de programación, Turbo Pascal en este caso, y que con ayuda del Depurador Simbólico muestre a sus alumnos el efecto en las variables que se observa al ejecutar paso a paso el programa.
Como estudiantes y profesores están acostumbrados a que la
instrucción sea gradual, de manera automática
sentirán el deseo de rechazar cualquier enfoque
didáctico que un alto porcentaje de la materia del curso en
una de las primeras lecciones. Lo que hay que hacer no decir de
entrada que un programa de ejemplo como
Armstrong.pas
contiene el 80% de
la materia que hay que cubrir en el curso. También es muy
importante que el equipo DataShow funcione de manera
óptima: si la luz en el salón de clases es muy
fuerte, o si la intensidad en la pantalla es demasiado tenue, los
estudiantes usarán su capacidad de concentración
para tratar de ver la pantalla, y disminuirá su capacidad
para entender la explicación del profesor. Por eso
también ayuda mucho repartir el texto del programa impreso
en papel.
Si el profesor usara el programa
Armstrong.pas
de la
Figura 1 como su primer ejemplo de un
programa Pascal, entonces lo primero que haría es
corregirle varios defectos. Para esto puede seguir el
estándar definido en las "Convenciones de
programación para Pascal"
[DiM-88]:
número
", "dígitos
",
etc.).
Después de aplicar el maquillaje de
"las convenciones" al programa de la
Figura 1, el resultado es el programa de
la
Figura 2. Con facilidad el profesor
puede mostrar a sus pupilos por qué es importante trabajar
con orden al programar. Como los estudiantes necesitan obtener
destreza en el manejo del ambiente de programación,
particularmente en el uso del editor de textos, también el
profesor puede mostrarles cuáles teclas usa para manipular
el código y acomodar el programa para obtener esta
versión de Armstrong.pas
.
Figura 3: Ejecución de
suma := 0;
temp := numero;
WHILE temp <> 0 DO BEGIN
digito := temp MOD 10; { <- }
suma := suma + (digito * digito * digito);
temp := temp DIV 10;
END;
VAR val
numero: 153
temp: 15
suma: 27
digito: 3
Armstrong.pas
Luego de editar el programa Armstrong.pas
, el
profesor puede mostrar cómo funciona
algorítmicamente. Para esto hay que mostrar el efecto de
cada instrucción en las variables. En la
Figura 3 se muestra una sección
del programa junto con el valor de las variables en ese momento
(la siguiente instrucción por ejecutar está marcada
{ <- }
). Con paciencia el
profesor explicará qué significa cada
instrucción, cómo cambian las variables, etc. O sea,
que su trabajo consiste en explicar el algoritmo como si tuviera a
un solo alumno sentado junto a su computador. La diferencia la
marca el DataShow, que se convierte en el centro de
atención, pues todos los alumnos estarán
concentrados en lo que ocurre en la máquina, mirando la
pantalla que cambia al comando del profesor.
Figura 4:
FUNCTION IS_ArmstrongCASE( {+} n: LONGINT ) : BOOLEAN;
{ RESULTADO
Retorna TRUE si el número "n" es un número de
Armstrong, esto es, si la suma de los dígitos
que lo componen elevados al cubo es igual al
número.
- Por ejemplo 153 es un número de Armstrong porque
3 3 3
153 = 1 + 5 + 3 = 1^3 + 5^3 + 3^3
- [0, 1, 153, 370, 371, 407] }
BEGIN { IS_ArmstrongCASE }
CASE n OF
0, 1, 153, 370, 371, 407 : IS_ArmstrongCASE := TRUE;
ELSE
IS_ArmstrongCASE := FALSE;
END; { CASE }
END; { IS_ArmstrongCASE }
Armstrong.pas
implementado con CASE
El programa Armstrong.pas
tiene otras grandes
cualidades, pues es un algoritmo que se puede implementar de
muchas formas diferentes. Por ejemplo, después de correr el
programa de la
Figura 2 es fácil concluir que
sólo existen unos pocos números de Armstrong:
[0, 1, 153, 370, 371, 407]. Entonces el profesor puede
implementar el mismo algoritmo usando, por ejemplo, una
instrucción CASE
como en la
Figura 4.
Para retomar el control de su clase, que ha perdido cuando imparte lecciones en el laboratorio, el profesor cuenta ahora con un nuevo dispositivo audiovisual: el DataShow. Los estudiantes tienen la oportunidad de ver más ejemplos, pues el profesor ya no tiene que copiarlos uno por uno en la pizarra. En una sola sesión es posible cubrir entonces cinco, diez o hasta veinte veces más material porque el profesor deja de ser un escribano quien repella pizarras con texto, pues cuenta con una máquina para realizar ese trabajo.
Otra gran ventaja de usar esta herramienta didáctica es que el profesor ya no necesita recurrir a los diagramas de flujo que se usaron en el pasado. La única ventaja de ese antiguo recurso didáctico es que un diagrama de flujo es una herramienta gráfica que le permite al estudiante entender mejor cómo es la dinámica de un programa, para que luego pueda formular algoritmos por su cuenta. Pero con el uso interactivo del depurador simbólico esta ventaja queda totalmente superada, pues el estudiante puede apreciar en pantalla el efecto de ejecutar un algoritmo. La desventaja más grande de los diagramas de flujo es que no sirven para representar algoritmos complicados, y además se pierde mucho tiempo al usarlos porque son difíciles de dibujar[4].
Hay una desventaja del uso interactivo del DataShow que es difícil descubrir. Algunos profesores se niegan a usarlo porque no quieren que sus estudiantes descubran su poca destreza en el uso del ambiente de programación. Este escollo se produce porque no todos los profesores de computación se sienten atraídos a la programación. Como esta disciplina es materia fundamental en la carrera de computación, es costumbre asumir que cualquier profesional de computación puede enseñar programación. Pero este pequeño tropiezo se puede evitar si se escoge a los profesores para este curso con un poquito de cuidado. Como no todos los profesionales en computación se dedican a programar, no debe verse como un defecto que alguno tenga poca destreza en el manejo de una herramienta de programación.
Armstrong.pas
es un
recurso didáctico muy importante, pues permite exponer la
materia en una forma integral y compacta. Sin embargo, a los ojos
de los estudiantes aparece como un programa bastante tonto, pues
"casi no hace nada
importante"[5].
Aunque no es imprescindible para que el proceso de enseñanza - aprendizaje tenga éxito, sí ayuda mucho que los estudiantes estén motivados por su curso: en cualquier curso de programación siempre hay muchas oportunidades para motivarlos.
El programador en realidad lo que hace es construir mundos virtuales, pues cada programa es un contexto completo nuevo que existe no sólo como instrucciones de computador, sino como una gran obra intelectual de quien mejor la puede apreciar: su progamador. A diferencia de otras disciplinas, como la Filosofía o las Matemáticas, en la Programación el resultado final del esfuerzo intelectual del estudiante toma vida en el computador, en donde el estudiante puede apreciar el fruto de su trabajo interactuando con la máquina. Relativamente pocos estudiantes pueden experimentar el placer de resolver un problema matemático, o de encontrar una tautología filosófica, pero varios más sí pueden disfrutar el éxito que implica terminar un programa.
Existen técnicas para lograr que el aprendizaje de la programación sea más atractivo para el estudiante. La más obvia de todas es permitirle al estudiante resolver problemas que le son relevantes. Por ejemplo, en una tarea programada mostrarán más interés los estudiantes de Ingeniería Civil si tienen que calcular el área de un poliedro a partir de varias mediciones, que si tienen que procesar una planilla de sueldos.
Los profesores de la cátedra de Principios de Informática con frecuencia aplican esta buena idea, pero no siempre recuerdan hacerlo. Por eso sería muy saludable que la cátedra contara con el apoyo de un profesor de la Facultad que conozca las aplicaciones de cómputo en las ingenierías. En las reuniones de cátedra este docente externo a la ECCI podría ser el vínculo que permita adaptar semestre a semestre el curso a las necesidades de la carrera, para llenar las expectativas estudiantiles. Por supuesto, para que pueda impartir el curso, este profesor debe conocer del lenguaje Pascal.
También conviene invitar a profesionales de firmas prestigiosas que usan día a día la programación. Por ejemplo, un ingeniero que trabaje en la construcción de equipos electrónicos podría compartir con los estudiantes sus experiencias en programación. Otro podría explicarles cómo usar aplicaciones como diseño y manufactura asistido por computadora (CAD-CAM). Los estudiantes adoran estas actividades, talvez porque les hace soñar sobre lo que disfrutarán cuando concluyan su carrera universitaria.
Es prácticamente imposible que el profesor sólo
utilice programas interesantes en el curso, pues como ocurre con
Armstrong.pas
, los más
didácticos no son, necesariamente, los más
atractivos para el estudiante. Pero, en definitiva, los profesores
podemos lograr una mezcla satisfactoria con relativa facilidad.
Otros recurso para motivar al estudiantado es permitirles programar juegos, aunque necesariamente hay que cuidar que la complejidad del programa no sea tan grande que abrume de trabajo a los muchachos y, por ende, más bien los desanime.
También es conveniente crear una biblioteca electrónica con todo el material didáctico de los cursos, accesible a través de la tecnología Internet. En esta biblioteca se puede mantener el siguiente material:
Carta el estudiante
Exámenes Tareas programadas Soluciones completas |
Ejercicios
Programas completos Documentación de programas |
Como profesores debemos aprovechar los recursos tecnológicos disponibles no sólo para motivar a nuestros pupilos, también debemos usar las nuevas herramientas para hacer más eficiente el proceso de enseñanza - aprendizaje.
No sé si mi recomendación será aceptada, pues ya en toda la Universidad está muy asentada la tradición de incluir en el pensum de las carreras cursos de uso de paquetes de computación, y la UCR ha mostrado ser muy lenta en realizar cualquier cambio. Por eso discuto dos posibles escenarios.
Si se eliminan los paquetes de computación del curso Principios de Informática entonces el tiempo que se gana se puede utilizar básicamente de dos maneras: la primera es cubrir más terreno en programación enseñando otros temas. La segunda es impartir un segundo lenguaje como Basic o C[6].
Aprender un segundo lenguaje no es una tarea imposible para el estudiante, aunque posiblemente es mejor profundizar sólo en uno, pues los lenguajes de programación se parecen mucho entre si. Es cierto que C++ y Pascal o Ada son muy diferentes, pero las diferencias sólo las notará el programador profesional cuando utiliza las cualidades más especializadas del lenguaje. Si un estudiante de Principios de Informática alguna vez llegara a usar estas facilidades seguramente estaría desarrollando un trabajo para el que no ha sido entrenado, pues lo natural es que la programación de alta intensidad sea realizada por profesionales en computación.
Existen muchos temas relevantes a la programación que no se cubren en el curso y que podrían impartirse si se elimina el uso de paquetes. Sobresalen principalmente tres: la Programación orientada a objetos, la Recursividad y el Uso de punteros. El primero ha recibido mucha publicidad recientemente, al menos en los círculos de profesionales de la computación: es la moda. La recursividad es una elegante técnica que todos los programadores conocemos, aunque tiene poca aplicación para profesionales de otras disciplinas. Lo mismo ocurre con el uso de punteros, pues su uso es relevante, principalmente, para implementar programas que requieren de un altísimo rendimiento. De estos tres temas, y sin lugar a dudas, la Programación orientada a objetos es el más importante, pues sirve para construir programas mucho más grandes, mientras que los otros dos temas son bastante esotéricos.
Si es necesario continuar enseñando paquetes de computación, entonces puede trabajarse de una manera un poco diferente. Una de las sesiones semanales se impartiría en el DataShow y versaría sobre programación. La otra sería en el laboratorio, pero estaría dedicada al uso de paquetes de computación.
El semestre tiene 16 semanas, pero de todas maneras es conveniente reservar no más de 4 sesiones en el laboratorio para que los estudiantes practiquen el lenguaje de programación. Las otras 12 se pueden usar par cubrir los siguientes temas:
A primera vista parece que se cubre demasiado, pero lo importante
cuando se usan paquetes es desarrollar la habilidad de aprender a
usarlos poco a poco, pues todos tienen ayudas interactivas muy
completas y cuentan con mecanismos de guía que facilitan
cada tarea. La Programación de calculadoras es un tema que
les agrada a los estudiantes de Ingeniería, quienes usan
mucho estos aparatos, y en Internet es posible conseguir
emuladores de calculadoras que corren bajo el ambiente Windows,
como los programas BizWiz
o HP12c
que se
pueden obtener por ejemplo en
ftp:// ftp.cdrom.com /simtelnet/win3/calc/
.
Finalmente, es saludable que los estudiantes desarrollen su cultura Internet, para que puedan usar este recurso en su desarrollo profesional.
La cantidad de sesiones dedicadas a cada tema dependerá, por supuesto, del profesor, pero muchos coincidirán en que se puede hacer un trabajo adecuado en el tiempo que sugiero. Por supuesto, los estudiantes no serán "maestros en el manejo de Excel", pero sí adquirirán las bases para que poco a poco, y en su práctica personal, desarrollen cada vez más destreza en el manejo de estos paquetes[7].
Me parece muy importante que la evaluación del curso se base, primordialmente, en verificar la destreza del estudiante para concretar algoritmos, y no en el uso de paquetes. Yo jamás le daría más de un 10% (diez por ciento) a la destreza del estudiante en el uso de paquetes de computación.
La gran ventaja de no usar el laboratorio para impartir lecciones es que quedaría para el uso exclusivo de los estudiantes, quienes ya no se verían forzados a comprar su propio computador personal pues podrían usar los de la Universidad para hacer sus trabajos. Al sacar a Principios de Informática del laboratorio la Facultad se gana un laboratorio completo, y el único costo en que incurre es adquirir un DataShow[8].
La discusión sobre el perfil del profesional en computación busca ayudar a los estudiantes a apreciar cuándo deben buscar la ayuda de otro profesional para resolver un problema específico. Opino que los profesionales de otras carreras no necesitan programar, pues para eso estamos nosotros, y entiendo que la única razón para obligar a todos los estudiantes de cualquier otra carrera a aprender programación es para que puedan comunicarse con nosotros. Si ese es el objetivo, me parece que explícitamente debería cubrirse en el programa del curso.
Por lo demás el programa no tiene ningún otro cambio significativo: es una realización de las ideas que ya he expuesto.
OBJETIVOS GENERALES
CONTENIDOS
Creo que aprender programación es útil y fundamental para los estudiantes de la carrera de Computación, y no lo es para estudiantes de otras carreras. Pero también opino que no somos los profesores de computación quienes debemos definir si un curso como Principios de Informática debe estar en cada curriculum.
Si estas recomendaciones fueran adoptadas, a cambio la Facultad de Ingeniería obtendría un laboratorio que en estos momentos se usa, primordialmente, para impartir lecciones. Posiblemente, la demanda insatisfecha de cupos se reduciría en forma drástica, pues ahora los cupos en el laboratorio son una cota superior para abrir grupos de Principios de Informática. A cambio, la Facultad deberá adquirir un equipo DataShow a un costo de varios cientos de dólares.
[1] |
Más bien C++ [Str-86]. Hay
muchos lenguajes de programación que gozan de gran
popularidad (Basic, Fox, etc.), pero Pascal es ideal para
aprender algoritmos.
|
[2] |
Hay pocos libros de C y C++ en español. Para los
estudiantes de computación es imprescindible conocer
inglés, pero este requisito no es tan importante en otras
carreras.
|
[3] | En la ECCI se han robado uno cada año. |
[4] | Sólo queda una excusa para usar diagramas de flujo: los profesores los usan porque aprendieron a programar con ellos y, como enseñamos de forma similar a como aprendemos, a veces nos cuesta dejar prácticas arcaicas para adoptar métodos más modernos. |
[5] | Estas son exactamente las palabras con que un estudiante me criticó en clase. |
[6] | C++ es demasiado complejo y no debe impartirse en ningún curso de servicio. |
[7] | Más que darles pescado, se busca enseñarlos a pescar. |
[8] | Con un poco de suerte se puede conseguir uno barato, pues como Turbo Pascal v5.5 corre en máquinas pequeñas, sin disco duro, basta un DataShow simple que sólo despliegue texto. La ECCI tiene uno de esos, y precisamente lo usan los profesores de cursos de servicio. |
[BI-88] | Borland International:
Turbo Pascal Reference Manual version 5.5,
Borland International, California (U.S.A.), 1988.
|
[DiM-88] | Di Mare, Adolfo:
Convenciones de Programación para Pascal,
Revisión 2, Reporte técnico
ECCI-01-88, ECCI-UCR,
también disponible en Internet en
http:// www.di-mare.com /adolfo/p/ convpas.htm ,
1988.
|
[Gol-93] | Goldstein, Larry Joel:
Turbo Pascal - Introducción a la
Programación Orientada a Objetos,
ISBN 0-13-629635-1,
Prentice Hall Hispanoamericana S.A., 1993.
|
[Gro-86] | Grogono, Peter:
Programación en Pascal
(Edición Revisada),
Addison-Wesley Iberoamericana,
ISBN 0-201-02471-3, 1984.
|
[Ker-86] | Kernighan, Brian:
El lenguaje de programación C,
Prentice Hall, 1986.
|
[Pas-93] | Pascual González, Francisco:
Domine Turbo Pascal 6,
(incluye diskette de programas),
Addison-Wesley Iberoamericana,
ISBN 0-201-62508-3, 1993.
|
[Set-92] | Sethi, Ravi:
Lenguajes de Programación - Conceptos y
Constructores,
Addison-Wesley Iberoamericana,
ISBN 0-201-51858-9, 1992.
|
[Str-86] |
Stroustrup, Bjarne:
The C++ Programming Language,
Addison-Wesley, 1986.
|
Este artículo está disponible en Internet en la
siguiente dirección:
http://www.di-mare.com/adolfo/p/princinf.htm
Puede obtener el archivo
Armstrong.pas
bajando en modo binario el siguiente archivo:
ftp://www.di-mare.com/adolfo/p/src/armstrng.pas
[-] | Resumen
|
[1] | Programa actual del curso
|
[2] | El contexto actual
|
[3] | Sentir de los estudiantes
|
[4] | Mejora en la enseñanza de la programación
|
[5] | Enseñanza con el DataShow
|
[6] | Motivación estudiantil
|
[7] | Refinamientos didácticos
|
[8] | Programa propuesto para el curso
|
[9] | Conclusión
|
|
|
Notas de pie de página
|
|
Bibliografía
|
|
Indice
|
|
Acerca del autor
|
|
Acerca de este documento
|
|
Principio
Indice
Final
|
Adolfo Di Mare <adolfo@di-mare.com>
Referencia: | Di Mare, Adolfo:
Propuesta para mejorar el curso Principios de Informática,
Reporte Técnico ECCI-97-01,
Escuela de Ciencias de la Computación e Informática;
Universidad de Costa Rica;1997.
|
Internet: |
http://www.di-mare.com/adolfo/p/princinf.htm
|
Autor: | Adolfo Di Mare
<adolfo@di-mare.com>
|
Contacto: | Apdo 4249-1000, San José Costa Rica Tel: (506) 207-4020 Fax: (506) 438-0139 |
Revisión: | ECCI-UCR, Septiembre 1997
|
Visitantes: |
|
|