Hace un par de dias comencé a trabajar en un artículo sobre la enseñanza de la programación orientada a objetos. En particular sobre la forma de encarar la primer materia de orientación a objetos, pues en la actualidad es común que dicho tema se trate en más de una materia, pero mi foco está en la primer materia, aquella que presenta los conceptosl s fundamentales de OO (polimorfisto, ocultamiento de information, etc, etc). Como parte de este trabajo he creado una encuesta para relevar como es este tema tratado en las distintas carreras. Lo ideal hubiera sido enviar la encuesta a profesores de distintas universidades/institutos, pero lamentablemente no tengo contacto en todas las universidades, con lo cual se me ocurrió hace una encuestas para ser llenada por los alumnos, contestando como fue que cada uno aprendio POO. Es cierto que de este modo seguramente obtenga varias respuestas sobre una misma institución, por eso es fundamental que quien complete la encuesta indique su institución para asi poder filtrar la información.
Por eso les pido a los lectores si pueden tomarse 2 minutos para completar las 6 preguntas de la encuesta y difundirla entre sus conocidos. Los links son:
Muchas gracias!
Hola, coincido plenamente.
En la facultad, he cursado del 96 al 2001 por lo que lo primero qeu vimos fue smalltalk, luego c++ . Actualmente soy docente de una materia electiva de 3er año, y damos estructuras de datos con java, donde aprovechamos para enseñar el lenguaje. Los alumnos ya deberían tener aprobada paradigmas (y nociones de objetos), y la verdad es que no siempre llegan con los conceptos sólidos, por lo que muchas veces tratamos de retomarlos.
En lo personal, el tema de objetos no fue un tema fácil de entender. No obstante creo que no fue hasta que trabajé en el tema, fundamentalmente con Java que comencé a ver un poco más claro el tema. Y sobre todo cuando te das cuenta las horas que te hubieses ahorrado sobre todo en lo que hace a extensibilidad (agregar nuevas funciones) y mantenimiento (corregir funcionalidades existentes) de un sistema.
Coincido plenamente, la forma en que se enseña objetos inicialmente tiene una incidencia importante.
Creo que Java y C++ tienen un problema para enseñar objetos a iniciados, son tipados, y el hacer pensar al alumno en tipos de datos hace que conceptos como polimorfismo (básicamente que el mensaje ejecute un método dependiendo del receptor) es más dificil de verlo.
También Java tiene algo más que dificulta la puesta en práctica de los conceptos y son los getters y los setters. No deberían existir, salvo si uno va a usar una clase bajo el concepto de JavaBean, el hecho de que existan getters y setters hace que los alumnos empiecen a pensar en términos de la estructura interna de las clases y no de las responsabilidades de la clase.
Por último creo que si no se explican mecanismos asociados al diseño, como double dispatch, template, o patrones tipo strategy, tampoco se llega a ver claramente el tema de orientación a objetos.
Por eso a veces me planteo la disyuntiva si no sería lo mejor aprender el lenguaje, sintaxis, estructuras de control, apis, librerías y luego apilcarlo con orientación a objetos. Por caso en Java puedo dar cuenta de numerosos proyectos, donde si se usa java, pero bajo ningun punto de vista se usa «orientación a objetos».
Saludos.
Yo curse POO en el ’96 en la UNLP con Object Pascal y Smalltalk.
Personalmente creo que, de aprender Objetos seria lo ideal que lo haga en Smalltalk. Solo saliendo de la Orientacion a objetos y experimentando en la Tecnologia de Objetos puede llegar a hacerse evidente, para el aprendiz, lo que implica objetos. Solo en Smalltalk puede verse todos los conceptos aplicados.
Coincido elvio, pero a veces los mecanismos con los cuales un alumno madura un tema, como la orientación a objetos, son complicados.
En tal sentido, hoy por hoy más que la primer materia donde se enseña objetos, lo más importante es la primer materia donde se enseñe programación.
Porque en general el alumno aprende algo de programación el primer año, con una fuerte impronta «procedimental», con conceptos tales como tipos de datos, y tamaño de memoria, en lenguajes generalmente compilados, y cuando tiene al año siguiente que cambiar el chip paraa tener concpetos de programación orientada a objetos se encuentra con dificultades propias de la maduración de conceptos.
Tal vez si la primera materia de programación hoy en día fuese POO con Smalltalk (y este fuese el primer lenguaje que estudia el aluimno en la facultad los resultados serían distintos).
Igualmente son opiniones, y celebro este espacio para discutirlas.
Saludos.
Hola Nico, seria interesante saber como va evolucionando la encuesta. Particularmente yo participe de tu encuesta y al final quisiera saber los numeros.
Aún no he tenido tiempo de analizar los resultados, espero hacerlo durante el fin de semana.