Enseñando Programación con Software Libre
Este semestre pude ofrecer, por fin, el curso de programación básica. Seleccioné Python como el lenguaje para el curso.
Razones para seleccionar python
- Es software libre, lo que me permitió instalar Python y todo un ambiente de programación en todas las computadoras del laboratorio, además de distribuir un CD a cada uno de mis estudiantes; sin pagar licencias, sin temer auditorías; libremente.
- La sintaxis es casi tan clara como la de Basic.
- No necesito entrar a la programación orientada a objetos para poder enseñarlo a un nivel básico.
- Es muy utilizado en las ciencias, aunque no más que Fortran o C++, pero sí más que Java o Ruby.
- Tiene una popularidad increíble y es fácil encontrar en el web buenos tutoriales, referencias y módulos.
Materiales
Les preparé un disco CD que incluía Python 2.4, GTK 2.6, PyGTK 2.6, un montón de módulos de Python, el editor para programadores SciTe y un par de archivos “batch” de Windows para activar la consola interactiva de Python llamada IDLE. Ninguno de los programas requería ser instalado en la computadora anfitriona.
También preparé una memoria USB (”pen drive”) con todo lo que mencioné antes, logrando crear un ambiente de desarrollo python compacto, todo en un “pen drive” de 128 MB. La instalación de todo tomó cerca de la mitad del espacio.
Texto y ejercicios
Preparé apuntes para el curso, no siempre a tiempo dado que era la primera vez que enseñaba el lenguaje. Existen decenas de tutoriales y escritos sobre cómo programar con python que varían su nivel de audiencia desde iniciados hasta programadores profesionales. Estoy seguro de que pude haber encontrado algo para mis estudiantes, quizás construyendo un manual de los pedazos de otros, pero preferí la ruta difícil de escribir mi propio material.
Una ventaja de usar material original es que lo podemos ajustar a nuestra población, en mi caso una audiencia de estudiantes de Ciencias Generales y Administración de Empresas, todos ajenos a la programación. Otra ventaja es que es gratificante escribir sobre un nuevo lenguaje de programación. Es una experiencia de aprendizaje fenomenal tratar de poner de forma clara lo que para nosotros parece obvio. Podemos profundizar aún más en lo que creemos ya conocer, logrando entenderlo mucho mejor.
La desventaja es que, si es la primera vez, como me ocurría, toma mucho tiempo y a veces no todo sale o se entiende cómo lo planificamos. Todo eso trabaja en perjuicio de los objetivos del curso.
Experiencia
Inicialmente tuvimos muchos problemas técnicos en el salón de clases porque los privilegios de los estudiantes variaban en algunas computadoras y algunos no tenían la misma experiencia cuando hacíamos las prácticas.
Me dí cuenta de que vale la pena dedicar tiempo a enseñarles a utilizar IDLE y sus atajos de teclado. Mis ajetreos de la dirección de la oficina de tecnología me impidió darle tiempo a esos detalles y estoy seguro de que hubiera sido muy beneficioso para ellos. Nos concentramos más usando SCiTE que resultó ser una excelente herramienta para programadores noveles: colorea la sintaxis de python automáticamente luego de guardar un archivo con extensión “.py”; bastaba oprimir la tecla <F5> para ejecutar el código, siempre y cuando python estuviese instalado en el sistema; la salida de los programas ocurría en un panel adicional que simulaba una consola o terminal.
Pude enseñarle a crear aplicaciones con interfases gráficas simples, sólo para entrada y salida de valores sencillos. Usamos el módulo Tkinter que ya viene instalado con python y sus librerías de ventanas. Hicimos programas como éste:
from tkMessageBox import *
from tkSimpleDialog import *
def average(seq):
num = 0
total = 0
for x in seq:
total = total + float(x)
num = num + 1
return float(total)/num
# Comienzo del programa
x=askstring(“numero”, “entre numeros que desea promediar separado por comas”)
seq=x.split(“,”)
promedio=average(seq)
showinfo(“promedio=”, promedio)
Los estudiantes requirieron de mucho apoyo, el cuál dí en clase, por email y a través de mensajería instantánea (”messenger” con Gaim). La mayor parte de las reuniones las pasamos practicando los ejemplos de mis apuntes y haciendo los ejercicios de las asignaciones. Mi experiencia cuando enseñaba Visual Basic era idéntica, por lo que no considero a python un lenguaje más difícil de aprender que Basic.
Como primer experimento no me fue tan mal, pero la experiencia tiene que mejorar la próxima ocasión que tenga la oportunidad de dar el curso. De seguro continuaré con python ya que el lenguaje ha capturado mi imaginación y renovado mis deseos de programar. Quisiera poder pasarle ese entusiasmo a mis estudiantes.
Más artículos como este en:
Algunos artículos relacionados:

Sindicación RSS para que pueda seguir los comentarios en este artículo.


Diciembre 27th, 2006 a las 12:21 am
Los que tienen tiempo no tienen interés, y los que tienen interés no tienen tiempo…
Que no daría yo por matricularme en tu clase de programación y compartir ese entusiasmo!