16 de enero de 2011

Python gana el premio TIOBE al lenguaje del año 2010

Python fue declarado el 8 de enero del 2011 como lenguaje de programación del año 2010 por TIOBE software. Este reconocimiento se le otorga al lenguaje que haya crecido más en popularidad en el último año según el índice TIOBE. De enero del 2010 a enero del 2011, Python subió 1.81 puntos en el índice, para situarse en 6.27%. Otro lenguaje de programación que resultó ser un fuerte contendiente durante ese mismo año fue Objective-C, quien quedó finalmente en segundo lugar con un crecimiento del 1.63 puntos, situándose en 3.01%. Objective-C ha subido mucho en popularidad en el último año y medio gracias al impulso que han tenido entre desarrolladores las plataformas iPhone y iPad de Apple Inc. El lenguaje más popular de todo el 2010 fue Java con 17.77%.


En el encabezado de su sitio Web del mes de enero del 2011, TIOBE publicó lo siguiente:
El lenguaje Python se ha convertido en el estándar "de facto" para scripts de sistema (siendo un sucesor de Perl en esto), pero hoy en día se utiliza en una mayor variedad de aplicaciones. Python es un muy popular entre desarrolladores Web, especialmente en combinación con el framework Django. Dado que Python es fácil de aprender, más y más universidades están usando Python para enseñar lenguajes de programación.

El índice de la Comunidad de Programación TIOBE es un indicador de la popularidad de los lenguajes de programación. El índice se actualiza una vez al mes. La valoración está basada en la cantidad existente de cursos, proveedores e ingenieros calificados a nivel mundial. Los buscadores populares Google, MSN, Yahoo!, Wikipedia y YouTube se utilizan para efectuar la clasificación. Es importante notar que el índice TIOBE no se trata del mejor lenguaje de programación, ni tampoco del lenguaje en el que se han escrito el mayor número de líneas de código.
Esta es una buena noticia para todos los que estamos impulsando Python en la educación, en particular por el hecho de que se reconoce el papel que están jugando las universidades.

Esta es la segunda vez en el que Python obtiene el premio de "Lenguaje de programación del año" de TIOBE. La primera vez fue en el año 2007. Este reconocimiento se comenzó a otorgar en el 2003, y solamente el lenguaje Python lo ha obtenido un más de una ocasión. Los otros lenguajes que han sido reconocidos son: C++ (2003), PHP (2004), Java (2005), Ruby (2006), C (2008) y Go (2009).

16 de diciembre de 2010

Primera capacitación para profesores en la enseñanza del lenguaje Python

Del 13 al 15 de diciembre del 2010 tuvimos la oportunidad de impartir el CADi (Curso de actualización en las disciplinas) titulado Enseñando a programar con Python en las instalaciones del Tecnológico de Monterrey, Campus Estado de México. A éste asistieron casi una veintena de profesores de varios campus del Tecnológico de Monterrey, incluyendo Ciudad de México, Estado de México, Santa Fe, Toluca, Querétaro y Laguna. La profesora Ma. Elena Melón Jareda, el profesor Roberto Martínez Román y yo fuimos los instructores del curso.


Todo el grupo: instructores y participantes del curso.

Los objetivos del curso fueron los siguientes:
  • Introducir el lenguaje de programación Python, con una orientación hacia la resolución de problemas en las áreas de ingeniería, ciencias y medios digitales.
  • Presentar diversos enfoques de enseñanza aplicables a las materias de Fundamentos de programación y Solución de problemas con programación de los planes de estudio 2011 de las carreras profesionales del Tecnológico de Monterrey.
En total hubo seis sesiones: una sesión matutina y otra vespertina en cada uno de los tres días que duró el curso. Las sesiones matutinas estuvieron a mi cargo, y las utilicé para exponer los fundamentos del lenguaje Python (sintaxis, semántica y API básico), así como para dar lugar a que los participantes resolvieran ejercicios de algoritmos numéricos y de elaboración de dibujos con gráficas de tortuga. También pude cubrir una introducción a matplotlib para hacer gráficas científicas en 2D.

Ejercicios con gráficas de tortuga.

En las sesiones vespertinas se mostró como utilizar las siguientes herramientas/tecnologías:
  • El framework Myro para programar los robots Scribbler.
  • JES (Jython Environment for Students) para el procesamiento de imágenes.
  • El módulo PyGame para elaborar programas gráficos interactivos.
La sesión de robots estuvo a cargo del profesor Martínez, mientras que JES y PyGame fueron presentados por la profesora Melón.

Profesores programando al robot Scribbler.

Para concluir el curso, abrimos un espacio para que los participantes pudieran comentar respecto al material cubierto y también para conocer sus opiniones sobre el uso de Python en una primera materia de programación a nivel licenciatura. La mayoría de los profesores se expresaron de manera muy favorable respecto al CADi en sí. Algunos manifestaron que Python les pareció un buen lenguaje introductorio para las carreras que no son de computación, pero que tienen aún algunas reservas sobre si es conveniente usarlo como primer lenguaje en las carreras de las TIEs (Tecnologías de Información y Electrónica). Como lenguajes alternativos a Python, algunos profesores sugirieron considerar Processing (específicamente para las carreras de LAD y LCD), JavaFX y Groovy. Sin embargo, de JavaFX se señaló también que su futuro quedó un tanto incierto a partir de que Sun Microsystems fue adquirido por Oracle.

Personalmente disfruté mucho la oportunidad de poder impartir el curso a mis colegas del Tec. Es muy estimulante convivir con un grupo de académicos tan talentoso y comprometido con su labor docente. Sin embargo me queda claro que aún necesitamos hacer más labor de convencimiento si queremos que nuestra propuesta de usar Python prospere. Espero que tengamos la oportunidad de replicar el curso en Monterrey en los próximos meses y así poder llegar a más profesores del sistema.

El material que se utilizó para el curso está disponible en el siguiente URL: Enseñando a programar con Python.

20 de noviembre de 2010

Proyecto Euler

Al estar aprendiendo un nuevo lenguaje de programación resulta útil tener disponible una colección de ejercicios con que practicar. Project Euler es un sitio Web (en idioma inglés) que sirve justamente para este propósito.

Leonhard Paul Euler (1707-1783),
matemático y físico suizo.
Los problemas que aquí se encuentran (más de 300 al momento de estar escribiendo esto) son de naturaleza matemática, pero requieren de una computadora y de cierta destreza de programación para poderlos resolver correctamente. Para utilizar el sitio de manera efectiva es necesario registrarse (el registro no tiene costo). Los usuarios registrados pueden verificar si se han obtenido las soluciones correctas.

Los primeros problemas son los más sencillos, pero el nivel de dificultad aumenta conforme se va avanzando. Las personas a las que les gustan las matemáticas y los problemas de ingenio seguramente se toparán con retos muy interesantes.

El lenguaje Python resulta bastante adecuado para resolver muchos de los problemas presentados en Project Euler. Por ejemplo, el primer problema consiste en encontrar la suma de todos los números menores a 1,000 que sean múltiplos de 3 o 5. El siguiente programa en Python 3.1 encuentra la solución de este problema:
suma = 0
for i in range(1000):
    if i % 3 == 0 or i % 5 == 0:
        suma += i
print(suma)
Al correr el código se imprime la respuesta correcta: 233,168.

Para los amantes del código compacto, el mismo programa se puede escribir en una sola línea de código valiéndonos de la función predefinida sum y una list comprehension que genera la lista de los números que requerimos:
print(sum([i for i in range(1000) if i%3==0 or i%5==0]))
En una próxima entrada de este blog presentaré otro sitio, llamado Sphere Online Judge, que también es un excelente recurso para desarrollar la capacidad de resolver problemas, pero en un ámbito que va más allá de las matemáticas.