Professional Documents
Culture Documents
1.
Por qu
e la inform
atica?
Europa o acceder a pr
acticamente todo el conocimiento disponible, sin moverte de tu casa. Debemos reconocer pues que casi no existe ning
un aspecto de
nuestras vidas que no haya sido profundamente trastocado por la informatica.
Pero este cambio no es s
olo un cambio tecnologico: esta teniendo importantes
consecuencias sociales, polticas y economicas, cuyo impacto es incluso es difcil
de predecir. Para comprenderlo, pensemos en el surgimiento de la modernidad.
Cuando hacia 1450, Gutemberg imprimio la Biblia utilizando su recientemente
creada imprenta, se produjo algo mucho mayor que un simple cambio tecnologico. Al poder el texto sagrado ser leido por un n
umero mucho mayor de personas,
se descaden
o la reforma protestante (recordemos que el libre examen de la Biblia
era una de las tesis capitales de Lutero), que tuvo gran impacto en el forjamiento
del pensamiento moderno.
Pues bien, Internet es la nueva imprenta (esto es: un medio de difusion de la
cultura muchsimo m
as eficiente de los que disponamos antes). Y esta trastocando de modo irreversible la forma en que pensamos!. Pensemos por ejemplo,
en el concepto de privacidad. Sin duda, las redes sociales estan produciendo un
debilitamiento del mismo. Lo querramos o no, ahora toda nuestra vida esta mucho m
as expuesta a la mirada de los demas.
O pensemos en el concepto de copyright (derecho de autor 1 ). Este concepto
est
a estrechamente ligado al surgimiento de la imprenta (con el Statue of Anne,
de 1710), ante la necesidad de encontrar un modo de financiar los costos de
impresi
on2 . En efecto, pensemos que a nadie se le hubiera ocurrido demandar
a un monje medieval por copiar un libro, violando los derechos de autor. En la
actualidad, ante la facilidad y costo marginal virtualmente nulo de las copias
hechas por medios electr
onicos, este concepto esta siendo puesto en cuestion por
las pr
acticas cotideanas, y se plantea la cuestion de como actualizar la legislacion
en materia de derechos de autor para adaptarla a la nueva realidad tecnologica.
Existen muchos otros debates actuales en los que la tecnologa informatica
juega un papel decisivo. Cito a modo de ejemplo, algunas cosas que se discutieron
en las u
ltimas semanas en en el parlamento, los medios de comunicacion y/o las
redes sociales3 :
1. Debe aprobarse una ley especial para proteger a los menores de personas que intentan contactarlas por Internet con fines sexuales? (ley anti
grooming)
2. Debe permitirse que los estados monitoreen o espen las comunicaciones
electr
onicas para impedir este tipo de abusos? (o para otros fines, como
por ejemplo detectar posibles actividades terroristas) O debe prevalecer
por el contrario la privacidad de los ciudadanos?
1 Aunque la traducci
on no es exacta ya que el original significa derecho de copia, ni hay
una equivalencia exacta entre nuestro derecho y el brit
anico
2 Una cr
onica fascinante de la historia del copyright y de los debates actuales en torno de
2.
Por qu
e ense
nar a programar? y C
omo hacerlo?
Avancemos un poco m
as, y preguntemonos cuales deberan ser los contenidos
de esta formaci
on inform
atica basica. Deberan los alumnos aprender solamente
a utilizar la computadora como una herramienta para realizar tareas de oficina
(como por ejemplo, editar textos o enviar correos electronicos), o es necesario
que tambien conozcan algo de su funcionamiento interno, y las bases de la
programaci
on ?
Como hemos se
nalado anteriormente, la importancia social de la informatica
trasciende en la actualidad su rol meramente instrumental. Para poder entender
los cambios sociales a los que hicimos referencia en la seccion anterior, para intervenir como ciudadanos en los debates que estos cambios originan; nececesitamos
comprender nociones b
asicas sobre el funcionamiento interno de las computadoras. Por consiguiente, creo que es necesario que en la escuela se ense
nen dichas
nociones b
asicas, y en particular la programaci
on.
Que es la programaci
on y porque enfatizo su importancia? Para explicarlo,
empecemos se
nalando que existe una diferencia fundamental entre una computadora y otras m
aquinas de uso diario como una cafetera o un lavarropas. Una
cafetera o un lavarropas son maquinas que utilizamos para hacer siempre una
3
misma tarea. Por el contrario, una computadora es una maquina mucho mas
vers
atil: puede realizar muchas tareas diferentes, incluso algunas para las que
quiz
as no fue originalmente pensada. La clave de ello es que es una maquina
programable.
En efecto, para regular su funcionamiento, una computadora ejecuta en cada
momento una secuencia de instrucciones, lo que se llama un programa. Ese programa puede decirle como efectuar muchas tareas diferentes como reproducir un
video, hacer c
alculos matematicos o imprimir un calendario. Los usos imaginables de una computadora son virtualmente ilimitados. Si no sabemos programar,
s
olo podremos utilizarla para aquellos usos para los que otra persona haya escrito un programa. Si sabemos programar, podremos concebir nuestros propios
(y quiz
as originales) usos.
C
omo se escriben los programas? Para comprenderlo, una buena analoga
de un programa de computadoras es una partitura musical. Dicha partitura le
indica al interprete que notas debe tocar y en que orden para reproducir la
meloda deseada. La partitura se escribe utilizando el lenguaje musical (pentagrama, corcheas, etc.). Similarmente los programas de computadora se escriben
utilizando lenguajes de programaci
on.
Muchas personas creen que la programacion es un arte hermetico, accesible
s
olo a unos pocos iniciados. Por el contrario, los programas de computadora
se escriben por lo general en lenguajes de computacion de alto nivel, que son
lenguajes de f
acil comprension por un ser humano (en mi opinion, incluso mas
sencillos que el lenguaje musical).
Se puede efectivamente aprender a programar en la escuela? Como testimonio de ello, puedo ofrecer mi propia experiencia personal: Aprend a programar
en sexto grado de la escuela primaria, en un curso extra-curricular que daban
en mi escuela. Utilizamos el lenguaje BASIC que era frecuente en aquellos das
(all
a por 1984), ya que vena en muchas computadoras hogare
nas (de la generaci
on de 8 bits). Pero mi caso no era u
nico. En esa misma epoca, mi madre era
docente y tambien asista a cursos de BASIC; en los kioscos se vendan revistas de programaci
on (como Programaci
on Popular ) y hasta el diario La Naci
on
vena con un suplemento para chicos que ense
naba a programar en el lenguaje
LOGO. Por desgracia, ahora la concepcion cambio y la programacion se ha visto
relegada de los programas escolares.
Existen cientos de lenguajes de programacion 4 . Por fortuna, muchos de
ellos tienen elementos comunes (por lo que en general es relativamente sencillo
aprender otro lenguaje de programacion una vez que se ha aprendido un primer
lenguaje, y las nociones b
asicas de la logica de la programacion5 .
4 Pueden ver una lista en http://en.wikipedia.org/wiki/List_of_programming_
languages
5 Siendo m
as precisos, existen distintos paradigmas de programaci
on. Y es relativamente
sencillo aprender un lenguaje de programaci
on una vez que se ha aprendido otro del mismo
paradigma. En general se utiliza el paradigma imperativo, en el que se indican en orden
qu
e pasos deben realizarse. Pero existen otros paradigmas como la programaci
on funcional o
la programaci
on l
ogica, que son diferentes.
Mi recomendaci
on en este momento, si les interesa aprender a programar (o
ense
nar a hacerlo), es usar el lenguaje Python 7 . Este lenguaje esta actualmente
siendo utilizado en muchas aplicaciones diferentes. Su principal ventaja para la
ense
nanza es que el c
odigo en Python es realmente facil de leer.
Existe abundante literatura sobre este lenguaje de programacion. Mis libros
recomendados son [3] y [4], dado que estos libros focalizan en los conceptos de la
programaci
on (y en el caso del segundo de ellos, en los conceptos matematicos
asociados), y no tanto en los detalles propios del lenguaje Python.
Un proyecto interesante para ense
nar programacion en Python a los mas
peque
nos, que quieron mencionarles es Pilas Engine. Fue creado por el programador argentino Hugo Ruscitti. Permite ense
nar programacion en Python por
medio del desarrollo de video juegos, haciendolo atrayente y divertido.
http://pilas-engine.com.ar
Tambien vale la pena mencionar que Python incluye el modulo turtle 8 con
una funcionalidad similar a la que ofreca el lenguaje LOGO que mencione antes:
permite realizar gr
aficos moviendo una tortuga por la pantalla. Esto es u
til
para ense
nar programaci
on a los mas peque
nos, ya que pueden ver que las
instucciones del programa hacen que algo fsico ocurra.
3.
Programaci
on y software libre
La programaci
on es un arte practico. Es similar en algunos aspectos a aprender a cocinar. Del mismo modo que aprendemos a cocinar, probando las recetas
de otros y modific
andolas; para aprender a programar es esencial leer codigo
de otras personas, y a partir de ah tomar ideas para escribir nuestros propios
c
odigos. Por eso una excelente manera de aprender a programar, es involucrarse
en un proyecto de software libre.
Que es el software libre? De acuerdo a la definicion de software libre de
la Free Software Foundation 9 , un programa es software libre si el usuario tiene
sobre el (de acuerdo a la licencia con la que el programa se distribuye) cuatro
libertades o derechos:
0) La libertad de ejecutar el programa para cualquier proposito.
1) La libertad de estudiar como funciona el programa, y cambiarlo
para que haga lo que usted quiera. El acceso al c
odigo fuente
es una condici
on necesaria para ello.
2) La libertad de redistribuir copias para ayudar a su projimo.
7 http://www.python.org
8 ver
por
ejemplo
http://interactivepython.org/runestone/static/thinkcspy/
PythonTurtle/helloturtle.html
9 http://www.gnu.org/philosophy/free-sw.es.html
3.1.
http://trac.
Como pueden ver en este ejemplo que les menciono, usualmente otros miembros de la comunidad comentaran sobre su codigo, y ayudaran a mejorarlo. En
el caso de Sage, existe una poltica explcita de revisi
on por parte de pares (algo
b
asico en el metodo cientfico): otro miembro de la comunidad de desarrolladores revisa las modificaciones propuestas, y da su opinion antes de que sean
incluidas en el c
odigo del programa.
Ustedes o sus alumnos tambien pueden participar del desarrollo de programas libres como Sage, y aprender en el proceso!. Es una excelente manera de
aprender a programar.
4.
C
omo hemos dicho, no s
olo las computadoras individualmente consideradas
juegan un papel decisivo en nuestra civilizacion de la informacion. Sino tambien
el hecho de que podamos interconectarlas a escala mundial a traves de la red
Internet.
Creo entonces que otro contenido esencial que debera tener la informatica
escolar es algunas nociones basicas sobre el funcionamiento de las redes, con
enfasis en el an
alisis crtico de estas tecnologas y sus implicancias sociales,
econ
omicas, polticas y culturales (planteando por ejemplo alguno de los debates
que mencionamos al comienzo).
Agradecimientos: Quiero agradecer especialmente a D
ebora Kozak
y Carlos DAndrea, quienes gentilmente leyeron versiones previas de
este artculo y me acercaron sus comentarios.
Referencias
[1] Lessig, Lawrence Free Culture http://www.free-culture.cc/
Hay una traducci
on al espa
nol: Cultura Libre, por Anto
no Cordoba: http:
//www.elastico.net/archives/001222.html
[2] Stallman, Richard Free Software, Free Society http://notabug.com/2002/
rms-essays.pdf
Hay una traducci
on al espa
nol: Software Libre para Una Sociedad Libre
http://www.nodo50.org/ts/editorial/software_libre.htm
[3] Downey, Allen B. Think Python. How to Think Like a Computer Scientist
Green Tea Press.
Hay una traducci
on al espa
nol: Aprenda a Pensar Como un Programador con
Python http://www.nodo50.org/ts/editorial/software_libre.htm
[4] Aguilera, Nestor. Matem
aticas y programaci
on, con Python. Notas para los cursos de Computacion y Programacion Universidad Nacional del
Litoral. http://www.santafe-conicet.gov.ar/~aguilera/libros/2013/
index.html
Las opiniones expresadas en este artculo son estrictamente personales, y no reflejan necesariamente el punto de vista de las instituciones para las que trabajo.
10