You are on page 1of 15

EL ESTUDIO DE LA PROGRAMACIN ORIENTADA A OBJETOS EN INGENIERA TCNICA INFORMTICA DE GESTIN M.L. Prez, J.C.

Matos
Departamento de Informtica y Automtica, Universidad de Salamanca

Escuela Politcnica Superior de Zamora, Campus Viriato, Avda. Requejo 33, 49022-Zamora, Espaa.
Correo-e: mlperez@usal.es, jcmatos@usal.es Tfno: 980 54 50 00 Ext. 3636. Fax: 980 54 50 02

RESUMEN Este trabajo forma parte de un proyecto de adaptacin al Espacio Europeo de Educacin Superior de la titulacin Ingeniera Tcnica Informtica de Gestin que se imparte en la Escuela Politcnica Superior de Zamora. Dado que an no est completamente definido el mapa de nuevas titulaciones y no se conocen tampoco los contenidos mnimos a cubrir en cada una, el proyecto ha comenzado seleccionando algunas de las asignaturas que tienen mayor probabilidad de formar parte de los futuros estudios de Grado en Informtica. En este artculo se presenta una propuesta de contenidos razonada para la asignatura Programacin Orientada a Objetos de la titulacin Ingeniera Tcnica Informtica de Gestin de la Escuela Politcnica Superior de Zamora. La programacin orientada a objetos no est recogida en las Directrices Generales Propias de los estudios de informtica aplicables a fecha de hoy, por lo que el estudio de este paradigma de programacin se enfoca de forma muy variada en las diferentes universidades espaolas. Por ello, los contenidos propuestos en este trabajo se toman fundamentalmente de las recomendaciones internacionales de la ACM/IEEE, recogidas en el informe Computing Curricula 2001. Sin embargo, tambin se ha tenido en cuenta la informacin recabada de otras universidades, para adaptar las recomendaciones internacionales a las universidades espaolas. PALABRAS CLAVE: diseo curricular.

1.

INTRODUCCIN

El estudio de la programacin orientada a objetos tiene un tratamiento desigual en los diferentes planes de estudios conducentes a la obtencin de ttulos de Ingeniero Tcnica Informtico o Ingeniero Informtico. Un factor clave en esta situacin lo constituye el hecho de que la programacin orientada a objetos no est recogida en las Directrices Generales Propias de los estudios de informtica [1], aspecto que con seguridad subsanarn las nuevas Directrices de los estudios de Grado que ya se estn elaborando. Los diferentes planes de estudios de Ingeniera Tcnica Informtica de Gestin incluyen en primer curso una asignatura destinada a presentar al estudiante los fundamentos de programacin. Al analizar las asignaturas que introducen los fundamentos de programacin en diferentes universidades espaolas, se observa que hay dos tipos de enfoques fundamentales. En unos casos el estudio comienza tratando el paradigma orientado a objetos, mientras que en otros casos se comienza analizando la programacin estructurada. En el primer caso las universidades utilizan las asignaturas asociadas a la troncalidad Metodologa y Tecnologa de la Programacin para introducir la orientacin a objetos, mientras que en el segundo incluyen asignaturas adicionales en el plan de estudios para tratar dicho paradigma. El informe Computing Curricula 2001, confeccionado por ACM/IEEE [2], constituye una referencia muy importante a nivel internacional para la definicin de planes de estudios y contenidos de asignaturas relacionadas con la informtica. Las recomendaciones recogidas en dicho informe aconsejan no retrasar demasiado el estudio de la orientacin a objetos. Sin embargo, cuando un plan de estudios incluye una asignatura con el ttulo especfico de este paradigma en tercer curso, no parece adecuado que las asignaturas de los primeros cursos se centren en dicho paradigma. En este trabajo se presenta una propuesta de contenidos para la asignatura Programacin Orientada a Objetos en una titulacin de Informtica de Gestin que incluye dicha asignatura como obligatoria en tercer curso.

En el trabajo se realiza una revisin sobre los contenidos tratados en un conjunto de universidades espaolas, tomando esta informacin como punto de partida. Puesto que el tratamiento dado a la orientacin a objetos vara entre universidades, el estudio se completa con las recomendaciones establecidas en el informe Computing Curricula 2001. Las fuentes de informacin consultadas nos han llevado a definir los objetivos y contenidos de esta asignatura, enmarcndola dentro del plan de estudios actualmente vigente en la Escuela Politcnica Superior de Zamora. 2. LA PROGRAMACIN ORIENTADA A OBJETOS EN LA ESCUELA POLITCNICA SUPERIOR DE ZAMORA

En la Escuela Politcnica Superior de Zamora se imparten los estudios de Ingeniera Tcnica Informtica de Gestin desde el curso 2002/2003. La Tabla 1 muestra las asignaturas troncales (T) y obligatorias (O) del plan de estudios correspondiente a la titulacin, organizadas por cursos y cuatrimestres, e indicando para cada una los crditos tericos y prcticos. El plan de estudios se completa con 18 crditos optativos y 22,5 de libre disposicin [3]. CURSO CUATRIMESTRE 1 lgebra Clculo diferencial Funda. fsicos de la informtica Programacin I Sistemas informticos CUATRIMESTRE 2 lgebra computacional Clculo integral Tcnicas contables informatizadas Programacin II Estructuras de datos CUATRIMESTRE 1 Estadstica Matemtica discreta Uni. func. del computador Sistemas operativos Diseo de bases de datos CUATRIMESTRE 2 Sistemas de bases de datos Lab. de sistemas operativos Seguridad informtica Ingeniera de software I CUATRIMESTRE 1 Tc. de org. de empresas Progr. orientada a objetos Redes de ordenadores Ingeniera de software II Hipermedia: diseo y eval. CUATRIMESTRE 2 Gest. de procesos integrado por ordenador Proyecto CRDITOS (tericos y prcticos) 3T+3P 3T+3P 4,5T+3P 4,5T+3P 1,5T+4,5P 4,5T+1,5P 4,5T+3P 3T+4,5P 4,5T+3P 3T+3P 6T+3P 3T+3P 6T+3P 6T+0P 4,5T+0P 1,5T+3P 0T+4,5P 3T+1,5P 4,5T+1,5P 4,5T+1,5P 3T+3P 4,5T+3P 3T+3P 3T+4,5P 3T+1,5P 0T+4,5P CARCTER T T O T O O O T T T T T T T T T O O T T O O T O O O

Tabla 1. Resumen del plan de estudios de Ingeniera Tcnica Informtica de Gestin de la Escuela Politcnica Superior de Zamora El plan de estudios incluye dos asignaturas troncales: Programacin I y Programacin II, para cubrir la materia Metodologa y Tecnologa de la Programacin. La asignatura Programacin Orientada a Objetos es de carcter obligatorio. Su descripcin incluye los siguientes puntos:

Abstraccin. Encapsulamiento. Herencia. Polimorfismo. Datos primitivos. Construccin de expresiones. Conversiones. Sentencias. Funciones.

Las asignaturas Programacin I y II introducen el paradigma de la programacin estructurada. Estructuras de Datos e Ingeniera del Software tratan algunos aspectos de la programacin orientada a objetos. La asignatura Estructuras de Datos slo introduce los conceptos de orientacin a objetos referentes a abstraccin, encapsulamiento y separacin entre comportamiento e implementacin. En la asignatura Ingeniera del Software II se introduce el uso del UML y se trata el desarrollo de software orientado a objetos [4]. 3. LA PROGRAMACIN ORIENTADA A OBJETOS EN LA UNIVERSIDAD ESPAOLA

Como ya hemos indicado, la programacin orientada a objetos no se contempla en las Directrices Generales Propias de los estudios de informtica, lo que hace que su tratamiento sea muy diferente en cada universidad. El estudio de este paradigma de programacin se podra englobar dentro de la troncalidad Metodologa y Tecnologa de la Programacin, cuyos descriptores son: Diseo de algoritmos. Anlisis de algoritmos. Lenguajes de programacin. Diseo de programas: Descomposicin modular y documentacin. Tcnicas de verificacin y pruebas de programas.

La ambigedad de estos descriptores no determina de forma unvoca el paradigma de programacin que se debe utilizar, por lo que podramos asociarlos tanto a la programacin estructurada como a la orientada a objetos. Para comprobar cmo se enfoca el tema en las universidades espaolas, se han analizado los planes de estudios de 11 centros de las 51 universidades pblicas espaoles que durante el curso 2003/2004 impartieron la titulacin Ingeniera Tcnica Informtica de Gestin en Espaa. Se han seleccionado las universidades que ms plazas ofertaron el citado curso, tomando esta informacin de la pgina web del Ministerio de Educacin y Ciencia [5]. En la Figura 5 aparecen los nombres de las universidades consideradas. El estudio se ha basado en la informacin que los centros tienen accesible va internet en relacin con sus planes de estudios y los temarios de las asignaturas. 3.1. Enfoque del plan de estudios El acercamiento utilizado en la mayor parte de los planes de estudios considerados es el imperativo primero, si bien en alguno de los casos se considera el acercamiento objetos primero.

La mayor parte de los planes de estudio comienzan introduciendo el paradigma de la programacin estructurada, estudiando despus el paradigma orientado a objetos. 3.2. Tipo de asignaturas en las que se enmarca el estudio de la orientacin a objetos Hay que sealar que en todos los planes de estudios considerados, salvo en la Universidad Carlos III, se considera este paradigma de programacin en mayor o menor grado. En algunas universidades existen asignaturas dedicadas especficamente a este paradigma, mientras que en otras se utilizan asignaturas de diferentes troncalidades para estudiarlo (fundamentalmente de las troncalidades Metodologa y Tecnologa de la Programacin y Estructuras de Datos y de la Informacin), como se muestra en la Figura 1.

18%

18% E RFP RED 64%

Figura 1. Tipo de asignaturas en las que se engloba el estudio de la programacin orientada a objetos (E: especficas, RFP: relacionadas con fundamentos de programacin, RED: relacionadas con estructuras de datos) Observamos que, en la mayor parte de las universidades, la programacin orientada a objetos se estudia dentro de asignaturas pertenecientes a la troncalidad Metodologa y Tecnologa de la Programacin. Las asignaturas que estudian este paradigma de programacin son fundamentalmente troncales u obligatorias. Aunque existe un pequeo nmero de universidades en las que se utilizan asignaturas optativas. En los casos en los que existen asignaturas optativas relacionadas con este paradigma, los conceptos fundamentales se introducen en otras asignaturas troncales u obligatorias del plan de estudios. En concreto, en 3 de las universidades analizadas existen asignaturas optativas que intensifican el estudio de la programacin orientada a objetos. En muy pocas universidades existe una asignatura cuyo nombre indique que su objetivo es el estudio de la orientacin a objetos. En tales casos el tema se trata en otras asignaturas, normalmente relacionadas con fundamentos de programacin, pero tambin con estructuras de datos. 3.3. Curso en el que se estudia la programacin orientada a objetos En cuanto al curso en el que se estudia la programacin orientada a objetos, cabe hacer una distincin entre el momento en el que se empieza a introducir el paradigma y el momento en el que se estudia en profundidad. Observamos que la programacin orientada a objetos se presenta normalmente en el segundo o el primer ao de carrera, siendo ms frecuente el primer caso, como se aprecia en la Figura 2. Aunque se pueden introducir algunos aspectos de orientacin objetos en primer curso, el estudio en profundidad del paradigma suele realizarse en segundo curso.

6 5 4 3 2 1 0 primero segundo tercero nunca

Figura 2. Curso en el que se introduce el estudio de la orientacin a objetos en los estudios de informtica de gestin 3.4. El lenguaje de programacin utilizado En lo referente al lenguaje de programacin considerado en las asignaturas que estudian el paradigma orientado a objetos, observamos que los dos lenguajes ms comunes son C++ o Java, estudindose ambos en algunas de las universidades consideradas, como se refleja en la Figura 3.
4,5 4 3,5 3 2,5 2 1,5 1 0,5 0 C++ Java C++ y Java otros

Figura 3. Lenguajes estudiados en las asignaturas relacionadas con programacin orientada a objetos

Ada 3,2%

Pascal 3,2%

Eiffel 3,2%

Java 45,2%

C++ 45,2%

Figura 4. Lenguajes orientados a objetos estudiados en la titulacin Ingeniera Tcnica Informtica de Gestin en las universidades espaolas (analizadas 31 en total) Para poder tener una idea ms clara del lenguaje de programacin orientado a objetos ms utilizado en las universidades espaolas, se ha comprobado este extremo en 31 universidades, obteniendo los resultados que se muestran en la Figura 4. Observamos que los lenguajes considerados siguen siendo fundamentalmente C++ y Java.

3.5. Crditos asociados al estudio de la orientacin a objetos En cuanto al nmero de crditos asociados al estudio de este paradigma, que se muestran en la Figura 5, vara entre 6 y 24. El mximo se refiere a la Universidad de Valencia, que utiliza la aproximacin objetos primero, lo que justifica la elevada carga. Las asignaturas obligatorias y optativas relacionadas directamente con la orientacin a objetos existentes en algunas universidades tienen asociados 6 crditos.

25 20 15 10 5
P. Madrid Cdiz C. La Mancha P. Valencia Mlaga Vigo Las Palmas Valladolid Carlos III Granada Jaen Corua

Figura 5. Crditos de las asignaturas troncales y obligatorias, relacionadas con programacin y estructuras de datos y algoritmos, en las que se estudia el paradigma orientado a objetos Hay que tener en cuenta que se consideran los crditos totales de las asignaturas que tratan el tema. Dado que no se dispone de informacin detallada sobre el nmero de horas dedicadas a cada tema en las diferentes universidades, el cmputo no se puede realizar con mayor detalle. Las asignaturas analizadas son slo las relacionadas con fundamentos de programacin, estructuras de datos y programacin orientada a objetos (de existir estas ltimas), por lo que no se incluyen en nuestro cmputo los crditos asociados a otras asignaturas que puedan tratar conceptos de orientacin a objetos, como pueden ser las relacionadas con bases de datos o ingeniera del software. Las asignaturas obligatorias y optativas relacionadas directamente con la orientacin a objetos, existentes en algunas universidades, tienen asociados una media de 6 crditos. 4. EL INFORME COMPUTING CURRICULA DE ACM/IEEE

Dado el tratamiento tan dispar aplicado en las diferentes universidades al estudio de la orientacin a objetos, resulta necesario consultar otras fuentes que nos den una idea precisa de los aspectos que se deberan tratar en la asignatura. Una fuente de informacin fundamental, utilizada por muchas universidades de todo el mundo para disear sus planes de estudio, la constituye el informe Computing Curricula 2001. En este apartado analizaremos la informacin que dicho informe puede aportarnos en lo relacionado con el estudio de la programacin orientada a objetos. En primer lugar, nos permitir definir la organizacin y estructura general de la asignatura. Adems, podremos definir los contenidos de la asignatura, en funcin de los contenidos concretos que se sugieren para cada una de las unidades definidas en las recomendaciones. Por tanto, podremos comenzar por una definicin de los bloques fundamentales de la asignatura, pasando despus a concretar los puntos a tratar en cada tema. Por ltimo, tambin nos permite identificar los objetivos de la asignatura. El plan de estudios de Ingeniera Tcnica Informtica de Gestin en la Escuela Politcnica Superior de Zamora sigue el acercamiento imperativo primero. Dentro de este enfoque, el Computing Curricula 2001 propone dos implementaciones: una tradicional y otra compacta. En la primera, la enseanza de la programacin se distribuye a lo largo de tres semestres, en los que se impartiran las siguientes asignaturas o cursos:

CS101I: Fundamentos de Programacin. CS102I: El Paradigma Orientado a Objetos. CS103I: Estructuras de Datos y Algoritmos. El tiempo utilizado para introducir los contenidos hace aconsejable considerar esta aproximacin. Al comparar las asignaturas propuestas en el Computing Curricula 2001 y las del plan de estudios de Zamora, inicialmente parece lgico asociar la asignatura CS101I con Programacin I, CS102I con Programacin Orientada a Objetos y CS103I con Estructuras de Datos y Programacin II, respectivamente. Aparte de asemejarse en su denominacin, tambin lo hacen en sus contenidos, aunque no en su ubicacin en el plan de estudios. Este hecho se confirma al consultar la Tabla 2, que muestra los contenidos de las 3 asignaturas del informe Computing Curricula 2001 y las asignaturas del plan de estudios de la Politcnica de Zamora que las cubren. Se indican las unidades asociadas a cada uno de los tres cursos propuestos en el Computing Curricula 2001 (CS101I, CS102I y CS103I), indicando en cada caso las horas del ncleo (HN) asociadas a cada unidad. Se indica tambin el tiempo asociado a cada rea. En la cuarta columna se indican cules de las unidades se cubren en las asignaturas indicadas del plan de estudios de Informtica de Gestin de Zamora. Las abreviaturas utilizadas para las asignaturas son: AF: Teora de autmatas y lenguajes formales; DBD: Diseo de bases de datos; DI: Derecho e informtica; ED: Estructuras de datos; H: Hipermedia: diseo y evaluacin; IG: Informtica grfica; ISI: Ing. de software I; ISII: Ing. de software II; MD: Matemtica discreta; PI: Programacin I; PII: Programacin II; POO: Programacin orientada a objetos; R: Redes; SBD: Sistemas de bases de datos; SsI: Sistemas informticos; UFC: Unidades funcionales del computador. En general, se puede observar que todas las unidades que forman parte del ncleo de las recomendaciones curriculares estn suficientemente cubiertas por el plan de estudios, aunque la distribucin entre las asignaturas difiera en parte de la propuesta. Las asignaturas del acercamiento imperativo primero son cubiertas fundamentalmente por las siguientes asignaturas del plan de estudios de Zamora: Programacin I, Programacin II, Sistemas Informticos, Estructuras de Datos, Ingeniera del Software I y II y Programacin Orientada a Objetos. En lo referente a la programacin orientada a objetos, el plan de estudios de Zamora incluye una asignatura especfica, que cubre el tema en tercer curso. Sin embargo, el Computing Curricula 2001 aconseja un estudio mucho ms temprano de este paradigma, incluso en el acercamiento imperativo primero, lo que explica la elevada carga que se establece para este tema en las recomendaciones. Por lgica, la asignatura Estructuras de datos en la Politcnica de Zamora debe reducir sustancialmente la carga asociada al estudio de la orientacin a objetos, evitando redundancias con la asignatura de tercero. En Estructuras de Datos se introducen conceptos como la abstraccin, la ocultacin de la informacin, o la separacin entre especificacin e implementacin. Las asignaturas relacionadas con bases de datos (Diseo de Bases de Datos, Sistemas de Bases de Datos), as como las referentes a ingeniera del software (Ingeniera del Software I e Ingeniera del Software II), tratan tambin algunos aspectos relacionados con la orientacin a objetos. Todo ello contribuye a una progresiva introduccin de los aspectos ms bsicos del paradigma orientado a objetos ya desde el primer curso. La diferencia bsica entre la propuesta imperativo primero del informe Computing Curricula 2001 y el plan de estudios de Ingeniera Tcnica Informtica de Gestin de la Escuela Politcnica Superior de Zamora es el intercambio, en cuanto a la secuenciacin temporal, de la programacin orientada a objetos y las estructuras de datos. Esto har necesario modificar algunas unidades bsicas que el Computing Curricula incluye en las asignatura CS102I: El Paradigma Orientado a Objetos y CS103I: Estructuras de Datos y Algoritmos. El estudio de la programacin orientada a objetos debe ir ligado al estudio de algn lenguaje de programacin que siga dicho paradigma, para que el alumno pueda comprender mejor los conceptos tericos presentados. Sin embargo, las recomendaciones no hacen referencia a un lenguaje concreto.

Asignaturas de la E.P.S.Z MD, ED PI, POO PI PI, ED PII PI PII PII ED, PII AF PI, POO POO PI, POO PI, POO PI, ED PII, POO, ED SsI SsI DI DI ISI, ISII ISI, SII POO ISI, ISII, PI ISI, ISII ISI, ISII ISI, ISII ISI, ISII SsI R IG SsI H H SsI SsI UFC DBD SBD

DS DS5 PF PF1 PF2 PF3 PF4 PF5 AL AL1 AL2 AL3 AL5 PL PL1 PL2 PL3 PL4 PL5 PL6 SP SP1 SP2 SP4 SP6 SE SE1 SE2 SE3 SE4 SE5 SE6 SE7 NC NC1 GV GV1 OS OS1 HC HC1 HC2 AR AR2 AR3 IM IM2

Estructuras Discretas Grafos y rboles Fundamentos de Programacin Construcciones fundam. de programacin Algoritmos y resolucin de problemas Estructuras de datos fundamentales Recursividad Programacin dirigida por eventos Algoritmos y Complejidad Anlisis bsico de algoritmos Estrategias algortmicas Algoritmos fundam. de computacin Teora bsica de la computabilidad Lenguajes de Programacin Visin general de los leng. de programacin Mquinas virtuales Introduccin a traduccin de lenguajes Declaraciones y tipos Mecanismos de abstraccin Programacin orientada a objetos Aspectos Sociales y Profesionales Historia de la informtica El contexto social de la informtica Responsabilidades profesionales y ticas Propiedad intelectual Ingeniera del Software Diseo de software Utilizacin de APIs Herramientas y entornos software Procesos del software Requisitos y especificaciones software Validacin del software Evolucin del software Computacin Orientada a la Red Introduc. a la computacin orientada a la red Grficos y Computacin Visual Tcnicas fundamentales en grficos Sistemas Operativos Visin general de los sistemas operativos Interaccin Hombre-Mquina Fundam. de la interaccin persona-ordenador Construc. de un interfaz grfico sencillo Arquitectura y Organizacin Repres. de los datos al nivel de mquina Org. de la mquina al nivel de ensamblado Gestin de la Informacin Sistemas de bases de datos

43 4 38 9 6 14 5 4 31 4 6 12 6 21 2 1 2 3 3 10 16 1

2 10 3 3 6 2 5 1 2 3 5 X 1

12 5

3 1 1 1 6 1 1 1 1 3 2 1 1 1 1 1 1 1 1 1 2 1 2 2 1 1 2

1 3 3

31 8 5 3 2 4 3 3 15 2 3 2 18 2 8 6 2 36 3 9 10 3

Tabla 2. Unidades cubiertas por las asignaturas del plan de estudios de I. T. Informtica de Gestin de la E. P. Superior de Zamora y por las asignaturas definidas en el Computing Curricula 2001, acercamiento imperativo primero.

CS103I

CS101I

CS102I

H.N.

4.1. Unidades seleccionadas En funcin de los datos recopilados en la Tabla 2, podemos determinar las unidades propuestas en el Computing Curricula 2001 que sern seleccionadas para la asignatura Programacin Orientada a Objetos de Zamora, pasando despus a identificar los tpicos asociados a cada unidad seleccionada. En el curso CS102I se puede identificar un bloque de unidades relacionado con la ingeniera del software. Dado que el plan de estudios de Zamora incluye dos asignaturas relacionadas con el tema, se descartarn las unidades tratadas en las mismas (SE1, SE5, SE6, SE7). Otras unidades descartadas, por ser tratadas ampliamente en otras asignaturas del plan de estudios, son: PF2, AR2, IM2, AL3, HC1 y HC2. Dado que el Computing Curricula 2001 propone completar la asignatura Programacin Orientada a Objetos con 1 hora de tpicos electivos, se considera interesante incluir la unidad PL4 (Declaraciones y tipos). Esta unidad, tratada en Programacin I en relacin con la programacin estructurada, se volver a tratar aqu en relacin con los lenguajes orientados a objetos. En resumen, las unidades seleccionadas para la asignatura son: PF1, PF3, PF5, PL1, PL2, PL3, PL4, PL6 y SE2. La unidad PL6 ser tratada dentro de la asignatura Programacin Orientada a Objetos ms ampliamente de lo indicado en las especificaciones curriculares, dado que el tiempo asignado a esta unidad en la asignatura Estructuras de Datos es mucho menor que el indicado en las recomendaciones. Por el contrario, a la unidad PF3 se le dedicar menos tiempo del fijado en las recomendaciones, ya que la mayor parte de los tpicos han sido ya estudiados en la asignatura Estructuras de Datos. 4.2. Tpicos asociados a las unidades seleccionadas Una vez seleccionadas las unidades a tratar, se consideran los tpicos asociados a las mismas, reflejados en las Tablas 3 y 4. Sintaxis y semntica bsica de un lenguaje de alto nivel. Variables, tipos, expresiones y asignacin. E/S bsica. Estructuras de control condicionales e iterativas. Funciones y paso de parmetros. Descomposicin estructurada. Tipos primitivos. Arrays. Registros. Cadenas y procesamiento de cadenas. Representacin de datos en memoria. Reserva de memoria esttica, en pila y en montculo. Manejo de almacenamiento en tiempo de ejecucin. Punteros y referencias. Estructuras enlazadas. Estrategias de implementacin de pilas, colas y tablas de dispersin. Estrategias de implementacin de grafos y rboles. Estrategias para elegir la estructura de datos adecuada. Mtodos de gestin de eventos. Propagacin de eventos. Manejo de excepciones. Historia de los lenguajes de programacin. Breve estudio de los paradigmas de programacin: Lenguajes procedimentales. Lenguajes orientados a objetos. Lenguajes funcionales. Lenguajes declarativos, no algortmicos. Lenguajes de script. El efecto de la escala en la metodologa de la programacin.

PF1

PF3

PF5

PL1

Tabla 3. Tpicos propuestos en el Computing Curricula 2001 para las unidades seleccionadas en relacin con la asignatura Programacin Orientada a Objetos (primera parte).

PL2

PL3

PL4

PL6

SE2

El concepto de mquina virtual. Jerarqua de mquinas virtuales. Lenguajes intermedios. Aspectos de seguridad que surgen al ejecutar cdigo en un mquina ajena Comparacin de intrpretes y compiladores. Fases de la traduccin de un lenguaje (anlisis lxico, anlisis gramatical, generacin de cdigo, optimizacin). Aspectos de la traduccin dependientes e independientes de la mquina La idea de tipos como un conjunto de valores con un conjunto de operaciones asociadas. Modelos de declaracin (ligadura, visibilidad, alcance y tiempo de vida). Visin general de la comprobacin de tipos. Recoleccin de basura. Diseo orientado a objetos. Encapsulacin y ocultacin de la informacin. Separacin del comportamiento y la implementacin. Clases y subclases. Herencia. Polimorfismo (polimorfismo de subtipos vs. herencia). Jerarqua de clases. Colecciones y protocolos de iteracin. Representacin interna de objetos y tablas de mtodos Programacin de un API. Ojeadores de clases y herramientas relacionadas. Programacin mediante ejemplos. Depurado en el entorno del API. Introduccin a la computacin basada en componentes.

Tabla 4. Tpicos propuestos en el Computing Curricula 2001 para las unidades seleccionadas en relacin con la asignatura Programacin Orientada a Objetos (segunda parte). 4.3. Objetivos asociados a las unidades seleccionadas Las Tablas 5, 6 y 7 muestran los objetivos relacionados con las unidades seleccionadas que figuran en el Computing Curricula. PF1 Construcciones fundamentales de programacin 1. Analizar y explicar el comportamiento de programas sencillos que utilicen las construcciones de programacin fundamentales cubiertas por esta unidad. 2. Modificar y ampliar programas pequeos que usen funciones y estructuras de control condicionales e iterativas estndar. 3. Disear, implementar, probar y depurar un programa que use cada una de las siguientes construcciones de programacin fundamentales: clculos bsicos, E/S bsica, estructuras iterativas y condicionales estndar y la definicin de funciones. 4. Elegir construcciones condicionales e iterativas adecuadas para una tarea de programacin dada. 5. Aplicar tcnicas de descomposicin estructurada (funcional) para descomponer un programa en partes ms pequeas. 6. Describir el mecanismo de paso de parmetros. Tabla 5. Objetivos propuestos en el Computing Curricula 2001 para las unidades seleccionadas en relacin con la asignatura Programacin Orientada a Objetos (primera parte).

PF3 Estructuras de datos fundamentales 1. Discutir la representacin y uso de tipos de datos primitivos y estructuras de datos preconstruidas. 2. Describir cmo son usadas y reservadas en memoria las estructuras de datos estudiadas. 3. Describir aplicaciones comunes para cada una de las estructuras de datos estudiadas. 4. Implementar las estructuras de datos definidas por el usuario en un lenguaje de alto nivel. 5. Comparar mtodos alternativos de implementacin de las estructuras de datos con respecto al rendimiento. 6. Escribir programas que usen cada una de las siguientes estructuras de datos: arrays, registros, cadenas, listas enlazadas, pilas, colas y tablas de dispersin. 7. Comparar y contrastar los costes y beneficios de las implementaciones estticas y dinmicas de las estructuras de datos. 8. Elegir las estructuras de datos apropiadas para modelar un problema dado. PF5 Programacin dirigida por eventos 1. Explicar la diferencia entre programacin dirigida por eventos y la programacin en lnea de comandos. 2. Disear, codificar, probar y depurar programas dirigidos por eventos sencillos, que respondan a eventos del usuario. 3. Desarrollar cdigo que responda a condiciones de excepcin producidas durante la ejecucin. PL1 Visin general de los lenguajes de programacin 1. Resumir la evolucin de los lenguajes de programacin, ilustrando cmo ha dado lugar a los paradigmas disponibles en la actualidad. 2. Identificar al menos una caracterstica distintiva para cada uno de los paradigmas de programacin cubiertos en esta unidad. 3. Evaluar las diferencias entre los distintos paradigmas, considerando aspectos tales como la eficiencia en cuanto al espacio, la eficiencia en cuanto al tiempo (tanto del ordenador como del programador), la seguridad y la potencia de las expresiones. 4. Distinguir entre programacin a pequea escala y programacin a gran escala. PL2 Mquinas virtuales 1. Describir la importancia y la potencia de la abstraccin en el contexto de mquinas virtuales. 2. Explicar los beneficios de los lenguajes intermedios en el proceso de compilacin. 3. Evaluar diferencias en rendimiento vs. portabilidad. 4. Explicar cmo los programas ejecutables pueden abrir una brecha en la seguridad de un sistema informtico mediante el acceso a ficheros de disco o a memoria. PL3 Introduccin a la traduccin de lenguajes 1. Comparar y contrastar modelos de ejecucin compilados e interpretados, esbozando las virtudes de cada uno. 2. Describir las fases de la traduccin de programas, desde cdigo fuente a cdigo ejecutable, y los ficheros generados por estas fases. 3. Explicar las diferencias entre la traduccin dependiente de la mquina y la independiente, indicando dnde son evidentes estas diferencias en el proceso de traduccin. PL4 Declaraciones y tipos 1. Explicar el valor de los modelos de declaracin, especialmente en lo referente a la programacin a gran escala. 2. Identificar y describir las propiedades de una variable, tales como direccin asociada, valor, alcance, persistencia y tamao. 3. Discutir las incompatibilidades entre tipos. 4. Demostrar diferentes formas de gestin de la ligadura, visibilidad, alcance y tiempo de vida. 5. Defender la importancia de los tipos y de la comprobacin de tipos para proporcionar abstraccin y seguridad. 6. Evaluar las diferencias en cuanto a la gestin del tiempo de vida (tener en cuenta las referencias vs. recoleccin de basura). Tabla 6. Objetivos propuestos en el Computing Curricula 2001 para las unidades seleccionadas en relacin con la asignatura Programacin Orientada a Objetos (segunda parte).

PL6 Programacin orientada a objetos 1. Justificar la filosofa del diseo orientado a objetos y los conceptos de encapsulamiento, abstraccin, herencia y polimorfismo. 2. Disear, implementar, probar y depurar programas sencillos en un lenguaje de programacin orientado a objetos. 3. Describir cmo el mecanismo de clase soporta encapsulamiento y ocultacin de informacin. 4. Disear, implementar y probar la implementacin de una relacin es-un entre objetos, usando jerarqua de clase y herencia. 5. Comparar y contrastar las nociones de sobrecarga y nociones sobre mtodos de sobrecarga y redefinicin en un lenguaje orientado a objetos. 6. Explicar la relacin entre la estructura esttica de la clase y la estructura dinmica de las instancias de la clase. 7. Describir cmo acceden los iteradores a los elementos de un contenedor. SE2 Utilizacin de APIs 1. Explicar el valor de los interfaces de programacin de aplicaciones (APIs) en el desarrollo del software. 2. Utilizar navegadores de clases y herramientas relacionadas durante el desarrollo de aplicaciones que utilizan APIs. 3. Disear, implementar, probar y depurar programas que utilizan paquetes API a gran escala. Tabla 7. Objetivos propuestos en el Computing Curricula 2001 para las unidades seleccionadas en relacin con la asignatura Programacin Orientada a Objetos (tercera parte). 5. PROPUESTA PARA LA ASIGNATURA

En base a la informacin anterior, en este apartado propondremos una organizacin de los tpicos en temas, para definir el contenido de la parte terica y la parte prctica de la asignatura. Antes de comenzar con este aspecto, se indicarn los objetivos de la asignatura, que tambin se han extrado del Computing Curricula. 5.1. Objetivos Los dos objetivos generales de la asignatura son introducir el paradigma de la programacin orientada a objetos y que el alumno aprenda un lenguaje de programacin orientado a objetos. Estos objetivos generales se pueden concretar en los siguientes objetivos especficos: Introducir al alumno en la filosofa de la programacin orientada a objetos. Presentar la programacin orientada a objetos como metodologa de diseo de programas, que favorece la reutilizacin y la ocultacin de informacin. Describir los conceptos en los que se fundamentan las tecnologas orientadas a objetos (clase, objeto, herencia, polimorfismo, abstraccin, ocultacin, paso de mensajes). Contrastar cmo los diferentes lenguajes orientados a objetos reflejan los conceptos relacionados con la programacin orientada a objetos. Conseguir que el alumno sea capaz de identificar en problemas reales los conceptos explicados en clase. Dar a conocer de manera sencilla una notacin de diseo orientado a objetos estndar. Introducir a los alumnos en el uso de patrones en la programacin orientada a objetos. Describir los elementos constructivos bsicos del lenguaje UML. Ensear al alumno un lenguaje de programacin orientada a objetos.

Capacitar al alumno para desarrollar algoritmos y disear programas utilizando programacin orientada a objetos. 5.2. Temario para la parte terica Los tpicos propuestos en el Computing Curricula 2001 sern cubiertos combinando un temario de teora y un conjunto de prcticas. Se propone estructurar el temario de teora en 3 mdulos, que cubren 6 temas: MDULO I- INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS TEMA 1: Introduccin TEMA 2: Conceptos fundamentales de orientacin a objetos MDULO II- CLASES Y OBJETOS TEMA 3: Clases TEMA 4: Objetos MDULO III- HERENCIA TEMA 5: Mecanismos de herencia TEMA 6: Polimorfismo En el primer tema se dar una visin general de los lenguajes de programacin actuales y los paradigmas de programacin. Se describirn las caractersticas generales de cada lenguaje y de cada paradigma. En el segundo tema se describirn los aspectos fundamentales de la programacin orientada a objetos, presentando una descripcin general, que ser ampliada en los temas posteriores de la asignatura. Tambin se presentar el concepto de abstraccin. Por tanto, el primer mdulo cubrir fundamentalmente los tpicos asociados a las unidades PL1, PL2 y PL3. Tambin introducir los conceptos asociados a los tpicos de la unidad PL6, que sern ampliados en los siguientes temas. Los mdulos II y III se centran en la unidad PL6. El primero estudiar los tpicos relativos a clases y objetos, encapsulacin y ocultacin de la informacin y separacin del comportamiento y la implementacin; tratndose el resto de tpicos en el mdulo III. En el segundo mdulo se estudian en detalle los conceptos de clase y objeto. Aunque ambos estn estrechamente relacionados, se ha separado su estudio en dos temas. El primero se centrar en el concepto de clase y permitir al alumno ejercitarse en la identificacin de clases en problemas de diversos tipos. Se describir la abstraccin que se consigue al trabajar con clases, los elementos que definen una clase (atributos y mtodos) y los distintos tipos de mtodos. Se presentarn los conceptos de interfaz e implementacin, describiendo el encapsulamiento y ocultacin de la informacin que permiten conseguir. El segundo tema completar el anterior. Se estudiar el concepto de objeto, presentndolo como una instancia de una clase; la estructura y caractersticas de un objeto, la creacin y destruccin de objetos y el paso de mensajes entre los mismos. En el mdulo III se estudiar el concepto de herencia y los aspectos relacionados. Se describirn los mecanismos de herencia, as como los distintos tipos que existen, y se presentarn y tratarn los conceptos de polimorfismo y ligaduras estticas y dinmicas. El tema 5 estudiar el concepto de herencia, presentando sus caractersticas y ventajas de cara a la reutilizacin de cdigo. Se describirn los mecanismos de herencia, la jerarqua de clases, las clases abstractas y las relaciones entre clases. Enlazando con los ltimos puntos del tema anterior, el tema 6 analizar los conceptos de sobrecarga y sobrescritura, su aplicacin a mtodos y operadores. Se introducen tambin el polimorfismo, la ligadura dinmica frente a la esttica y los mtodos virtuales o abstractos.

Se utilizar UML para representar los diferentes elementos y conceptos. Esta notacin se introducir a medida que sea necesaria, en los temas que traten cada elemento. Adems, los diferentes temas incluirn numerosos ejemplos que permitan al alumno comprender y asimilar los conceptos tratados. 5.3. Temario para la parte prctica La parte prctica de la asignatura tendr como objetivo presentar al alumno un lenguaje de programacin orientado a objetos, con el que se podrn poner en prctica los conceptos previamente introducidos en las clases tericas. En base al estudio hecho de las universidades espaolas, se ha decidido elegir el lenguaje Java, ya que es uno de los ms utilizados. Se utilizarn las primeras clases de prcticas para presentar los elementos fundamentales del lenguaje Java. Se describir cmo construir programas bsicos, el entorno de programacin y las caractersticas de la mquina virtual de Java. El resto de prcticas se destinarn a trabajar los sucesivos aspectos tericos que se vayan introduciendo en la asignatura. La parte prctica cubrir los tpicos de las unidades PF1, PF5, PL4 y SE2. Tambin completar el tratamiento de las unidades PL2, PL6 y PF3, dado en la parte terica de la asignatura. La descripcin de los elementos bsicos de Java (tipos primitivos, operadores, estructuras de control, constantes, variables,) cubrir las unidades PF1 y PL4, as como los tpicos 'arrays' y 'cadenas' de la unidad PF3. No se profundiza en el estudio de las estructuras de datos, pues existe una asignatura previa especfica para el tema. Se describir tambin el mecanismo de generacin de programas ejecutables y el trabajo con la mquina virtual de Java (unidad PL2). El grueso de la parte prctica tratar tpicos relacionados con la unidad PL6, permitiendo al alumno trabajar con los conceptos tratados en la parte terica de la asignatura. Se introducir la programacin orientada a eventos con Java, diseando interfaces grficas de usuario sencillas. Tambin se analizarn las excepciones y el mecanismo de gestin de las mismas que proporciona Java. Con estos dos aspectos se cubrir la unidad PF5. Se trabajar con el API de Java, cubriendo con ello la unidad SE2. Por tanto, las unidades seleccionadas del Computing Curricula 2001 quedarn cubiertas por la combinacin de los contenidos tericos y prcticos tratados. 6. CONCLUSIONES

Este trabajo presenta una propuesta para la organizacin de la asignatura Programacin Orientada a Objetos de la titulacin Ingeniera Tcnica Informtica de Gestin de la Escuela Politcnica Superior de Zamora. La asignatura se encuadra en un plan de estudios que sigue el enfoque imperativo primero y tiene asociados 6 crditos, repartidos a partes iguales entre crditos tericos y prcticos. El anlisis de otros planes de estudio espaoles nos muestra la gran diversidad existente en el tratamiento de la asignatura, por lo que se han consultado las recomendaciones de ACM/IEEE para elegir los aspectos que se deberan cubrir en la misma. El lenguaje de programacin elegido para la asignatura se ha tomado de entre los ms utilizados en Espaa, ya que las recomendaciones no indican ninguno. Los contenidos propuestos para la asignatura se podrn adaptar a otros centros, teniendo en cuenta los aspectos tratados en otras asignaturas del plan de estudios correspondiente. AGRADECIMIENTOS Este trabajo ha sido parcialmente subvencionado por la Consejera de Educacin de la Junta de Castilla y Len, mediante un proyecto concedido en el ao 2005 y titulado Adaptacin a los nuevos estudios de Ingeniera Informtica del contenido, metodologa docente y sistemas de evaluacin de varias asignaturas troncales y obligatorias de Ingeniera Tcnica Informtica de Gestin de Zamora.

REFERENCIAS [1] Boletn Oficial del Estado de 20 de Noviembre de 190. Reales Decretos 1459, 1460 y 1461/1990 [2] Computing Curricula 2001 (Computer Sience). Report of the ACM/IEEE-CS Joint Curriculum Task Force. IEEE Computer Society Press, Silver Spring, 2001 [3] Boletn Oficial del Estado de 13 de Febrero de 2003 [4] Gua acadmica de la Escuela Politcnica Superior de Zamora. 2004-2005. Universidad de Salamanca. Salamanca 2003 [5] Pgina web del Ministerio de Educacin y Ciencia: http://www.mec.es/

You might also like