PDF de programación - Aprender a programar con Python: una experiencia docente

Imágen de pdf Aprender a programar con Python: una experiencia docente

Aprender a programar con Python: una experiencia docentegráfica de visualizaciones

Actualizado el 22 de Marzo del 2020 (Publicado el 14 de Enero del 2017)
2.879 visualizaciones desde el 14 de Enero del 2017
251,2 KB
15 paginas
Creado hace 20a (07/09/2003)
Aprender a programar con Python: una

experiencia docente

Andrés Marzal, David Llorens e Isabel Gracia

Universitat Jaume I

[email protected], [email protected], [email protected]

Resumen

La elección del primer lenguaje de programación es un debate recu-
rrente entre los docentes universitarios de ingenierías informáticas. La
Universitat Jaume I ha optado por una solución poco convencional: en
el primer curso de dos titulaciones de ingeniería informática 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 enseñar a programar. Como material de
apoyo hemos escrito un libro de texto (accesible gratuitamente) y desarro-
llado un sencillo entorno de programación multiplataforma para Python
que se distribuye con licencia GPL: el entorno PythonG, formado por un
intérprete interactivo, un editor, un depurador sencillo y una ventana con
salida gráfica. Con el material docente elaborado se facilita la formación
autodidacta para cualquiera que quiera aprender a programar desde cero.
En este artículo reflexionamos sobre la idoneidad de Python como
primer lenguaje de programación, describimos la experiencia docente de
enseñar Python y C en primer curso y presentamos el entorno de progra-
mación PythonG.

1.

Introducción

Hace años había un claro consenso en el mundo académico acerca del len-
guaje de programación con el que enseñar a programar: Pascal. Era considerado
elegante y sencillo, a la vez que ofrecía soporte para el paradigma de programa-
ción imperante: la programación estructurada. Son pocos los que aún consideran
seriamente que Pascal sea adecuado y no faltan razones: las deficiencias del Pas-
cal estándar, que obligan a usar variantes dialectales incompatibles entre sí; la
ausencia de modularidad para ayudarse en el desarrollo de software de medio
y gran tamaño; la falta de apoyo a paradigmas de programación como la pro-
gramación orientada a objetos; su escasísima presencia en el mundo empresarial
(exceptuando la de algún derivado de Pascal, como Delphi) o en el desarrollo
de software libre. . .

En el entorno académico se opta hoy por diferentes lenguajes para introducir
a los estudiantes en la programación. Es corriente optar por C, C++ o Java, y
más 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 programación: modularidad, chequeo

1

Figura 1: El entorno de programación PythonG.

estático 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 aproximación funcional a la programación,
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 visión puramente académica de
la programación, C contrapone su fuerte presencia en ((el mundo real)). Quienes
consideran que C no resulta un buen primer lenguaje de programación pero
siguen con la mirada puesta en ((el mundo real)), se decantan generalmente por
C++ o Java, atractivos por su orientación a objetos y fuerte implantación en la
industria.

Dos titulaciones de informática de la Universidad Jaume I hacen una apues-
ta diferente: en primer curso no se enseña un lenguaje de programación, sino
dos, Python y C.1 Python no sólo es un lenguaje académicamente interesante,
muy expresivo y con una sintaxis limpia y sencilla: es, además, 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 implantación en el mundo del software libre. Pero Python no es
suficiente para abordar el contenido de muchas asignaturas que requieren un
lenguaje de programación de sistemas, ni para colmar los conocimientos prácti-
cos de programación en el currículum de un informático. Una vez han aprendido
a programar con Python, los alumnos pasan a estudiar el lenguaje C. La gran
ventaja de esta aproximación es que, al haber aprendido ya a programar, las
peculiaridades de C pueden estudiarse como lo que son: peculiaridades (por
emplear una expresión amable).

Para impartir las prácticas de la asignatura se ha desarrollado un sencillo
entorno de programación, llamado PythonG (ver figura 1), con un editor de
textos orientado a Python, intérprete interactivo de órdenes Python, terminal
gráfico y depurador. El software desarrollado se distribuye con licencia GPL.

1Dedicamos a cada 45 horas de teoría/problemas y 30 horas de prácticas a cada lenguaje.

2

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 Españ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 prácticamente nulos y que ha sido escrito con un
estilo expositivo muy próximo al de una clase presencial [6]. El libro puede
utilizarse para el aprendizaje autodidacta de la programación y que se distribuye
gratuitamente en la red.

Este artículo está estructurado como sigue. En la sección 2 se presentan las
características que, a nuestro juicio, debe reunir un lenguaje de programación
utilizado para aprender a programar. En la sección 2.1 se examina Python bajo
esta luz y se justifica su idoneidad como primer lenguaje de programación. El
apartado 2.2 resume las ventajas de aprender C una vez se sabe programar con
Python. Los apartados 3 y 4 presentan el entorno de programación PythonG
y el libro de texto de la asignatura. Finalmente, en el apartado 5 se apuntan
algunas conclusiones.

2. La cuestión del primer lenguaje

La primera pregunta que hemos de hacernos es ¿qué requisitos debe reunir
un lenguaje de programación para que pueda considerarse un buen lenguaje de
iniciación? Debe tenerse en cuenta que el objetivo de un curso introductorio a
la programación no es la enseñanza en profundidad de un lenguaje de progra-
mación concreto, sino la asimilación de una serie de estrategias para el diseño
y desarrollo de soluciones a problemas que usan, como vehículo de expresión,
un lenguaje de programación. El lenguaje de programación es instrumental y lo
ideal es que interfiera lo menos posible en la implementación de los algoritmos.
El primer aspecto a tener en cuenta es la sintaxis. El lenguaje debe tener
cierto sentido de la economía en el uso de símbolos auxiliares y sus estructuras
deben seguir unos principios sencillos que permitan generalizaciones efectivas.
Muchos errores de programación de los aprendices se deben a la omisión o uso
incorrecto de terminadores y delimitadores de bloque (que frecuentemente pa-
san inadvertidos al compilador por no provocar errores sintácticos o semánticos).
Estos errores no siempre se deben a un mal diseño del algoritmo por parte del
estudiante, sino al pobre soporte que ofrece el lenguaje de programación para
una expresión concisa y clara del algoritmo. Esto nos lleva a una segunda carac-
terística deseable: el lenguaje debe ser expresivo, es decir, debe poder ((decir mu-
cho con poco)). Para ello, el lenguaje debe ofrecer estructuras de control flexibles
y presentar una colección de tipos y estructuras de datos que permita expresar
relaciones complejas entre datos con una notación sencilla (por ejemplo, dando
soporte sintáctico a estructuras secuenciales como las listas). La semántica del
lenguaje también debe ser sencilla. Contribuye a ello que el lenguaje sea muy
ortogonal, es decir, si una construcción o método funciona con una estructura
de datos, debe funcionar de modo similar con aquellas otras que guardan al-
guna semejanza (si cierta función o método calcula la longitud de una cadena,
por ejemplo, debería calcular también la longitud de una lista, pues ambas son
secuencias).

Programar es una actividad que, especialmente en fases tempranas del apren-
dizaje, se basa en el método de prueba y error. Es deseable que el lenguaje vaya

3

acompañado de un entorno de programación que facilite un ciclo de edición-
ejecución rápido. Resulta crítico, además, que se detecten y señalen correcta-
mente los errores de todo tipo (léxicos, sintácticos, semánticos estáticos y de
ejecución): nada hay más frustrante para un estudiante que un programa dado
por bueno por un compilador y que, ((inexplicablemente)), falla en la ejecución
con un mensaje tan parco como ((violación de segmento)), sin indicar siquiera en
qué línea se produjo el error.

Las características citadas son, a nuestro entender, fundamentales. Un len-
guaje que las presente menguadas o que no las presente en absoluto no es un
buen candidato. Hay otras características que, aunque deseables, son secunda-
rias. Entre ellas tenemos, por ejemplo, su presencia en el ((mundo real)), aunque
teniendo en cuenta que está fuertemente sometido al dominio de las modas y
la mercadotecnia. Hace años, C reinaba absolutamente; al poco, irrumpió con
fuerza C++; hoy parece que Java domina buena parte del mercado; y Micro-
soft se ha empeñado en que C# sea lo más. Pero, si examinamos el mundo de
la pequeña y mediana empresa, Visual Basic es el amo. Sin comentarios. En
cualquier caso, no perdamos de vista la creciente presencia de Perl y Python
en el mundo de la programación. El entorno LAMP (Linux-Apache-MySQL-
Perl/PHP/Python) [4] ha introducido estos lenguajes en el currículum de mu-
chos programadores profesionales. Otra característica deseable es la existencia
de un rico conjunto de módulos o librerías que facilite la programación de
  • Links de descarga
http://lwp-l.com/pdf680

Comentarios de: Aprender a programar con Python: una experiencia docente (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad