Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
0Activity
×
0 of .
Results for:
No results containing your search query
P. 1
Aprender a Programar Con Python

Aprender a Programar Con Python

Ratings: (0)|Views: 68|Likes:
Published by DonatienONE

More info:

Published by: DonatienONE on Jul 10, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See More
See less

07/10/2013

pdf

text

original

 
Aprender a programar con Python: unaexperiencia docente
Andr´es Marzal, David Llorens e Isabel GraciaUniversitat Jaume I
amarzal@lsi.uji.es
,
dllorens@lsi.uji.es
,
gracia@lsi.uji.es
Resumen
La elecci´on del primer lenguaje de programaci´on es un debate recu-rrente entre los docentes universitarios de ingenier´ıas inform´aticas. LaUniversitat Jaume I ha optado por una soluci´on poco convencional: enel primer curso de dos titulaciones de ingenier´ıa inform´atica se aprendea programar con Python y C. Python es un lenguaje que est´a en augeen el mundo del software libre y que presenta una serie de caracter´ısticasque lo hacen muy atractivo para ense˜nar a programar. Como material deapoyo hemos escrito un libro de texto (accesible gratuitamente) y desarro-llado un sencillo entorno de programaci´on multiplataforma para Pythonque se distribuye con licencia GPL: el entorno PythonG, formado por unint´erprete interactivo, un editor, un depurador sencillo y una ventana consalida gr´afica. Con el material docente elaborado se facilita la formaci´onautodidacta para cualquiera que quiera aprender a programar desde cero.En este art´ıculo reflexionamos sobre la idoneidad de Python comoprimer lenguaje de programaci´on, describimos la experiencia docente deense˜nar Python y C en primer curso y presentamos el entorno de progra-maci´on PythonG.
1. Introduccon
Hace a˜nos hab´ıa un claro consenso en el mundo acad´emico acerca del len-guaje de programaci´on con el que ense˜nar a programar: Pascal. Era consideradoelegante y sencillo, a la vez que ofrec´ıa soporte para el paradigma de programa-ci´on imperante: la programaci´on estructurada. Son pocos los que a´un consideran seriamente que Pascal sea adecuado y no faltan razones: las deficiencias del Pas-cal est´andar, que obligan a usar variantes dialectales incompatibles entre s´ı; laausencia de modularidad para ayudarse en el desarrollo de software de medioy gran tama˜no; la falta de apoyo a paradigmas de programaci´on como la pro-gramaci´on orientada a objetos; su escas´ısima presencia en el mundo empresarial(exceptuando la de alg´un derivado de Pascal, como Delphi) o en el desarrollode software libre...En el entorno acad´emico se opta hoy por diferentes lenguajes para introducira los estudiantes en la programaci´on. Es corriente optar por C, C
++
o Java, yas raramente por otros como Modula-2, Ada o Scheme. Quienes optan porlenguajes como Modula-2 o Ada lo hacen principalmente por su elegancia y porel soporte que dan a ciertos aspectos de la programaci´on: modularidad, chequeo1
 
Figura 1:
El entorno de programaci´on PythonG.
est´atico de tipos, etc. Scheme, un derivado de Lisp, forma parte del curr´ıculumde algunas universidades estadounidenses (en buena medida gracias al libro deAbelson
et al.
[1]) y permite una aproximaci´on funcional a la programaci´on,aunque los paradigmas imperativo y orientado a objetos sean hoy dominantes.Mucho se puede criticar de C (y cualquiera que haya programado en C puedeescribir un tratado sobre ello), pero frente a una visi´on puramente acad´emica dela programaci´on, C contrapone su fuerte presencia en
((
el mundo real
))
. Quienesconsideran que C no resulta un buen primer lenguaje de programaci´on perosiguen con la mirada puesta en
((
el mundo real
))
, se decantan generalmente porC
++
o Java, atractivos por su orientaci´on a objetos y fuerte implantaci´on en laindustria.Dos titulaciones de inform´atica de la Universidad Jaume I hacen una apues-ta diferente: en primer curso no se ense˜na un lenguaje de programaci´on, sinodos, Python y C.
1
Python no s´olo es un lenguaje acad´emicamente interesante,muy expresivo y con una sintaxis limpia y sencilla: es, adem´as, un lenguaje yapresente 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 crecienteimportancia e implantaci´on en el mundo del software libre. Pero Python no essuficiente para abordar el contenido de muchas asignaturas que requieren unlenguaje de programaci´on de sistemas, ni para colmar los conocimientos pr´acti-cos de programaci´on en el curr´ıculum de un inform´atico. Una vez han aprendidoa programar con Python, los alumnos pasan a estudiar el lenguaje C. La granventaja de esta aproximaci´on es que, al haber aprendido ya a programar, laspeculiaridades de C pueden estudiarse como lo que son: peculiaridades (poremplear una expresi´on amable).Para impartir las pr´acticas de la asignatura se ha desarrollado un sencilloentorno de programaci´on, llamado PythonG (ver figura 1), con un editor detextos orientado a Python, int´erprete interactivo de ´ordenes Python, terminalgr´afico y depurador. El software desarrollado se distribuye con licencia GPL.
1
Dedicamos a cada 45 horas de teor´ıa/problemas y 30 horas de pr´acticas a cada lenguaje.
2
 
El mercado editorial ofrece infinidad de t´ıtulos para aprender programar enC, C
++
y Java. No ocurre lo mismo con Python, al menos no en Espa˜na. Esteproblema se ha superado escribiendo un curso completo que cubre el temariode la asignatura. Se trata de un libro de apuntes que supone en el alumnounos conocimientos previos pr´acticamente nulos y que ha sido escrito con unestilo expositivo muy pr´oximo al de una clase presencial [6]. El libro puedeutilizarse para el aprendizaje autodidacta de la programaci´on y que se distribuyegratuitamente en la red.Este art´ıculo est´a estructurado como sigue. En la secci´on 2 se presentan lascaracter´ısticas que, a nuestro juicio, debe reunir un lenguaje de programaci´onutilizado para aprender a programar. En la secci´on 2.1 se examina Python bajoesta luz y se justifica su idoneidad como primer lenguaje de programaci´on. Elapartado 2.2 resume las ventajas de aprender C una vez se sabe programar conPython. Los apartados 3 y 4 presentan el entorno de programaci´on PythonGy el libro de texto de la asignatura. Finalmente, en el apartado 5 se apuntanalgunas conclusiones.
2. La cuesti´on del primer lenguaje
La primera pregunta que hemos de hacernos es ¿qu´e requisitos debe reunirun lenguaje de programaci´on para que pueda considerarse un buen lenguaje deiniciaci´on? Debe tenerse en cuenta que el objetivo de un curso introductorio ala programaci´on no es la ense˜nanza en profundidad de
un 
lenguaje de progra-maci´on concreto, sino la asimilaci´on de una serie de estrategias para el dise˜no y desarrollo de soluciones a problemas que usan, como veh´ıculo de expresi´on,un lenguaje de programaci´on. El lenguaje de programaci´on es instrumental y loideal es que
interfiera 
lo menos posible en la implementaci´on de los algoritmos.El primer aspecto a tener en cuenta es la
sintaxis 
. El lenguaje debe tenercierto sentido de la econom´ıa en el uso de s´ımbolos auxiliares y sus estructurasdeben seguir unos principios sencillos que permitan generalizaciones efectivas.Muchos errores de programaci´on de los aprendices se deben a la omisi´on o usoincorrecto de terminadores y delimitadores de bloque (que frecuentemente pa-san inadvertidos al compilador por no provocar errores sint´acticos o sem´anticos).Estos errores no siempre se deben a un mal dise˜no del algoritmo por parte delestudiante, sino al pobre soporte que ofrece el lenguaje de programaci´on parauna expresi´on 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 
flexiblesy presentar una colecci´on de
tipos y estructuras de datos 
que permita expresarrelaciones complejas entre datos con una notaci´on sencilla (por ejemplo, dandosoporte sint´actico a estructuras secuenciales como las listas). La
sem´ antica 
dellenguaje tambi´en debe ser sencilla. Contribuye a ello que el lenguaje sea muy
ortogonal 
, es decir, si una construcci´on o etodo funciona con una estructurade datos, debe funcionar de modo similar con aquellas otras que guardan al-guna semejanza (si cierta funci´on o etodo calcula la longitud de una cadena,por ejemplo, deber´ıa calcular tambi´en la longitud de una lista, pues ambas sonsecuencias).Programar es una actividad que, especialmente en fases tempranas del apren-dizaje, se basa en el etodo de prueba y error. Es deseable que el lenguaje vaya3

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->