Está en la página 1de 7

Pensamiento Computacional: Qu y Por Qu?

Jeannette M. Wing 17 de noviembre 20101 En mi artculo en el CACM de marzo de 2006 utilic el trmino "pensamiento computacional" para articular una visin sobre cmo todos no slo a aquellos que se especializan en ciencias de la computacin pueden beneficiarse de pensar como lo hace un cientfico de la computacin [Wing06]. Entonces, qu es el pensamiento computacional? He aqu una definicin que Jan Cuny de la National Science Foundation, Larry Snyder de la Universidad de Washington y yo utilizamos; est inspirada en un intercambio de correo electrnico que tuve con Al Aho de la Universidad de Columbia: Pensamiento Computacional son los procesos de pensamiento involucrados en la formulacin de problemas y sus soluciones, de modo que tales soluciones se representen en una forma que pueda ejecutar eficazmente un agente de procesamiento de informacin [CunySnyderWing10] Informalmente, el pensamiento computacional describe la actividad mental de formular un problema para que admita una solucin computacional. La solucin puede llevarla a cabo un ser humano, una mquina o, de manera ms general, una combinacin de seres humanos y mquinas. Cuando uso el trmino pensamiento computacional, mi interpretacin de las palabras "problema" y "solucin" es amplia y, en particular, no me refiero slo a problemas bien definidos matemticamente, cuyas soluciones son completamente analizables por ejemplo, una prueba, un algoritmo, o un programa sino tambin a problemas del mundo real cuya solucin pueda estar en la forma de grandes y complejos sistemas de software. Por lo tanto, el pensamiento computacional se superpone con el pensamiento lgico y con el pensamiento sistmico: incluye pensamiento algortmico y pensamiento paralelo, que a su vez participan de otras formas de procesos de pensamiento, como por ejemplo el razonamiento por composicin, la coincidencia de patrones, el pensamiento procedimiental y el pensamiento recursivo. Interpretado de manera amplia, el pensamiento computacional se utiliza en el anlisis y diseo de los problemas y sus soluciones. El proceso ms importante y de mayor nivel en el pensamiento computacional es la abstraccin: se utiliza en la definicin de los patrones, la generalizacin a partir de instancias y la parametrizacin; para que un objeto represente a muchos; y para capturar caractersticas esenciales comunes a un conjunto de objetos, mientras se ocultan aquellas diferencias irrelevantes entre ellos. Por ejemplo, un algoritmo es la abstraccin de un proceso que toma ciertas entradas, ejecuta una secuencia de pasos y produce salidas para satisfacer un objetivo deseado. Un tipo abstracto de datos define un conjunto abstracto de valores, y operaciones para manipular dichos valores, ocultando al usuario del mismo la representacin real de los valores. El diseo de algoritmos eficientes inherentemente involucra el diseo de tipos abstractos de datos. La abstraccin nos da el poder para escalar y hacer frente a la complejidad. Aplicar la abstraccin recursivamente nos permite construir sistemas cada vez ms grandes, siendo el
1 Traduccin: Dr. Jos Enrique Alvarez Estrada (jeae@ucaribe.edu.mx).

caso base al menos para la computacin tan slo bits (0 y 1). En computacin, de manera rutinaria construmos sistemas en trminos de capas de abstraccin, lo que nos permite concentrarnos en una sola capa a la vez y en las relaciones formales (por ejemplo, "usa", "mejora" o "implementa", "simula") entre capas adyacentes. Cuando escribimos un programa en un lenguaje de alto nivel, no nos preocupamos por los detalles del hardware subyacente, el sistema operativo, el sistema de archivos o la red; es ms, confiamos que el compilador sea una implementacin correcta de la semntica del lenguaje. Como otro ejemplo, la delicada arquitectura de la Internet, con el protocolo TCP/IP en el centro, ha permitido que proliferen multitud de aplicaciones imprevistas en la capa ms alta, as como multitud de plataformas de hardware, medios de comunicacin y dispositivos imprevistos en la capa ms baja. El pensamiento computacional se basa tanto en el pensamiento matemtico como en el pensamiento ingenieril. Pero al contrario que en matemticas, nuestros sistemas informticos estn limitados por la fsica del agente de procesamiento de informacin subyacente y por su entorno operativo. Y por eso hay que preocuparse por las condiciones del contorno, las fallas, los agentes maliciosos y la imprevisibilidad de la vida real. Y a diferencia de otras disciplinas de la ingeniera, gracias al software (nuestra nica "arma secreta"), en informtica podemos construir mundos virtuales que no sufren las restricciones de la realidad fsica. Por ello en el ciberespacio nuestra creatividad est limitada tan slo por la imaginacin.

Pensamiento Computacional y Otras Disciplinas


El pensamiento computacional ya ha influido en la agenda de investigacin de todas las disciplinas de las ciencias y las ingenieras. Desde el inicio hace dcadas en el uso de modelos computacionales y de simulacin, hasta desembocar hoy en el empleo de la minera de datos y el aprendizaje automtico para analizar cantidades masivas de datos, la informtica es reconocida como el tercer pilar de la ciencia, junto con la teora y la experimentacin [PITAC 2005]. La secuenciacin acelerada del genoma humano a travs del algoritmo de escopeta despert el inters de la comunidad de bilogos en los mtodos de cmputo, y no slo en los artefactos computacionales (computadoras y redes). El volumen y la velocidad a la que los cientficos y los ingenieros estn ahora recopilando y produciendo datos a travs de instrumentos, experimentos, y simulaciones a su vez exige avances en el anlisis, almacenamiento, recuperacin y visualizacin de datos. El Programa de Descubrimiento e Innovacin Ciber-Habilitado (CDI, Cyber-enabled Discovery and Innovation program ) de la National Science Foundation (NSF), con una duracin de cinco aos y un presupuesto asignado de US$100 millones por ao fiscal, es en pocas palabras "pensamiento computacional para la ciencia y la ingeniera. Cada direccin y oficina cientficas de la NSF participa en el CDI. El pensamiento computacional tambin ha comenzado a influir en disciplinas y profesiones ms all de la ciencia y la ingeniera. Por ejemplo, entre las reas de estudio activo se encuentran la medicina algortmica, la arqueologa computacional, economa computacional, finanzas computacionales, computacin y periodismo, legislacin computacional, ciencias sociales computacionales y las humanidades digitales. El anlisis de datos se utiliza en el entrenamiento de los reclutas del Ejrcito, la deteccin de spam y de fraudes en tarjetas de crdito, los servicios de recomendacin y reputacin, y los cupones personalizados del supermercado. En la Universidad Carnegie Mellon el pensamiento computacional est en todas partes. Tenemos 2

programas de pregrado y grado, as como trayectorias de "Computacin X", donde la X se aplica al aprendizaje de las matemticas, la biologa, la qumica, el diseo, la economa, las finanzas, la lingstica, la neurociencia, la mecnica, la fsica y la estadstica. Incluso tenemos un curso de fotografa computacional. Contamos con programas de Msica Computacional y de Computacin, Organizaciones y Sociedad. Tenemos programas conjuntos entre ciencias de la computacin y otras disciplinas: por ejemplo Algoritmos y Optimizacin Combinatoria (computacin, matemticas y negocios); Ciencias de la Computacin y Artes; Tecnologa de Entretenimiento (computacin y drama); Interaccin Humano-Computadora (computacin, diseo y psicologa); Tecnologas del Lenguaje (computacin y lingstica); Lgica y Computacin (computacin y filosofa); Lgica Pura y Aplicada (computacin, matemticas y filosofa); y Robtica (computacin, ingeniera elctrica e ingeniera mecnica).

Pensamiento Computacional en la Vida Diaria


El pensamiento computacional se puede aplicar en la vida diaria. El Departamento de Ciencias de la Facultad de Informtica de Carnegie Mellon me proporcion las siguientes historias: Canalizacin (pipelining). Randy Bryant, Decano de la Facultad de Ciencias de la Computacin, estaba pensando cmo acelerar la ceremonia de graduacin de la Escuela Dominical. Dise un flujo eficiente mediante la adecuada ubicacin de las personas de pie, de modo que cuando Mark Stehlik lee el nombre de cada graduado, ste puede recibir su diploma, darle un apretn de manos o un abrazo y tomarse una foto con l. Esta canalizacin permite un flujo constante de estudiantes a travs del escenario (a menudo los atascos en el flujo ocurran cuando se les caa el birrete a los graduados mientras le daban el abrazo a Mark.) Seth Goldstein observ: "En los buffets por qu siempre ponen el aderezo antes que la ensalada? Y la salsa antes del plato principal? Por qu la cubertera est al inicio? Necesitan un poco de canalizacin." Dispersin (hashing). Tras una charla acerca de mi visin del pensamiento computacional en una reunin de profesores de mi departamento, Danny Sleator se acerc a decirme que en su casa utilizan una funcin de dispersin particular para almacenar las piezas de Lego. Segn Sleator, ellos usan dispersin en estas categoras: bloques rectangulares gruesos; otros bloques gruesos (no rectangulares); bloques delgados (de cualquier forma); ejes, remaches y espaciadores; amarres a ejes, bolas y zcalos; y varios. Incluso tienen reglas para clasificar piezas que podran encajar en ms de una categora. Dijo que "a pesar de que este mtodo parece bastante burdo, disminuye en un factor de 10 el tiempo de bsqueda de una pieza." Avrim Blum escuchaba mientras Danny me platicaba esta historia e intervino para decir: "En nuestra casa utilizamos una funcin de dispersin diferente". Ordenacin (sorting). La siguiente historia la tom literalmente de un correo electrnico enviado por Roger Dannenberg, un trompetista y cientfico de la computacin profesional. "Me integr a una orquesta, y el director nos distribuy carpetas con unas 200 partituras desordenadas y una lista con unos 40 ttulos, cuando estbamos a punto de dar un concierto. Todo el mundo empez a buscar a travs de la pila, sacando las partituras una por una. Decid ordenar alfabticamente las 200 partituras O (N log (N)) para luego irlas insertando O(M log (N)). Todava estaba ordenndolas mientras los otros miembros de la orquesta apenas iban a la mitad, y empec a recibir algunas miradas de burla, pero al final termin en primer lugar. Eso es pensamiento computacional." 3

Beneficios del Pensamiento Computacional


El pensamiento computacional es la nueva alfabetizacin del siglo XXI. Nos permite adaptar la computacin a nuestras necesidades. Que por qu todo el mundo debe aprender un poco de pensamiento computacional? Cuny, Snyder y yo defendemos los siguientes beneficios [CunySnyderWing10]: El pensamiento computacional para todos significa ser capaz de: Comprender qu aspectos de un problema son susceptibles de resolverse mediante cmputo Evaluar qu tan adecuadas son las herramientas y tcnicas computacionales para un problema Entender las limitaciones y el poder de las herramientas y tcnicas computacionales Aplicar o adaptar una herramienta o tcnica computacional a un nuevo uso Reconocer una oportunidad de utilizar el cmputo de nuevas maneras Aplicar estrategias computacionales como divide y vencers en cualquier dominio

Para cientficos, ingenieros y otros profesionales, el pensamiento computacional significa, adems, ser capaz de: Aplicar nuevos mtodos computacionales a los problemas Reformular problemas, de modo que sean susceptibles de aplicarles estrategias computacionales Descubrir "ciencia" nueva, a travs del anlisis de grandes volmenes de datos Formular preguntas nuevas, que no se haban atrevido a considerar o preguntar por su escala, de forma fcil mediante cmputo Explicar los problemas y soluciones en trminos computacionales.

Pensamiento Computacional en la Educacin


Las universidades en Estados Unidos y el extranjero estn revisando sus planes de estudio de licenciatura en ciencias de la computacin. Muchas estn cambiando su primer curso de ciencias de la computacin para cubrir principios y conceptos fundamentales, no (slo) programacin. Por ejemplo, en la Carnegie Mellon recientemente hemos revisado nuestros cursos de pregrado de primer ao para promover el pensamiento computacional entre aquellos que no son especialistas [Link10]. Por otra parte, el inters y la emocin que rodea al pensamiento computacional ha crecido ms all de la investigacin y la educacin de pregrado. El potencial de propagar el pensamiento computacional ampliamente en toda la poblacin, ha motivado varios proyectos recientes que esbozar a continuacin. La mayora se centran en la primaria y la secundaria. Los promotores visitan organizaciones profesionales, gubernamentales, acadmicas e industriales. El pensamiento computacional tambin se ha extendido a nivel internacional. La Asociacin de Universidades, con el apoyo de la NSF, est diseando un nuevo curso de Orientacin Vocacional Avanzada (AP) que cubre los conceptos fundamentales de computacin y el pensamiento computacional (http://csprinciples.org). Este ao cinco universidades estn 4

experimentando con versiones de este curso de: la Universidad de Carolina del Norte en Charlotte, la UC en Berkeley, el Metropolitan Sate College de Denver, la UC en San Diego y la Universidad de Washington. El plan es extenderlo para que participen ms escuelas, secundarias, colegios comunitarios y universidades el ao que viene. La Junta Nacional de Academias de Ciencias de la Computacin y Telecomunicaciones celebr una serie de talleres titulados Pensamiento Computacional para Todos, enfocados en la identificacin de los conceptos fundamentales de las ciencias de la computacin que se puedan ensear a los estudiantes de primaria y secundaria. El primer informe del taller [NRC10] proporciona mltiples perspectivas del pensamiento computacional. El 29 de mayo de 2009, en un evento en The Hill patrocinado por ACM, CRA, CSTA, IEEE, Microsoft, NCWIT, NSF, y SWE, se pidi agregar la "C" (computacin) en el STEM2. La Cmara de Representantes de los Estados Unidos design a la primera semana de diciembre como la Semana de la Educacin en Ciencias de la Computacin o CSEdWeek (http://www.csedweek.org/), que patrocinan ABI, ACM, BHEF, CRA, CSTA, Dot Diva, Google, Globaloria, Intel, Microsoft, NCWIT, NSF, SAS, y Upsilon Pi Epsilon . El 30 de julio 2010 el congresista del 2 Distrito de Colorado, Jared Polis, present el Acta para la Educacin en Ciencias de la Computacin (HR5929) para fortalecer la educacin computacional en primaria y secundaria. En septiembre de 2010 la NSF arranc el programa Educacin en Computacin para el Siglo XXI (CE21) dirigido a desarrollar competencias de pensamiento computacional en estudiantes y profesores de primaria a pregrado. El CE21 se basa en los xitos del programa Rutas para Revitalizar la Educacin en Computacin de Pregrado CISE (CPATH) de la NSF y del programa de Ampliacin de la participacin en Computacin (BPC). CE21 hace un nfasis especial en las actividades que apoyan el proyecto CS10K, una iniciativa puesta en marcha por la NSF a travs de BPC y que tiene como objetivo catalizar una revisin del plan de estudios de la secundaria, proponiendo un nuevo curso AP como pieza central, as como preparar a 10,000 profesores para la enseanza de los nuevos cursos en 10,000 escuelas secundarias para el ao 2015. En agosto de 2010, la Royal Society Britnica anunci que est liderando un proyecto de 18 meses para revisar "la forma en que se ensea la computacin en las escuelas, con el apoyo de 24 organizaciones de toda la comunidad informtica, incluyendo las sociedades cientficas, colegios profesionales, universidades, y la industria" (http://royalsociety.org/Education-Policy/Projects/). Uno de los participantes es Computacin en la Escuela (CAS), una coalicin dirigida por la Sociedad de la Computacin Britnica con el patrocinio de Microsoft Research y otros socios de la industria. Desde 2006, con la ayuda primero de Google y despus de Microsoft, Carnegie Mellon ha celebrado talleres de verano CS4HS dirigidos a maestros de secundaria, para quitar la percepcin de que hay ms en la ciencias de la computacin que la programacin de computadoras. El programa CS4HS se extendi en 2007 a la UCLA y la Universidad de Washington. Para el ao 2010, bajo los auspicios de Google, CS4HS se extendi a 20 escuelas en los Estados Unidos y 14 en Europa, Oriente Medio y frica. Desde 2007, Microsoft Research ha financiado el Centro para el Pensamiento Computational de Carnegie Mellon: http://www.cs.cmu.edu/~CompThink/. El Centro apoya tanto la investigacin como
2 Acrnimo de Science (ciencia), Technology (tecnologa), Engineering (ingeniera) y Matemticas (matemtica). Vase http://en.wikipedia.org/wiki/STEM_fields

la divulgacin de proyectos educativos. En octubre de 2010, Google lanz el sitio web Exploracin del Pensamiento Computacional (http://www.google.com/edu/computational-thinking/index.html), que tiene una gran cantidad de enlaces a ms recursos web, incluyendo planes de lecciones para maestros de primaria y secundaria en ciencias y matemticas. Computer Science Unplugged, http://csunplugged.org/, web creada por Tim Bell, Mike Fellows, y Ian Witten, ensea computacin sin necesidad de utilizar computadoras. Es especialmente apropiada para nios de primaria y secundaria. Varias decenas de personas trabajando en muchos pases, incluyendo Nueva Zelanda, Estados Unidos, Suecia, Australia, China, Corea, Taiwn y Canad, contribuyen a este sitio web muy popular. Adems, los paneles y discusiones sobre el pensamiento computacional han sido abundantes en lugares como SIGCSE y el Consejo Educativo de la ACM. La CRA-E present un libro blanco [CRA-E10] en la conferencia Snowbird CRA de julio del 2010, que incluye recomendaciones para cursos de pensamiento computacional. CSTA produce y difunde el Conjunto de Recursos sobre Pensamiento Computacional: una Herramienta de Solucin de Problemas para cada Saln de Clases (http://www.csta.acm.org/).

Comentarios Finales
El pensamiento computacional no trata slo acerca de computacin. Los beneficios educativos de ser capaz de pensar computacionalmente se transfieren a cualquier otro dominio, mejorando y reforzando las habilidades intelectuales. Los cientficos en computacin ven el valor de pensar en abstracto, a varios niveles de abstraccin, de abstraer para manejar la complejidad y para lidiar con la escala, etc. Conocemos el valor de estas capacidades. Nuestra tarea inmediata es explicar mejor a quienes no son expertos lo que entendemos por pensamiento computacional, y los beneficios de ser capaz de pensar computacionalmente. Por favor nanse a m para ayudar a difundir la palabra!

Bibliografa
[CRA-E10] Asociacin de Investigacin en Computacin, Creacin de Ambientes para la Educacin de Investigadores Computacionales, 9 de agosto de 2010. http://www.cra.org/uploads/documents/resources/rissues/CRA-E-Researcher-Education.pdf [CunySnyderWing10] Jan Cuny, Larry Snyder, y Jeannette M. Wing, Desmitificando el Pensamiento Computacional para No Expertos, trabajo en progreso, 2010. [NRC10] National Research Council, Informe de un taller sobre el alcance y naturaleza del Pensamiento Computacional, 2010 http://www8.nationalacademies.org/cp/projectview.aspx?key=48969 [Link10] La perspectiva de un Decano, The Link, septiembre de 2010. [PITAC05] El presidente del Consejo Asesor de Tecnologa de la Informacin, Ciencias de la 6

Computacin: Garantizar la competitividad de Estados Unidos, Informe al Presidente, junio de 2005. [Wing06] Jeannette M. Wing, Pensamiento Computacional, Communications of the ACM, el MCCA vol. 49, no. 3, marzo 2006, pginas 33-35.

Siglas:
ABI: Anita Borg Institute for Women and Technology ACM: Association for Computing Machinery BHEF: Business-Higher Education Forum CISE: Computer and Information Science and Engineering CRA: Computing Research Association CRA-E: Computing Research Association-Education CSTA: Computer Science Teachers Association CSTB: Computer Science and Telecommunications Board IEEE: Institute for Electrical and Electronic Engineers NCWIT: National Center for Women and Information Technology NSF: National Science Foundation SIGCSE: ACM Special Interest Group on Computer Science Education SWE: Society for Women Engineers