Está en la página 1de 8

Ensear Programacin en las Ingenieras

Informticas1
Rosana Satorre Cuerda, Faran Llorens Largo y Juan Antonio Puchol Garca
Grupo i3a (Informtica Industrial e Inteligencia Artificial)
Dpto. de Tecnologa Informtica y Computacin
Universidad de Alicante
Apartado de correos, 99. 03080 Alicante
Telfono, fax (96) 590 36 81
[rosana,faraon,puchol]@dtic.ua.es

Resumen
La adquisicin de un estilo correcto de programacin es una tarea
fundamental en las ingenieras informticas, y en general en cualquier titulacin
de ciencias o ingeniera. En este proyecto nos proponemos la utilizacin de un
programa de ordenador, no para programar, sino para aprender a programar. Se
trata de aprovechar las ventajas que nos ofrece el ordenador como recurso
didctico. La utilizacin de dicho programa en las clases prcticas de la
asignatura nos permitir reforzar los conceptos tericos, al mismo tiempo que
analizar interactivamente los algoritmos diseados.
1.- Marco Contextual
Dentro de la finalidad de estas jornadas de dar a conocer diferentes
experiencias en el mbito de las enseanzas realizadas en distintas Universidades
espaolas, presentamos el proyecto aplicado en la asignatura troncal
Fundamentos de la Programacin impartida en 1er curso de las Ingenieras
Tcnicas en Informtica de Gestin y de Sistemas y en la Ingeniera Informtica
en la Escuela Politcnica Superior de la Universidad de Alicante.
La Ley de Reforma Universitaria [BOE87a] establece el marco
legislativo e institucional para la renovacin de la vida acadmica. Al tratarse de
una asignatura troncal, y tal como aparece en las directrices generales comunes
[BOE87b] son de obligatoria inclusin en todos los planes de estudio que
conduzcan a un mismo ttulo oficial y de validez en todo el territorio nacional, y
las Universidades, al establecer los correspondientes planes de estudio, podrn
organizar las materias troncales en disciplinas o asignaturas concretas. Por otra
parte, las directrices generales propias de los ttulos universitarios oficiales para
las distintas Ingenieras Informticas [BOE90] establecen para las materias
1

II Jornadas Nacionales de Innovacin en las Enseanzas de las Ingenieras, Instituto de Ciencias de la


Educacin, Universidad Politcnica de Madrid, diciembre de 1996. Comunicaciones Volumen II, pg.
840-847.

troncales una breve descripcin de sus contenidos, los crditos que deben
corresponder a las enseanzas as como la vinculacin de las mismas a una o ms
reas de conocimiento. La informacin de la materia que nos interesa aparece en
el siguiente cuadro :

Materias Troncales

II

Metodologa y Tecnologa de la
Programacin :
Diseo de Algoritmos. Anlisis de
Algoritmos.
Lenguajes
de
Programacin. Diseo de Programas :
Descomposicin
Modular
y
Documentacin.
Tcnicas
de
Verificacin y Pruebas de Programas.

15

Crditos
ITIG ITIS
15

12

reas de Conocimiento
- Ciencias de la Computacin e
Inteligencia Artificial
- Lenguajes y Sistemas Informticos

Por tanto cualquier universidad espaola debe acogerse a dichas


directrices, pero tiene la libertad de organizarlas en las asignaturas que crea
conveniente. As, los Planes de Estudio de las distintas Ingenieras Informticas
impartidas en la Universidad de Alicante [BOE93a,b,c] distribuyen a partes
iguales dicha materia en dos asignaturas Fundamentos de la Programacin de 1er
curso y Programacin Metdica en 2 curso. La primera de estas asignaturas est
adscrita, de manera compartida al 50%, a las reas de Ciencias de la
Computacin e Inteligencia Artificial y Lenguajes y Sistemas Informticos, y
le corresponden los crditos y duracin que se reflejan en la siguiente tabla :
UNIVERSIDAD DE ALICANTE
Curso

Crditos
Total

FUNDAMENTOS DE LA PROGRAMACIN

Tericos Prcticos

45

4,5

II
Tron.

Carcter
ITIG ITIS
Tron.

Tron.

Duracin

N sesiones

Anual

30

N horas/sesin
Teora Prctica
1 h.

1 h.

La descripcin que hacen los mencionados planes de estudio para la


asignatura Fundamentos de la Programacin establece tres puntos : Anlisis de
Algoritmos : Lenguaje de Programacin, Diseo de Algoritmos y Diseo
Descendente. De acuerdo con esta descripcin hemos optado por organizar la
asignatura en dos grandes bloques, que se desarrollarn en los respectivos
cuatrimestres :
Bloque I : Diseo y Anlisis de Algoritmos
Bloque II : Lenguajes de Programacin
Esta asignatura es de gran importancia para las tres titulaciones, como se
puede comprobar observando las relaciones de dependencia con el resto de las
materias, ya que es prerrequisito de gran cantidad de asignaturas, bien directa o
indirectamente. Es ms, no slo para Informticos, sino para cualquier curriculum

de Ciencias e Ingeniera, ya que como dice [Joyanes96] para la mayora de los


estudiantes, el conocimiento inicial eficiente de conceptos bsicos tales como
algoritmos y estructura de datos, as como el modo de aprender a resolver
problemas mediante computadoras, suele ser vital debido a la trascendencia que
un aprendizaje gradual y correcto supondr para su carrera y sobre todo para sus
primeros cursos en la universidad.
2.- Metodologa Docente
Hoy en da el avance de la Ciencia y la Tcnica, y en particular de la
Informtica, es vertiginoso. Cuando los alumnos que ahora tenemos ante nosotros
se conviertan en profesionales es probable que los instrumentos de que dispongan
en el ejercicio de su actividad y las tcnicas que empleen sean sensiblemente
diferentes a las que nosotros hayamos podido describir. Lo que ahora importa, no
es tanto poseer una informacin determinada, sino fundamentalmente haber
adquirido la capacidad para descubrir y saber encontrar esa informacin.
Concebido as el proceso educativo, el educador pasa, en gran medida, a
transformarse en director y organizador de la situacin de aprendizaje.
A grandes rasgos podramos describir la asignatura como el estudio y
anlisis de las metodologas y tcnicas para la resolucin de problemas mediante
el ordenador. Y por tanto, debemos hacer una pequea reflexin general sobre la
importancia de la resolucin de problemas. Los problemas deben ser una ocasin
privilegiada de construir y profundizar los conocimientos. Se debe evitar la
orientacin habitual dada a la resolucin de problemas, que la limita al
operativismo mecnico (convirtindolos en recetas de cocina) con una falta de
reflexin cualitativa previa, y al tratamiento superficial sin detenerse en la
clarificacin de los conceptos. En [Krulik80] se define un problema como una
situacin, cuantitativa o no, que pide una solucin para la cual los individuos
implicados no conocen medios o caminos evidentes para obtenerla.
Habitualmente, los problemas son explicados como algo que se sabe hacer, como
algo cuya solucin se conoce y que no genera dudas ni exige tentativas: el
profesor conoce la situacin - para l no es un problema - y la explica
linealmente, con toda claridad; consecuentemente, los alumnos pueden aprender
dicha solucin y repetirla ante situaciones idnticas, pero no aprenden a abordar
un verdadero problema y cualquier pequeo cambio les supone dificultades
insuperables. En [Polya95] se menciona que cuando el maestro resuelve un
problema ante la clase, debe dramatizar un poco sus ideas y hacerse las mismas
preguntas que emplea para ayudar a sus alumnos, y aade que el alumno debe
comprender el problema. Pero no slo debe comprenderlo, sino tambin debe
desear resolverlo. En general, para resolver un problema los pasos a seguir son :
a) Comprensin del problema
b) Planteamiento cualitativo y formulacin de hiptesis

c) Estrategias de resolucin y resolucin propiamente dicha


d) Anlisis de resultados
Que adaptados a la resolucin por ordenador quedaran :
a) Definicin y anlisis del problema
b) Diseo del algoritmo y anlisis a priori
c) Codificacin en un lenguaje de programacin : programa
d) Ejecucin y validacin del programa y anlisis a posteriori
Uno de los objetivos generales que se pretenden alcanzar con esta
asignatura es :
Que el alumno sea capaz de Especificar, Disear y Analizar un
Algoritmo, que sea correcto y eficiente, a partir de un problema dado.
La consecucin de este objetivo, utilizando los mtodos y medios
tradicionales (pizarra y papel), suele convertirse en una tarea tediosa, tanto para el
profesor como para el alumno. As mismo, el acudir inmediatamente a la
realizacin del algoritmo en un lenguaje de programacin determinado conlleva
que el alumno hipoteque su futuro al limitar su visin de la programacin a la
sintaxis y estructuras concretas de ese lenguaje. La utilizacin de pseudocdigo y
otras tcnicas de representacin grficas nos permitir mantener, a nivel de
algoritmo, cierta independencia tanto del lenguaje de programacin a utilizar
como del ordenador en el que los ejecutemos. En la ciencia de la computacin y
la programacin los algoritmos son ms importantes que los lenguajes de
programacin y los ordenadores, que se convierten as en meros medios para
alcanzar el fin, efectuar la tarea para la cual est diseado el algoritmo : la
resolucin del problema.
Para finalizar este apartado resumir que nuestras pretensiones en relacin
al proceso de enseanza/aprendizaje de la especificacin-diseo-anlisis de
algoritmos son :
que resulte ameno.
que sea independiente del lenguaje de programacin utilizado.
que el algoritmo resultante sea eficiente.
que el ordenador se convierta en un recurso didctico
Respecto a este ltimo punto, remarcar que nuestra doble condicin, de
informticos por una parte y de docentes por la otra, nos sita en una posicin
inmejorable para abordar la utilizacin del ordenador en el aula como recurso
didctico. Se trata de aprender con el ordenador, convirtindolo en una
poderosa ayuda para el profesor y en un vlido tutor para el alumno. Es por ello,
que el programa que nosotros vamos a describir ayudar a los estudiantes a
disear sus algoritmos y a comprender su funcionamiento.

3.- Programn en el Laberinto


Tras esta pequea reflexin mostramos un programa que nos permitir
conseguir nuestras pretensiones, o cuanto menos, intentarlo : Programn en el
laberinto. La pantalla general la podemos ver en la figura 1. Pasemos a realizar
una breve descripcin. Nuestro personaje, Programn, es un viajero que cargado
con su mochila recorre laberintos hasta encontrar la salida. Para llevar a buen
puerto dicha misin seguir al pie de la letra las instrucciones que nosotros le
hemos dado (algoritmo) y utilizar nicamente los utensilios (datos) que lleva en
su mochila.

Barra controles
de la ejecucin

N de pasos a
ejecutar
simultneamente

Laberinto
representando
el algoritmo

Ventana de
ejecucin
grfica del
algoritmo

Figura 1: Pantalla General del Programa

Ante un problema planteado al alumno, ste escribir un algoritmo en


pseudocdigo2 y lo introducir en el ordenador. En un primer momento, un
analizador sintctico nos indicar los posibles errores sintcticos de nuestro
algoritmo. De ser correcto, el programa dibujar un laberinto, con pasillos y
habitculos, en funcin del algoritmo diseado, y le asignar una mochila a
2

Se ha diseado un lenguaje algortmico o pseudocdigo castellano para su utilizacin en el bloque I de


la asignatura Fundamentos de Programacin, tanto para la parte terica como para la prctica.

Programn. La mochila en este primer momento contendr el estado de la


variables antes de iniciar su andadura y las condiciones de entrada al algoritmo.
El contenido de la mochila se podr visualizar en una ventana de la pantalla (ver
fig. 2). A medida que se avanza en el laberinto (seguimiento del algoritmo) se
trazar una marca que muestra la ruta seguida por nuestro protagonista y el
contenido de la mochila se ir actualizando. En pantalla se visualizarn dos
marcadores que indicarn, los pasos dados por Programn (coste temporal) y la
carga de la mochila (coste espacial). El paseo por el laberinto finalizar bien
cuando nuestro curioso amigo llegue a la salida (ejecucin correcta) o bien
cuando llegue a un habitculo sin salida o cuando se detecte un bucle sin fin
(finalizacin errnea). El algoritmo lo podemos visualizar tanto en forma de
laberinto (fig. 1) como en forma de diagrama de flujo (fig. 2).

Mochila
con las
variables

Esfera
representando
el punto de
ejecucin

La llamada
recursiva genera
otro piso o nivel

Figura 2: Pantalla mostrando la "mochila"

Adems el programa posee una opcin de ayuda en lnea que contiene una
especificacin detallada de la sintaxis del pseudocdigo descrito en los apuntes
de la asignatura [Llorens96]. La versin original de este programa ha sido
desarrollada bajo Power PC Macinstosh modelo 8100/100 con 48 MB de RAM y
1700 MB de HD con el compilador Codewarrior versin 10 de Metrowerks, Inc.
[AP96], [Apple94], [Metrowerks96], [QuickDraw95], [Surovell92].

4.- Conclusiones
La utilizacin del programa en la parte prctica de la asignatura reportar
los siguientes beneficios :
El alumno de manera interactiva podr analizar algoritmos realizando
pequeas modificaciones y comprobando su comportamiento.
El alumno podr estudiar la eficiencia del algoritmo de manera automtica y
entretenida.
Facilita la modularidad ya que:
los algoritmos deben ser breves, lo que habita al alumno a abordar la
resolucin de problemas dividindolo en subproblemas ms sencillos
forzamos al alumno a que un algoritmo tenga una nica puerta de
entrada y un nico punto de salida.
las estructuras de pseudocdigo proporcionadas al alumno estn
limitadas a aquellas que aportan modularidad.
El alumno visualiza de manera grfica e interactiva la traza del algoritmo :
ruta dibujada por el laberinto
contenido de la mochila (valor de las variables en cada momento)
Introduce el concepto de complejidad de un algoritmo, al trabajar con las ideas
intuitivas de coste temporal (nmero de pasos) y coste espacial (carga de la
mochila).
Favorece la abstraccin al tener que disear algoritmos para la resolucin de
problemas que sean independientes del lenguaje de programacin a utilizar.
Refuerza, de manera prctica, el estudio terico de las estructuras algortmicas
bsicas : secuencial, alternativa e iterativa.
Facilita la comprensin de la Recursividad : en cada llamada recursiva se
accede a un piso (nivel) superior (ver ilustracin 2).
Apoya el estudio del mbito de las variables (locales y globales) ya que
observando el contenido de las mochila vemos qu variables son las que
realmente tenemos disponibles y por tanto podemos acceder en ese
determinado paso del algoritmo.
La utilizacin de este programa cubrir el 30 % de la parte dedicada a
prcticas de laboratorio de la asignatura Fundamentos de la Programacin,
convirtindose en la herramienta bsica utilizada para la parte prctica del primer
bloque (Diseo y Anlisis de Algoritmos) de la asignatura. Una vez que el
alumno ha trabajo de manera algortmica y tiene los esquemas de programacin
suficientemente claros, pasamos a trabajar con dos lenguajes de programacin
imperativa : Pascal y C. La eleccin concreta de los lenguajes Pascal y C obedece
a que el primero posee unas buenas caractersticas didcticas y el segundo es uno
de los lenguajes de programacin ms extendidos y utilizados.

Referencias Bibliogrficas
[AP96]

CodeWarrior Software Development using PowerPlant. AP Professional, 1996

[Apple94]

Imaging with QuickDraw. Inside Macinstosh. Apple Computer Inc.. Addison-Wesley


Publishing Company, 1994

[BOE87a]

Ley de Reforma Universitaria. Ley Orgnica 11/1983 de 25 de Agosto. B.O.E.

[BOE87b]

Directrices Generales Comunes de los Planes de Estudio de los Ttulos Universitarios de


carcter oficial y validez en todo el territorio nacional. Real Decreto 1497/1987 de 27 de
noviembre, B.O.E.

[BOE90]

Directrices Generales Propias de los Planes de Estudios conducentes a la obtencin de los


ttulos oficiales de Ingeniero en Informtica, Ingeniero Tcnico en Informtica de Gestin
e Ingeniero Tcnico en Informtica de Sistemas. Consejo de Universidades. Reales
Decretos 1459-60-61 de 26 de octubre de 1990. BOE n 278: 34401-34405 de 20 de
noviembre de 1990.

[BOE93a]

Plan de Estudios conducente al ttulo de Ingeniero Tcnico en Informtica de Gestin de la


Escuela Politcnica Superior de la Universidad de Alicante. Resolucin de 18 de
septiembre de 1992 de la Universidad de Alicante. B.O.E. n 18, de 21 de Enero de 1993,
pag. 1565-1578.

[BOE93b]

Plan de Estudios conducente al ttulo de Ingeniero en Informtica de la Escuela


Politcnica Superior de la Universidad de Alicante. Resolucin de 18 de septiembre de
1992 de la Universidad de Alicante. B.O.E. n 37, de 12 de Febrero de 1993, pag. 44674478.

[BOE93c]

Plan de Estudios conducente al ttulo de Ingeniero Tcnico en Informtica de Sistemas de


la Escuela Politcnica Superior de la Universidad de Alicante. Resolucin de 18 de
septiembre de 1992 de la Universidad de Alicante. B.O.E. n 37, de 12 de Febrero de 1993,
pag. 4478-4489.

[Joyanes96] Fundamentos de Programacin. Algoritmos y Estructuras de Datos. Luis Joyanes Aguilar.


McGraw-Hill, 2 ed. 1996
[Krulik80]

Problem Solving in School Mathematics. S. Krulik y K. Rudnick. National Council of


Teachers of Mathematics, Year Book. Reston : Virginia, 1980

[Llorens96] Fundamentos de la Programacin. Faran Llorens, Rosana Satorre, y otros. Dpto.


Tecnologa Informtica y Computacin, Universidad de Alicante, 1996
[Metrowerks96] CodeWarrior The PowerPlant Book. Metrowerks Codewarrior, 1996
[Polya95]

Cmo Plantear y Resolver Problemas. G. Polya. Editorial Trillas, Mexico, 19 ed. 1995

[QuickDraw95] 3D Graphics Programming with QuickDraw 3D. Addison-Wesley Publishing Company,


1995
[Surovell92] Programming QuickDraw. Macintosh Inside Out. David A. Surovell, Frederick M. Hall y
Konstantin Othmer. Addison-Wesley Publishing Company, 1992

También podría gustarte