You are on page 1of 10

Algunas Reflexiones sobre el Rol que Debera

Cumplir la Informatica en la Escuela


Pablo L. De Napoli* e-mail:pdenapo@dm.uba.ar
Version 1.1.1 - 18 de mayo de 2014
He escrito el presente artculo, motivado por algunas discusiones en las que
he participado sobre la informatica en la escuela; y en particular sobre la necesidad (o no) de que se incluya informatica como una asignatura especfica dentro
de los programas escolares, y cuales deberan ser sus contenidos. Como los argumentos suelen diluirse y hacerse difciles de seguir, me ha parecido conveniente
escribir este artculo donde trato de presentar mis argumentos y mi punto de
vista, de manera m
as organizada. Esta destinado fundamentalmente a docentes,
responsables de las polticas educativas y p
ublico en general.

1.

Por qu
e la inform
atica?

Comencemos planteandonos la siguiente pregunta Por que deberamos incluir la inform


atica dentro de los contenidos escolares? O acaso no deberamos
hacerlo?. Para intentar responderla, miremos a nuestro alrededor: Es preciso
reconocer que el mundo est
a cambiando. Y el motor de este cambio, es la tecnologa inform
atica, y en particular la Internet.
Esto puede parecerles exagerado pero miren a su alrededor y piensen todos
los aspectos de su vida en los que las computadoras estan presentes: las transacciones comerciales y bancarias, los tramites ante organismos del gobierno, las
relaciones interpersonales (hoy en da es frecuente comunicarse con los amigos
o conocer personas a traves de las redes sociales), etc. Incluso los telefonos celulares que usamos a diario ya son peque
nas computadoras de bolsillo. Por otra
parte, la red Internet hace posible cosas que hasta hace muy poco eran muy
difciles de imaginar, como trabajar en tiempo real con un colega que vive en
* El autor es Doctor en Ciencias Matem
aticas. Profesor Adjunto en el Departamento de
Matem
atica de la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos
Aires, e Investigador Independiente de Conicet. Las opiniones expresadas en este artculo son
estrictamente personales, y no reflejan necesariamente el punto de vista de las instituciones
para las que trabajo. Este trabajo se distribuye bajo la Licencia Creative Commons Atribuci
on
No Comercial Sin Obra Derivada (by-nc-nd) http://creativecommons.org/licenses/
by-nc-nd/4.0/

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

el, pude encontrarse en el libro Free Culture [1], de L. Lessig


3 Algunos de estos debates son recurrentes.

3. Debemos implementar el voto electronico o es mas confiable, mas facil de


fiscalizar por los seres humanos, el sistema tradicional de voto en papel?
4. Debe el Estado adoptar el software libre (ver [2] y la seccion 3 de este
artculo) para su funcionamiento, o para su uso en las escuelas?
Es fundamental destacar que estos cambios sociales, y estos debates afectan
incluso a quienes no tengan computadoras, o no sepan usarlas. Por ejemplo,
cualquier empleado debe cobrar su sueldo a traves de una cuenta bancaria,
a la que accede usualmente por un cajero automatico (que es de hecho una
computadora).
En resumen: La tecnologa informatica ya no es meramente una herramienta
de trabajo, que utilizamos algunos profesionales. Tiene un impacto enorme en
todos los aspectos de nuestra vida. Son tan profundos estos cambios que algunas
personas ya denominan como sociedad de la informaci
on a la sociedad en la que
vivimos.
Si comprendemos esto, y si entendemos que la escuela no debe solo preocuparse por producir futuros empleados o consumidores, sino ante todo por
formar ciudanos, con espritu crtico y democratico, capaces de interactuar con
los dem
as, en la compleja sociedad en la que vivimos y participar en los debates
que se plantean en ella, la respuesta es ineludible: Es necesario que todos los
alumnos reciban por lo menos una formacion informatica basica que los capacite
para ello.

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.

Algunos de estos elementos comunes son:


1. La capacidad para realizar operaciones aritmeticas (suma, resta, multiplicaci
on, divisi
on) y otras operaciones matematicas mas complejas (por
ejemplo: calcular logaritmos).
2. La posibilidad de almacenar temporalmente los resultados de las operaciones en porciones de la memoria de la computadora, denominadas variables 6 .
3. La capacidad de efectuar o no una determinada operacion dependiendo de
determinadas condiciones, o de repetirlas en funcion de ellas (formando
ciclos).
4. La posiblidad de almacenar datos mas complejos en estructuras organizadas como por ejemplo listas.
5. La posiblidad de definir nuevas funciones (en un sentido muy proximo al
que esta palabra tiene en la matematica), que pueden ser utilizadas en
otras partes del programa.
Como vemos, programar contribuye a desarrollar el pensamiento logico y
abstracto, tanto como una clase de matematica. En realidad, debe pensarse como
algo complementario de ella, pues como ejemplifica la enumeracion anterior los
conceptos matem
aticos forman parte esencial de ella.
Tambien es interesante utilizar como estrategia didactica, el desafo de resolver problemas. En este sentido es muy interesante el sitio web
http://projecteuler.net/
donde se plantean problemas matematicos para resolver con la computadora,
para ser resueltos por los estudiantes a modo de desafo en orden creciente de
dificultad.
Por las razones que he expuesto, creo que aprender a programar es algo muy
u
til y formativo, para todos los alumnos; no solo para los que eventualmente
quieran ser programadores profesionales (que por cierto, es un segmento del
mercado laboral donde la demanda es creciente, debido justamente a la creciente
importancia de la inform
atica en todos los aspectos de nuestra vida). Entonces,
debemos ense
narles los fundamentos de la programacion a todos, del mismo
modo que ense
namos m
usica a todos ellos, a
un sabiendo que pocos de ellos seran
m
usicos profesionales el da de ma
nana. Al igual que sucede con la m
usica, si no
lo experimentan, no sabr
an si puede gustarles. Y al igual que mira una partitura
quien nunca estudi
o m
usica, miraran a los programas de computadora como un
algo escrito en un lenguaje crptico y extra
no.
Como hemos dicho anteriormente, la eleccion del lenguaje de programacion
no es esencial. Pero sin embargo, algunos lenguajes de programacion son sin
duda mucho m
as sencillos de aprender que otros.
6 Este

concepto es muy similar al concepto matem


atico de variable

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) La libertad de distribuir copias de sus versiones modificadas a


terceros. Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al codigo
fuente es una condicion necesaria para ello.
Algunos terminos de esta definicion merecen una explicacion: que es la
licencia de un programa? Que es el codigo fuente?
Una licencia es un permiso legal otorgado por la persona que tiene la titularidad del copyright o derecho de autor, sobre el programa, que nos autoriza a
utilizar el programa bajo ciertas condiciones. En el caso de los programas que
no son software libre, denominados usualmente software privativo, las licencias
son muy restrictivas. Se implementan por lo general por medio de un contrato de adhesi
on (las tpicas EULA: End User License Agreement), que requiere
como contraprestaci
on un pago. Tpicamente estas licencias restringen los posibles usos del programa, la distribucion de copias del mismo o inspeccionar como
est
a hecho el programa. Por el contrario, las licencias del software libre otorgan
al usuario las cuatro libertades antes mencionadas.
Otra concepto que debemos explicar es el de c
odigo fuente. Como dijimos
anteriormente los programas de computadora se escriben usualmente utilizando
lenguajes de programaci
on que son comprensibles para los humanos.Este texto
del programa en un lenguaje comprensible para los humanos se denomina c
odigo
fuente.
Usualmente, para que este programa pueda realmente ser ejecutado por
la computadora se requiere que sea traducido al lenguaje binario o c
odigo de
m
aquina, que es el que realmente entiende la computadora (el que ejecuta su
microprocesador ), pero que es de muy difcil comprension para los humanos.
Esta traducci
on la efect
ua un programa denominado compilador.
En el caso de los programas privativos (es decir aquellos que no son libres),
es usual que el programa se distribuya solo en formato binario. Por lo que el
usuario puede ejecutar el programa, pero no puede saber como esta hecho, ni
mucho menos puede modificarlo. Incluso las licencias de los programas privativos
suelen prohibir que se intente analizar el funcionamiento del programa a partir
del c
odigo binario, un arduo proceso conocido como ingeniera inversa.
En cambio, en el caso del software libre, al tener acceso al codigo fuente y
poder modificarlo, el usuario de un progama puede acceder al conocimiento que
hay detr
as del software y participar del desarrollo. Esto es de gran utilidad como
hemos dicho, a la hora de aprender a programar.
El lenguaje Python que mencione en la seccion anterior, y Pilas Engine
constituyen dos ejemplos de software libre. A continuacion, les presentare otro
ejemplo de un software libre u
til en entornos educativos.

3.1.

Un ejemplo de un programa libre: SAGE

Usualmente el software libre se desarolla en comunidades, donde muchas


personas pueden participar activamente del darrollo de un programa.
7

Para darles un ejemplo concreto de como funciona, quiero mencionarles el


proyecto Sage, un software libre para matematica, en cuyo desarrollo he tenido
ocaci
on de participar.
Sage ofrece una alternativa libre a programas privativos que quizas son mas
populares como Mathematica, Maple o Matlab. Como tal es un software de
enorme valor para usarlo en un entorno educativo. En efecto, usar un programa
privativo para matem
atica, cuyo codigo no podemos ver, es analogo a usar un
teorema cuya demostraci
on tenemos prohibido conocer.
El sitio web de Sage es
http://www.sagemath.org/

Figura 1: Sage mostrando ejemplos en un navegador web


La parte principal de Sage esta escrita en Python, e incorpora y provee una
intefaz com
un en este lenguaje a muchos otros programas libres que existan
anteriormente para matem
atica. Sage puede utilizarse con una interfaz amigable,
desde un navegador web (ver figura 1).
El c
odigo fuente de Sage esta integramente disponible en el sitio Github
https://github.com/sagemath/sage
Por otra parte, el desarrollo de Sage se realiza en forma abierta y comunitaria, y pueden seguirse las discusiones de los desarrolladores sobre fallos (bugs)
8

conocidos, mejoras propuestas, etc. Por ejemplo, en la figura 1, pueden ver


la discusi
on sobre una mejora que yo propuse en el codigo para calcular los
coeficientes binomiales (n
umeros combinatorios), y que fue incorporada. Como
pueden ver en este ejemplo sencillo, las cuatro libertades no son algo teorico:
sino que pueden efectivamente ser usadas para mejorar los programas.

Figura 2: Una mejora que yo propuse al codigo de Sage


sagemath.org/ticket/628

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.

Otros contenidos que debieran estar presentes en la inform


atica escolar

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

You might also like