[pyar] Video sobre experiencia de utilizar Python para enseñar a Programar.
Germán L. Osella Massa
gosella en gmail.com
Mar Feb 25 12:16:10 ART 2014
Buenas! Perdón por llegar tarde...
El día 21 de febrero de 2014, 19:46, Mariano Reingart
<reingart en gmail.com> escribió:
> Hay otras universidades que ya están enseñando Python o lo están evaluando
> como primer lenguaje.
>
> Un papers relevante que te pueden servir para la fundamentación es el de
> UNNOBA: "Analysis of suitable languages to teach Procedural Programming at
> the Universidad Nacional del Noroeste de la provincia de Buenos Aires"
> (uno de los autores, Germán L. Osella Massa, incluso participó en esta
> lista)
>
> http://journal.info.unlp.edu.ar/journal/journal35/papers/JCST-Apr13-6.pdf
TL,DR: Si uno quiere enseñar a programar en forma procedural, Python
está bárbaro para arrancar, pero se queda corto si uno quiere hablar
de compilación a código nativo, con chequeo de tipos estático y manejo
dinámico y estático de la memoria usando punteros. Por eso, conviene
complementar a Python con algún otro lenguaje (en el artículo se
sugiere usar D).
Para agregar un poco de data sobre la UNNOBA, el año pasado se arrancó
en el primer cuatrimestre de las carreras de Informática con Python.
El uso del intérprete (vía la consola e IDLE) y de Online Python
Tutor[1] le aportaron bastante dinamismo a las clases y generó que los
alumnos fueran probando código al mismo tiempo que se explicaban los
temas o que se plantearan ellos mismos usos de cosas que no estaban
explícitamente mencionadas. Otra cosa que resultó muy piola fue que en
la práctica, muchos de los enunciados dados venían con sus doctest,
por lo que podían usarlos para probar si el código que escribían
andaba como se esperaba (a lo TDD). Este año esperamos incorporar el
notebook de IPython para los apuntes y demás.
A pesar de que el 2013 fue un año de "transición" (ya que
anteriormente se usaba Pascal), los resultados obtenidos (midiendo
resultados como nivel de deserción y porcentaje de aprobados y
desaprobados) no fueron demasiado distintos que otros años. Con esto
quiero decir que la situación no empeoró por usar Python :-) pero
tampoco mejoró como se lo esperaba :-(. Esto probablemente se haya
debido a problemas de ejecución, debido a que para la mayor parte del
plantel docente Python era un lenguaje nuevo. Más allá de esto, quiero
recalcar que la recepción por parte de los alumnos fue muy positiva.
A diferencia de lo propuesto en el artículo mencionado, se terminó
usando C++ en el segundo cuatrimestre (en lugar de D). Tres fueron las
razones principales: a) C++11 agregó cosas que resultaron piolas para
escribir código más simple y mapeable a la manera de hacer las cosas
con Python, b) Las herramientas con soporte para C++11 (IDEs y
compiladores) maduraron rápidamente (a diferencia de D, que el soporte
de IDEs es relativamente pobre) y c) Existe bastante más material
bibliográfico y en la web sobre C++ (incluso C++11) que sobre D.
La experiencia con C++ no fue tan placentera como con Python. Por un
lado porque C++ es C++ (demasiado "expert-friendly") y por otro lado
porque en la misma comisión se tenía gente que había usado Python el
cuatrimestre anterior y gente que recursaba la materia, habiendo visto
únicamente Pascal y desconociendo Python. Esto último generó demoras
(había que explicar muchas cosas desde cero) y le quitó tiempo para
madurar los conceptos nuevos. Para completar, nuevamente los docentes
no estaban familiarizados con C++ (aunque el razonamiento que varios
hicieron fue: Pascal es similar a C y C es como C++, generando
conflictos sobre la forma de plantear algunas cosas). Esperamos que
con lo aprendido en el 2013, el 2014 resulte menos "doloroso".
[1] http://pythontutor.com
More information about the pyar
mailing list