Aprender a programar con Python: una experiencia docente
Enviado por Enrrique CV • 8 de Diciembre de 2018 • Resumen • 7.517 Palabras (31 Páginas) • 418 Visitas
Aprender a programar con Python: una experiencia docente
Andr´es Marzal, David Llorens e Isabel Gracia
Universitat Jaume I
amarzal@lsi.uji.es, dllorens@lsi.uji.es, gracia@lsi.uji.es
Resumen
La eleccion del primer lenguaje de programaci´on es un debate recu- rrente entre los docentes universitarios de ingenier´ıas inform´aticas. La Universitat Jaume I ha optado por una solucion poco convencional: en el primer curso de dos titulaciones de ingenier´ıa informatica se aprende
a programar con Python y C. Python es un lenguaje que est
en auge
en el mundo del software libre y que presenta una serie de caracter´ısticas que lo hacen muy atractivo para ensen˜ar a programar. Como material de apoyo hemos escrito un libro de texto (accesible gratuitamente) y desarro- llado un sencillo entorno de programacion multiplataforma para Python que se distribuye con licencia GPL: el entorno PythonG, formado por un int´erprete interactivo, un editor, un depurador sencillo y una ventana con salida grafica. Con el material docente elaborado se facilita la formacion autodidacta para cualquiera que quiera aprender a programar desde cero.
En este art´ıculo reflexionamos sobre la idoneidad de Python como primer lenguaje de programacion, describimos la experiencia docente de ensen˜ar Python y C en primer curso y presentamos el entorno de progra- macion PythonG.
1. Introduccion
Hace an˜os hab´ıa un claro consenso en el mundo acad´emico acerca del len- guaje de programacion con el que ensen˜ar a programar: Pascal. Era considerado elegante y sencillo, a la vez que ofrec´ıa soporte para el paradigma de programa- cion imperante: la programacion estructurada. Son pocos los que au´n consideran seriamente que Pascal sea adecuado y no faltan razones: las deficiencias del Pas- cal estandar, que obligan a usar variantes dialectales incompatibles entre s´ı; la ausencia de modularidad para ayudarse en el desarrollo de software de medio y gran taman˜o; la falta de apoyo a paradigmas de programacion como la pro- gramacion orientada a objetos; su escas´ısima presencia en el mundo empresarial (exceptuando la de algu´n derivado de Pascal, como Delphi) o en el desarrollo de software libre. . .
En el entorno acad´emico se opta hoy por diferentes lenguajes para introducir a los estudiantes en la programacion. Es corriente optar por C, C++ o Java, y mas raramente por otros como Modula-2, Ada o Scheme. Quienes optan por lenguajes como Modula-2 o Ada lo hacen principalmente por su elegancia y por el soporte que dan a ciertos aspectos de la programacion: modularidad, chequeo
Figura 1: El entorno de programacion PythonG.
estatico de tipos, etc. Scheme, un derivado de Lisp, forma parte del curr´ıculum de algunas universidades estadounidenses (en buena medida gracias al libro de Abelson et al. [1]) y permite una aproximacion funcional a la programacion, aunque los paradigmas imperativo y orientado a objetos sean hoy dominantes. Mucho se puede criticar de C (y cualquiera que haya programado en C puede escribir un tratado sobre ello), pero frente a una vision puramente acad´emica de la programacion, C contrapone su fuerte presencia en ✭✭el mundo real✮✮. Quienes consideran que C no resulta un buen primer lenguaje de programacion pero siguen con la mirada puesta en ✭✭el mundo real✮✮, se decantan generalmente por C++ o Java, atractivos por su orientacion a objetos y fuerte implantacion en la industria.
Dos titulaciones de informatica de la Universidad Jaume I hacen una apues- ta diferente: en primer curso no se ensen˜a un lenguaje de programacion, sino dos, Python y C.1 Python no solo es un lenguaje acad´emicamente interesante, muy expresivo y con una sintaxis limpia y sencilla: es, ademas, un lenguaje ya presente y con mucho futuro en ✭✭el mundo real✮✮. Los lenguajes de script (len- guajes interpretados de muy alto nivel, como Perl y Python) gozan de creciente importancia e implantacion en el mundo del software libre. Pero Python no es suficiente para abordar el contenido de muchas asignaturas que requieren un lenguaje de programacion de sistemas, ni para colmar los conocimientos practi- cos de programacion en el curr´ıculum de un informatico. Una vez han aprendido a programar con Python, los alumnos pasan a estudiar el lenguaje C. La gran ventaja de esta aproximacion es que, al haber aprendido ya a programar, las peculiaridades de C pueden estudiarse como lo que son: peculiaridades (por emplear una expresion amable).
Para impartir las practicas de la asignatura se ha desarrollado un sencillo entorno de programacion, llamado PythonG (ver figura 1), con un editor de textos orientado a Python, int´erprete interactivo de ordenes Python, terminal grafico y depurador. El software desarrollado se distribuye con licencia GPL.[pic 1]
1Dedicamos a cada 45 horas de teor´ıa/problemas y 30 horas de pr´acticas a cada lenguaje.
El mercado editorial ofrece infinidad de t´ıtulos para aprender programar en C, C++ y Java. No ocurre lo mismo con Python, al menos no en Espan˜a. Este problema se ha superado escribiendo un curso completo que cubre el temario de la asignatura. Se trata de un libro de apuntes que supone en el alumno unos conocimientos previos practicamente nulos y que ha sido escrito con un estilo expositivo muy pr´oximo al de una clase presencial [6]. El libro puede utilizarse para el aprendizaje autodidacta de la programacion y que se distribuye gratuitamente en la red.
...