12.07.2015 Views

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

enseñar a diseñar a través <strong>de</strong> buenos patrones y,por último, enseñar a analizar” [T.Love]; “paradominar el análisis OO, es preciso haber aprendidolos conceptos fundamentales <strong>de</strong>s<strong>de</strong> el nivel <strong>de</strong> <strong>la</strong>imp<strong>la</strong>ntación [...] Únicamente <strong>de</strong>spués <strong>de</strong> unencuentro, con <strong>la</strong>s manos en <strong>la</strong> masa, con el usooperativo <strong>de</strong>l método, estará uno preparado paracompren<strong>de</strong>r los conceptos <strong>de</strong>l análisis OO” [43].El informe <strong>de</strong> ACM/IEEE2001 previene sobrelos efectos <strong>de</strong> trabajar sin un lenguaje <strong>de</strong>programación y l<strong>la</strong>ma <strong>la</strong> atención sobre el mayoresfuerzo requerido por parte <strong>de</strong>l profesor.Por tanto, pensamos que no se pue<strong>de</strong> empezarcon mo<strong>de</strong>los, ni con análisis primero, para evitar <strong>la</strong>complejidad <strong>de</strong> <strong>la</strong> programación, sino, queconviene introducir<strong>la</strong> escalonadamente, reforzandocada concepto teórico con su correspondienteimp<strong>la</strong>ntación concreta sobre un lenguajeejecutable.4.2 Anteponiendo <strong>la</strong> programaciónEste enfoque se apoya en <strong>la</strong> siguiente tesis:¿conoce usted algo “mejor” que <strong>la</strong> OO?, ¿no?,¿por qué enseña algo que le parece “peor”?[16,18,35,40,54].Habría otras alternativas, por ejemploempezar con programación concurrente OO coninterfaces gráficos, o usar lenguajesmultiparadigmáticos como Leda [13](lógico/funcionales/procedimentales orientados aprocesos y a objetos) y resolver cada parte <strong>de</strong>ldominio <strong>de</strong>l problema con el paradigma mása<strong>de</strong>cuado. Se podría empezar con XML y,<strong>de</strong>sechar <strong>de</strong>finitivamente el <strong>la</strong>stre <strong>de</strong> los datosformateados. Pero, ¿Tengo que enseñar “el mejor”paradigma?... ¿cuál será el mejor mañana? Elobjetivo <strong>de</strong> <strong>la</strong> docencia es prepararles para quepuedan evolucionar en consonancia con <strong>la</strong>evolución <strong>de</strong>l software y según <strong>la</strong>s necesida<strong>de</strong>s <strong>de</strong>su propio ejercicio profesional.Algunos <strong>de</strong> estos trabajos p<strong>la</strong>ntean e<strong>la</strong>prendizaje a partir <strong>de</strong>l estudio y adaptación <strong>de</strong>buenos programas diseñados por otros, queservirán como patrones o mo<strong>de</strong>los <strong>de</strong> nuevosprogramas [48,58]. En el entorno OO, muchospatrones interesantes conllevan complejasre<strong>la</strong>ciones entre c<strong>la</strong>ses, que producen unasobrecarga, no sólo <strong>de</strong> conceptos, sino <strong>de</strong> diseño.Otras propuestas conjugan <strong>la</strong> exposición <strong>de</strong> losconceptos OO con el uso <strong>de</strong> bibliotecas (API yframeworks) [41], que fomentan <strong>la</strong> abstracción,encapsu<strong>la</strong>ción, modu<strong>la</strong>rización, y jerarquización.No parece viable utilizar <strong>la</strong>s c<strong>la</strong>ses <strong>de</strong> <strong>la</strong>biblioteca sin conocer el paso <strong>de</strong> parámetros porvalor o referencia <strong>de</strong> los mensajes, sin conocer <strong>la</strong>sestructuras <strong>de</strong> control <strong>de</strong> flujo <strong>de</strong> ejecución queor<strong>de</strong>nen los mensajes en el tiempo y apren<strong>de</strong>rtodo a <strong>la</strong> vez, es en una sobrecarga excesiva parael alumno.Otras propuestas que anteponen <strong>la</strong>programación presentan un acercamiento a <strong>la</strong> OO<strong>de</strong>sarrol<strong>la</strong>ndo aplicaciones con interfaces gráficos<strong>de</strong> usuario [26,33,50,51,55,63,64], o basando elcurso en <strong>la</strong> creación <strong>de</strong> interfaces coloridas yjuegos. La solución se articu<strong>la</strong> a través <strong>de</strong> appletso con frameworks simplificados e irreales.Sus <strong>de</strong>sventajas son <strong>la</strong> suma <strong>de</strong> <strong>la</strong>s <strong>de</strong> otraspropuestas. Respecto al temario, es precisointroducir simultáneamente: tipos, variables,expresiones, sentencias <strong>de</strong> control añadiendoc<strong>la</strong>se, herencia, método y mensaje. Si es duroapren<strong>de</strong>r programación estructurada en un curso,<strong>la</strong> introducción <strong>de</strong> estos nuevos conceptosproduce una sobrecarga inabordable [26].Respecto a mecanismos <strong>de</strong> diseño: tambiénsobrecargan con re<strong>la</strong>ciones <strong>de</strong> herencia,composición y asociación, impuestas <strong>de</strong>s<strong>de</strong> elprimer momento, para terminar construyendo unapplet, que es el peor ejemplo <strong>de</strong> c<strong>la</strong>se, <strong>de</strong>l estiloConversor <strong>de</strong> Celsius a Fahrenheit o simi<strong>la</strong>res;¿no será <strong>la</strong> c<strong>la</strong>se GradoTemperatura quién asume<strong>la</strong> responsabilidad <strong>de</strong> <strong>la</strong> conversión, don<strong>de</strong> elinterfaz no calcu<strong>la</strong>, sino que requiere y presentalos datos?Respecto a <strong>la</strong> estructura <strong>de</strong> <strong>la</strong> interfaz,manejan un mo<strong>de</strong>lo <strong>de</strong> eventos globalizado o unaarquitectura sin eventos, con comunicaciones porca<strong>de</strong>nas <strong>de</strong> caracteres entre todos loscomponentes <strong>de</strong>l mo<strong>de</strong>lo/vista/contro<strong>la</strong>dor. Estosmo<strong>de</strong>los no sirven como antesa<strong>la</strong> <strong>de</strong> <strong>la</strong>sbibliotecas industriales y no tienen envergadurapara resolver problemas reales.Por tanto, compartimos que “adoptar elparadigma OO en primero implica (al menos, talcomo se ha llevado a cabo en muchos libros)exponer a los estudiantes a conceptos muycomplejos y, a menudo <strong>de</strong>licados, antes <strong>de</strong> quedispongan <strong>de</strong> conocimientos a<strong>de</strong>cuados paracompren<strong>de</strong>rlos” [12]. Los, sin duda, loablesobjetivos <strong>de</strong> fomentar <strong>la</strong> reusabilidad y <strong>de</strong><strong>de</strong>sarrol<strong>la</strong>r potentes aplicaciones <strong>de</strong>s<strong>de</strong> el

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!