Posts Tagged ‘Python’

h1

Alguns programes per a iniciar als alumnes en la programació d’ordinadors

16/02/2012

Porte ja alguns anys ensenyant a programar a alumnes de batxillerat en l’assignatura TIC1. Utilitze el llenguatge Python, que m’agrada per la seua potència però amb una sintaxi clara, però abans comencem coneguent i practicant les estructures bàsiques dels algorismes amb algun entorn de programació educativa.
Des del principi he utilitzat el programa Guido van Robot, però sempre he pensat que és millorable en molts sentits, de manera que he fet una recerca de programes alternatius i un xicotet resum de les seues característiques.

Alice

http://www.alice.org

Alice és un llenguatge i entorn de programació en 3D. En lloc d’utilitzar un editor de text, es programa “gràficament” arrossegant i soltant peces que formaran el programa. Aquesta programació sense sintaxi definida pot ser un avantatge, ja que simplifica la creació de programes, però potser els alumnes després tindran problemes per adaptar-se a un llenguatge de programació real. Alice és programari lliure, i es pot trobar pe ra Windows, Mac i GNU/Linux, però solament en anglès.

Greenfoot

http://www.greenfoot.org

Greenfoot és un entorn de programació en el que fàcilment es poden desenvolupar simulacions, jocs i aplicacions gràfiques en dos dimensions. El llenguatge de desenvolupament és Java, i permet la creació de programes a l’estil d’Alice però amb la sintaxi d’un llenguatge de programació real. Greenfoot és lliure, multiplataforma i està traduït a múltiples idiomes.

Scratch

http://scratch.mit.edu/

Scratch és similar a Alice, amb un estil de programació gràfica però, igual que Greenfoot, en dos dimensions. És un programari molt maur i àmpliament utilitzat per institucions educatives. Solament es troba disponible per a arquitectures de 32 bits, però he aconseguit forçar la seua instal·lació i m’ha paregut un programa molt atractiu: Els programes es formen ajuntant peces com en un joc de construcció, però té moltes possibilitats i pareix que realment es poden fer moltes cosses amb ell. Scratch es distribueix amb una llicència “similar a la GPL”, esta disponible en diferents idiomes i per a diferents sistemes operatius.

Guido Van Robot

http://gvr.sourceforge.net/

GvR és un programa d’aparença minimalista basat en altre programa anomenat Karel. Per a programar el robot s’utilitza un pseudocodi molt simplificat amb una sintaxi similar a la de Python, però que pot estar traduït a diferents idiomes i no permet variables. Alguns dels avantatges d’aquest programa és la seua simplicitat, que evita distraccions i consumeix pocs recursos, i els principals inconvenients que he trobat són el seu editor intern i els missatges d’error poc informatius. Per exemple: trobar un error de sagnat (un simple un espai de menys) en un programa llarg pot ser complicat per què el programa indica l’error, però no la línia on aquest es troba. Guido Van Robot és programari lliure, i està disponible en diferents idiomes per a Windows i GNU/Linux.

RUR-PLE

http://rur-ple.sourceforge.net/

RUR-PLE és en molts aspectes similar a Guido van Robot, però utilitza totes les característiques de Python en lloc de ser un pseudocodi limitat a una part d’aquest. Existeixen dues branques del projecte :RUR-PLE i Rurple NG. La primera va alliberar la seua última versió en 2009 (únicament per a arquitectures de 32 bits) i la segona únicament té una versió per a Windows. Ambdues branques són programari lliure i es troben disponibles en diferents idiomes.

Robomind

http://www.robomind.net

Robomind és un programa similar a Guido Van Robot, en el qual també controlem un robot, però el seu aspecte gràfic és molt més atractiu. El llenguatge per a programar el robot és un pseudocodi simplificat i traduït a diferents idiomes on no es permeten variables. La major qualitat gràfica fa que el programa tinga un major atractiu, però també requereix d’un maquinari més potent.
Robomind està programat en Java, i funciona en qualsevol sistema operatiu. Està disponible en diferents idiomes i, encara que no és programari lliure, és gratuït i open-source.

Conclusions

Descarte Alice i RUR-PLE pels problemes que he tingut durant la seua instal·lació. Greenfoot i Robomind pareixen interessants per a aprendre Java, però les regles del seu pseudocodi són diferents de les de Python, i com que tinc intenció d’utilitzar aquest llenguatge a continuació és possible que els alumnes acaben confosos. Scratch és un gran programa, i sense dubte seria la meua elecció si hagués d’iniciar en la programació a alumnes de secundària, però en Batxillerat crec que és millor que comencen escrivint els seus programes i enfrontant-se a la sintaxi d’un llenguatge en lloc de, simplement, “ajuntar peces”. Guido van Robot té, com ja he dit alguns inconvenients però així i tot em pareix la millor opció per donar després el bot a Python.

Anuncios
h1

Problema con la codificación de caracteres en scripts CGI con Python 3

03/11/2011

Ansioso por empezar a utilizar la nueva versión de Python 3 he tenido algunos problemas con la codificación de caracteres: concretamente, aunque Python ahora trabaja siempre con cadenas de texto utf-8, cuando se ejecuta como script CGI se empeña en transformar la salida a ASCII, con lo que los caracteres acentuados son sustituidos por símbolos extraños.

Tras investigar un poco he descubierto una solución bastante simple, que consiste en añadir las siguientes dos líneas al comienzo del script:

import codecs, sys
sys.stdout = codecs.getwriter(‘utf-8’)(sys.stdout.buffer)

De este modo la salida estándar se hace también en utf-8.

Por cierto, para que el editor Geany utilice Python 3 (lo cual también me ha confundido bastante, hasta que me he dado cuenta de que usaba Python 2.7) hay que editar un fichero de configuración y modificar un par de líneas:

sudo nano /usr/share/geany/filetypes.python

y cambiamos las líneas

compiler=python3 -c “import py_compile; py_compile.compile(‘%f’)”
run_cmd=python3 “%f”

Ahora ¡a transformar todos mis ejercicios de TIC a HTML5!

h1

Usar python en webs dinámicas.

09/10/2011

A raíz de este post recuerdo que necesito un servidor web que soporte python para la creación de webs dinámicas. La configuración de apache es muy sencilla si utilizamos el módulo CGI.

Para empezar permitimos que cada usuario pueda tener su web en una carpeta propia con

sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf
sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load

De este modo la página web de usuario “user” se encontrará en /home/user/public_html/ y será accesible a través de la dirección http://servidor/~user/

Ahora es cuando realmente activamos los scripts CGI, solamente en una carpeta llamada cgi-bin dentro de cada carpeta public_html. Lo único que hay que hacer es editar el fichero /etc/apache2/sites-available/default y añadir las siguientes líneas:

<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
AddHandler cgi-script .py
</Directory>

Solo tenemos que reiniciar el servidor Apache, y los ficheros con extensión .py dentro de la carpeta cgi-bin serán ejecutados en lugar de leídos. Un pequeño ejemplo:

#!/usr/bin/python

print “Content-Type: text/plain\n\n”

print “Hola, mundo!”

Nota: Ya sé que existen soluciones más eficientes y modernas, como usar mod_python, mod_wsgi, o cualquier framework web. Pero CGI es simple de configurar y, sobre todo, mis alumnos de TIC2 que ya conocen python no han de aprender nada nuevo para empezar a programar.

A %d blogueros les gusta esto: