NYC, educación en información uinversal

El día de ayer se anunció en la ciudad de Nueva York que se planea tener acceso universal en la educación pública en ciencias de la computación a todo nivel.

http://www1.nyc.gov/office-of-the-mayor/education-vision-2015-computer-science.page

La capacidad de pensar en el modelado de ideas y como instruir a una máquina para que haga el trabajo parece ser el nuevo mínimo educativo en la sociedad de la información. Las sociedades que no den acceso universal al siguiente nivel de educación se van a encontrar probablemente con una población equivalente a que en la actualidad no sepan leer y escribir.

Internet accesible desde los dispositivos móviles ha comenzado su etapa de instalación en todos los ámbitos de la vida, por lo que su impacto actual es insignificante comparado a lo que veremos en un par de décadas.

Situaciones como un chofer programando su recorrido o un administrativo utilizando un sistema de gestión para generar informes automatizados empiezan a ser cosa de todos los dias lo cual requiere la capacidad de abstraer la situación particular a la que se enfrenta para modelar la idea de forma que un sistema puede ejecutarla.

Primero fue la escritura, nos permitió recordar en forma nítida.
Luego la lógica, nos permitió pensar en como pensamos.Ahora el software, nos permite pensar a cualquier escala.

 

Devolvamos el fuego de prometeo al mundo

Los programadores robamos el fuego de prometeo y lo escondimos del resto del mundo.

En su momento el fuego fue eso, fuego, luego fue la escritura, hoy es la programación en su concepto amplio. Esto es, modelado de ideas, análisis e iteración. Codificar es solo una consecuencia, se puede programar con papelitos sin problema.

Las computadoras se están devorando todas las tareas sistemáticas y mecánicas, sea con robots o haciendo desaparecer el problema de raíz, esto es, la necesidad de tener el problema.

“Software is eating the world”. a16z.com

El siglo XXI va a destruir gran parte de los trabajos tradicionales, nos va a liberar de tareas mecánicas pero nos va a exigir algo nuevo. Adaptación constante, capacidad de aprendizaje y sistematización. Que tu robot haga los mandados,  pague las facturas y maneje el auto.

Para ser participes de este mundo sin trabajos pesados, vamos a tener que aportar nuestra creatividad, pero sobre todo poder manejar estos robots.

Entender un problema, modelarlo y delegarlo en un robot.

La educación de los conceptos abstractos no es exclusividad de las personas más hábiles para la matemática. Que un porcentaje bajo de la población pueda resolver una ecuación es una falla de la educación ya que no es algo exclusivo para unos pocos. Un niño de menos de 10 años puede resolver ecuaciones sin problema.

Es hora de que los programadores involucremos a los que no han podido participar de la construcción de este nuevo mundo, es un mundo donde debemos colaborar, trabajar en equipo, un mundo donde los secretos duran muy poco y donde una niña en Bangladesh tiene mejor acceso a información hoy que los estudiantes universitarios de Estados Unidos hace 25 años.

Modelar ideas como base de la educación

En el libro “The Information” de James Gleick se relata un estudio acerca del lenguaje y el impacto de la alfabetización en la capacidad de abstracción de las personas. El estudio analiza poblaciones de la Siberia en Rusia que se desarrollan en absoluto analfabetizmo. En este contexto se les plantean ejercicios de razonamiento básicos que no pueden ser seguidos por estas personas ya que no conocen el concepto de abstraer el significado de un objeto del mundo real a una palabra escrita abstracta.

Un razonamiento que se les plantea es dado que todos los osos son blancos, hay osos en un determinado lugar, de que color son los osos de ese lugar? La respuesta de estas personas es que no lo saben, deberían ir a ese lugar para verlos y saber de que color son.

El lenguaje escrito nos permite llevar objetos únicos del mundo a un concepto abstracto en nuestra mente. Cada oso del mundo real es único, pero en nuestra mente la palabra oso representa a todos los osos que existen.

Una palabra escrita abstrae a todos los objetos de un determinado tipo del mundo real en un concepto.

Esta piedra fundamental del lenguaje (alfabetización) es dada por sentado hoy en dia y cualquier niño puede seguir razonamientos mucho más complejos.

Con el cambio de siglo se ha planteado que el manejo de las computadoras y concretamente la programación son el próximo nivel de alfabetización básico para funcionar en la sociedad moderna. Según algunas propuestas, todos deben saber usar computadoras y deberíamos hacer que la mayor cantidad de gente sepa programar.

Programar o codificar es solo el resultado de un proceso mental mucho más complejo, el modelado de la realidad en una representación reutilizable. Esto es  lo que sucede en un programa donde definimos las reglas que la computadora reutiliza, desde una simple suma a simuladores de escenarios virtuales complejos.

Elevar la programación al grado de la alfabetización equivale a decir que cualquiera que sabe leer y escribir puede igualar Borges.

El concepto real detrás de la programación es el modelado de la realidad. El proceso mental por el cual podemos reducir una experiencia de la realidad a una serie de pasos abstractos definidos en un lenguaje.

Estos lenguajes son los dibujos que hacen los niños contando una historia, pasando por los excel que definen un presupuesto a los algoritmos más avanzados de Google.

Si intentamos que todos programen alienamos a gran parte de la población que no se siente cómoda en el proceso explícito de la programación o codificación, cuando en realidad todos somos capaces de conceptualizar los eventos de nuestro mundo en distintos niveles de modelado.

Un asistente de ventas puede construir una planilla en Excel para modelar la asignación de recursos de marketing en cada cliente según su presupuesto y mercados objetivo.

Un encargado de recursos humanos puede generar un proceso de embudo para su selección de personal sistematizando los criterios utilizados con indicadores que permitan una evaluación estructurada.

Al momento en que nos sentamos a jugar a las cartas en una mesa todos respetan las reglas y tiempos del juego ya que cada uno sigue el modelo del juego y los valores que toman los distintos objetos del mismo durante este proceso.

Estos son ejemplos de procesos mentales que no llegan a ser programación explícita pero son tan importantes como la programación de por sí. Traten de especificar en una hoja de papel un juego como el Truco con todo el proceso y reglas que se deben seguir. Van a ver que cuidar todas las derivaciones posibles nos lleva a modelar la realidad en bloques cada vez más explícitos.

Un programador es aquel que puede traducir el modelado a código, pero no necesariamente saber como modelar la realidad para que sea codificable.

Llevar este proceso de modelado a los niveles escolares y liceales con aplicaciones practicas puede atraer a los jóvenes a ejercitar su capacidad de abstraer la realidad sin importar que tengan facilidad para codificar explícitamente. Los niños que a futuro tendrán un desarrollo en áreas humanas pueden participar del proceso mental de modelado trabajando a la par de aquellos que sí realizan la tarea de codificado.

Este tipo de escenarios es natural ya que las personas que no tienen la facilidad para codificar son las que trabajarán junto a los programadores y pueden no entender el proceso de especificacion si nunca lo experimentaron personalmente. Todos los programadores conocen el escenario donde se les piden tareas como algo sencillo, pero que implican un modelado a gran escala o cambios radicales en sistemas preexistentes.

A su vez, los niños “geeks” que son genios de la tecnología pueden aprender a comunicarse y ser valorados socialmente al generar escenarios donde cada uno puede aportar lo suyo al proceso.

Uno de estos ejemplos de los cuales se puede aprender es: SEP (Software Engineering Pilot) Spring Showcase