Definir, computar, pensar.

Javier Blanco

Rastrear la genealogía de la idea de computación tiene hoy un rol más fundamental que la mera exégesis, ya que pese a ser central en diversas disciplinas -o quizá precisamente por eso-, es una noción que no está fijada de manera clara y unívoca, no tiene un status ontológico definido, y está constantemente bajo sospecha, sujeta a ataques desde diversos frentes. Se abordarán algunos puntos controversiales acerca de las concepciones de la computación, así como la relación de la filosofía de la computación con otras areas disciplinares, como la filosofía de la matemática, de la técnica y de la mente.

Fragmentos de una historia de la inducción

Luis Sierra

La inducción matemática es un método de prueba utilizado para demostrar afirmaciones sobre números naturales. En la aplicación de este método podemos distinguir tres acciones diferentes.

La primera acción relevante es el enunciado de la afirmación a probar. La segunda acción es la prueba de lo que se conoce como el paso base: una justificación adecuada de que la afirmación se cumple en el caso del cero. La tercera y última acción consiste en el paso inductivo: una prueba de que la afirmación se preserva mediante el sucesor, es decir, si la afirmación se cumple para cierto natural, también se cumple para el siguiente natural. Estas tres acciones constituyen hoy una aplicación adecuada del principio de inducción matemática.

Sin embargo, la forma actual de uso de este método ha ido evolucionando en el tiempo. En esta presentación mostramos distintos aspectos de esta evolución, especialmente en lo que hace a la aparición explícita de las acciones antes mencionadas. Esperamos también plantear algunas inquietudes que creemos interesantes para una discusión acerca de la práctica docente en matemática.

Enseñar programación por medio de videojuegos y cuentos infantiles

Sergio Palay

Enseñar a programar a los jóvenes es sin dudas un desafío. Sin embargo, no tiene por qué ser complicado. Algunos sostienen que no llegan con los conocimientos previos necesarios. Sin embargo, si se buscan los ejemplos adecuados, los conceptos de programación pueden ser asimilados con mayor facilidad. Los videojuegos o los cuentos infantiles nos brindan la posibilidad de trabajar con ejemplos que ellos ya conocen. El alumno sabe lo que va a pasar y de esta forma es mucho más sencillo explicarle como programar.

La ponencia, de carácter 100% práctica, trata acerca de la experiencia acontecida en los Liceos 39 y 48 en la que se les enseñó a programar a alumnos de 1º año en Scratch. Se muestran algunos de los ejemplos utilizados, juegos clásicos (Space Invaders, Pong o Arkanoid), cuentos infantiles (Pinocho, Caperucita Roja, Alicia en el País de las Maravillas) y otros juegos tradicionales (piedra papel o tijera, ta te ti, laberintos, sorteos). Se habla de las estrategias utilizadas en el aula  y de lo que ha sucedido con estos alumnos.

Además cuenta la historia de www.aprendescratch.com el sitio que nació con la idea de simplemente subir los trabajos de los alumnos y termina siendo un lugar donde profesores de otras partes pueden descargar todas las guías en formato PDF para replicar los ejercicios y ver videos explicativos al respecto.

La charla se corona con la experiencia de aprendescratch en Facebook, la muestra de algunos juegos más avanzados creados por alumnos (por ejemplo Salven el Montón de Damián Rodríguez por ejemplo) y las posibilidades que nos brinda el nuevo Scratch 2.0 tanto en su versión online como en su versión escritorio.

FUN: una nueva herramienta para enseñar principios de programación

Araceli Acosta

En su artículo “Sobre la crueldad de verdaderamente enseñar ciencias de la computación”, Edsger W. Dijkstra nos invita a pensar una forma de enseñar programación en un curso introductorio: "Desde el comienzo, y a través de todo el curso, enfatizamos que la tarea del programador no es sólo escribir un programa, sino que su tarea principal es dar una prueba formal de que el programa que propone cumple la especificación funcional (igualmente formal). Mientras se diseñan demostraciones y programas conjuntamente, el estudiante adquiere una amplia oportunidad de perfeccionar su destreza manipulativa con el cálculo de predicados". Persiguiendo la filosofía de enseñanza de Dijkstra, un grupo de docentes y estudiantes de FaMAF de la Universidad Nacional de Córdoba desarrollamos FUN con el objetivo de hacer una herramienta que acompañe al estudiante en el aprendizaje de la programación. Esta herramienta consiste en un IDE (entorno de desarrollo integrado) que permite definir programas funcionales, y su especificación, además de realizar pruebas matemáticas utilizando lógica proposicional y de predicados, y realizar derivaciones; las pruebas y derivaciones son verificadas automáticamente por el software.

Experiencia de Enseñanza de Programación y Matemática

Álvaro Tasistro – Juan Michelini

En agosto pasado hemos comenzado a dictar el curso "Fundamentos de la Computación", perteneciente al segundo semestre de la carrera "Ingeniería de Sistemas" (Ingeniería de Software). El propósito del curso es conectar programación y matemática a un nivel profundo: Por un lado, los programas son objetos matemáticos y sus propiedades relevantes se pueden establecer con certeza --especialmente su comportamiento funcional. (Nos gusta llamar a esto “programación como matemática”.) Y por el otro lado, la pregunta es qué matemática se origina al considerar como objetos matemáticos precisamente a los programas (Decimos “matemática como programación”.) En nuestro curso los programas se expresan en un cálculo lambda con tipos à la Curry, definiciones inductivas y estructuras abstractas (expresadas en una notación parecida a la de los tipos de registros). Por lo tanto, el curso sirve también como un primer curso de programación funcional, abarcando tipos inductivos y cierta práctica con tipos abstractos de datos.

Nuestra motivación fundamental es la convicción de que los ingenieros de software necesitan realizar demostraciones matemáticas ---particularmente de propiedades de programas. Esperamos que los estudiantes salgan de nuestro curso con, al menos: -- Un incremento de su preocupación por la calidad de sus propios programas. -- Una disposición mayor a razonar a priori sobre el comportamiento de los mismos. -- Una imagen o estructuración clara del universo matemático manejado, y -- La incorporación de ciertos métodos de demostración que les permitan resolver un número de problemas prácticos relevantes y encarar cualquier otro con educación y sin espanto.

En el curso del dictado hemos realizado algún hallazgo, particularmente: -- Los estudiantes están ciertamente capacitados para realizar el curso. En particular, para aprender los métodos de programación (recursión y uso de funciones de orden superior) y los métodos de demostración (inducción, razonamiento calculacional). -- El método y notación llamado calculacional, originado con Dijkstra y seguidores, es particularmente apropiado para nuestros propósitos, específicamente para realizar las demostraciones necesarias y como medio de expresión que los estudiantes están proclives a adoptar. Este método debe compararse con, e.g. los afines a la “deducción natural” y a los razonamientos puramente inductivos. -- El enfoque seguido nos ha conducido a pruebas muy detalladas, casi totalmente formales. No estamos seguros de si esto es totalmente positivo. -- Existen prejuicios perniciosos que parecen haber sido introducidos en la mente de los estudiantes en el transcurso de su experiencia en el sistema educativo. Por ejemplo: que la matemática, la programación, y en general la resolución de problemas no se basan en la disciplina sino puramente en el (in)genio (o que el (in)genio es esencialmente diferente a la disciplina, quizás inclusive incompatible con ella). Otro ejemplo es: que escribir generosamente (e.g. tratando de clarificar las ideas propias para que el otro entienda) es síntoma de torpeza (o que el (in)genio se manifiesta siendo escueto).

En el encuentro quisiera poder discutir las motivaciones del curso, su armado concreto y estos pequeños hallazgos, así como todo aspecto que se considere interesante.

Educación terciaria mixta: carrera tecnólogo en informática

Ana Iruleguy

Experiencias de enseñanza/aprendizaje en ciencia de la computación La carrera de “Tecnólogo en Informática” constituye parte de una oferta educativa llamada genéricamente “Educación Tecnológica Terciaria”; ofrecida conjuntamente por la Universidad de la República (UdelaR) y la Administración Nacional de la Educación Pública (ANEP-UTU). Está dirigida por una comisión mixta creada en el año 2005 con fines de extender y profundizar la cooperación entre ambas instituciones. Como objetivo general la carrera de “Tecnólogo en Informática” busca desarrollar las capacidades para actuar en la realización, puesta en marcha, mantenimiento y administración de sistemas informáticos. Se pretende alcanzar una formación integral de Tecnólogos con sentido analítico, creativo, y emprendedor, capaces de utilizar las tecnologías de la información para dar solución a problemas del área informática, electrónica y computacional de los sectores industriales y de servicios con el fin de mejorar su calidad y productividad. El Tecnólogo en Informática sede Paysandú comienza sus actividades en mayo del 2007 con 30 estudiantes. A la fecha, con cinco generaciones en actividad, 160 estudiantes transitan esta opción educativa. Provienen desde Artigas hasta Soriano en el litoral, Durazno, Flores y Tacuarembó. Cumplidos dos ciclos completos de carrera, 14 se han recibido. Corresponde al 21% de los ingresos netos. Algunos de estos profesionales están insertos en el mercado laboral, otros se encuentran continuando su trayecto académico. Se cuenta con sistema de acreditación. El estudiante revalida sus estudios en la carrera Ingeniería en Computación de Facultad de Ingeniería, una vez recibido de Tecnólogo en Informática. La currícula integra asignaturas técnicas y del área social y humana. Dentro de las fortalezas a destacar se tiene la carga práctica que acompaña el dictado de las materias y la estabilidad docente. Este cuerpo está completamente inserto en el medio local. Como complemento de clases se realizan salidas didácticas, trabajos de campo y charlas con profesionales y empresarios. Es obligatorio realizar una pasantía curricular laboral y el proyecto de fin de carrera. Nuestra experiencia en la coordinación de esta sede la valoramos positivamente. Para todos quienes conformamos este equipo de trabajo la gestión, la supervisión y el dictado de la misma ha sido un reto diario. Con la satisfacción de llevar adelante una carrera con logros, nos preguntamos: Es el nuestro un sistema educativo que acompaña las demandas de la sociedad tecnológica?
Hasta qué punto el sistema laboral abre posibilidades igualitarias que permitan el arraigo de los jóvenes en su lugar de origen?

Enseñando deducción natural

Patricia Peratto

Este trabajo tiene que ver con la obtención automática de pruebas de proposiciones en el sistema de deducción natural. El sistema en el que trabajamos es lógica proposicional clásica.

El trabajo se basa en las siguientes dos ideas:

1) si explicamos el algoritmo que utilizamos para la obtención automática de pruebas a nuestros estudiantes, ellos pueden siguiendo este algoritmo hallar derivaciones de proposiciones.

2) si implementamos el algoritmo los estudiantes pueden usar la herramienta obtenida para hallar pruebas automaticamente.

Existen herramientas que hallan pruebas automaticamente cuando estas existen (ver PROVER de Levy). La diferencia de este trabajo con el que ya existe es que nosotros permitimos hallar varias pruebas (dada una profundidad del árbol de derivación o una cantidad máxima de reglas, la herramienta busca pruebas hasta llegar a la profundidad o cantidad de reglas indicada). Esto hace que el estudiante vea distintas pruebas de una misma proposición lo cual hace que se familiaricen más con las reglas del sistema de deducción natural.

10 años en la construcción de un área de la informática para el estudio de problemas didácticos (2003-2013)

Sylvia da Rosa

La didáctica es una disciplina en evolución, cuyo proceso abarca visiones diversas que atañen a sus contenidos, objetivos, alcances, modelos, compromisos, etc. Está en discusión por ejemplo, la relación entre una didáctica general (que existe como disciplina desde 1600) y las didácticas específicas (que aparecen recientemente (década de los 90) pero que están sólidamente establecidas).

Una didáctica específica considera parte fundamental de su objeto de estudio al contenido específico de la disciplina y por lo tanto es un área de la misma y asunto de sus investigadores. Por ejemplo, en la didáctica de la matemática, que ha realizado aportes muy importantes al tema, participan investigadores en matemática cuyo campo es la didáctica.

¿Por qué es importante estudiar los problemas didácticos?

Si trabajamos en enseñanza, trabajamos con cuestiones didácticas. Generalmente, lo hacemos en la práctica, esto quiere decir que actuamos y reflexionamos basándonos en nuestra experiencia, o las experiencias de otros, pero no estudiamos los problemas ni investigamos sobre ellos, sus causas y sus soluciones.

Otras veces nos interesamos en el estudio de dichos problemas y descubrimos que si bien esa manera de hacer las cosas funciona, conocer el por qué de determinadas metodologías y reflexionar sobre la práctica con fundamentos que ayuden a plantear preguntas y a buscar respuestas, no sólo puede ser útil para mejorar la práctica, sino que puede hacer aparecer aspectos interesantes de la propia disciplina, que de otro modo tal vez permanezcan ocultos. No todos los docentes deben dedicarse a esto pero sí debe haber un grupo que lo haga y elabore directrices para la práctica.

Nosotros tomamos un enfoque desarrollado por la didáctica de la matemática para contribuir a construir un área de la informática que estudie problemas didácticos. Dentro de las distintas escuelas de la didáctica de la matemática, adoptamos algunos principios, que son:

contar con una teoría epistemológica explícita que provea los fundamentos de la investigación (como la epistemología genética de Jean Piaget) contar con un modelo desde el cual pensar la aplicación de la teoría a la práctica docente (como teoría de las situaciones de Guy Brousseau) los estudios/investigaciones didácticos abarcan todos los niveles del sistema educativo (como lo es en otros países)

Agregamos uno que es:

crear ámbitos interdisciplinarios de estudio de los temas (como el NI FCC)

El área que estamos construyendo se apoya en esos cuatro pilares fundamentales. En esta ponencia, se presentan las características principales de cada uno de ellos, con especial énfasis en el tercero, dado que la discusión de estas cuestiones por las comunidades de investigadores, comienza a dar frutos muy interesantes en otros países. Para nuestra construcción constituyen aportes muy valiosos.

Verificación y Demostración

Guillermo Nigro

En esta comunicación se sugiere que el debate en torno a la posibilidad de demostrar la corrección de un programa está íntimamente relacionado, al menos en la discusión de DeMillo, et. alt. [1979] con el debate en torno al concepto de demostración matemática. El problema puede ser planteado del siguiente modo: Hoare sostiene que la programación es una actividad matemática; en cuanto tal, las propiedades de los programas (como la corrección de los mismos) puede ser establecida mediante un razonamiento deductivo. DeMillo, et. alt. sostienen también que la programación es una actividad matemática, y que por esta razón no podemos (o no tiene sentido pretender) razonar deductivamente sobre ellos. Lo que se quiere sugerir es que para dar sentido a esta controversia tenemos que posar el ojo sobre el concepto de demostración matemática. La distinción fundamental que se quiere traer a colación es la de demostración en sentido informal y la demostración en sentido formal; en el último caso, la lógica del siglo XX nos legó una caracterización precisa, sintáctica de prueba. Este parece ser el sentido en que Hoare habla de demostración. En este contexto, la empresa de la verificación se realiza en un ámbito exclusivamente formal; así la demostración es una demostración formal que establece que cierto enunciado (la especificación formalizada) es derivable en un sistema deductivo que podríamos reconocer como el programa. El punto de desacuerdo más importante que mi juicio presentan DeMillo, et. alt. es que las pruebas en matemática no son, en realidad capturables mediante la concepción sintáctica de la misma. En otras palabras: las demostraciones no son puramente formales i.e. sintácticas; por ende no es factible aceptar la exigencia sintactista. Ésta línea de argumentación podría implicar que lo que Hoare entiende por demostración no es del todo correcto. Sin embargo, hay una observación por parte de los autores que es de especial relevancia para esta discusión: no es factible esperar que en programación podamos trabajar en un contexto puramente sintáctico/formal. ¿Podemos siempre tener una formalización de la especificación i.e. una especificación formal? Si no podemos, entonces no podríamos tener pruebas formales; si siempre tenemos una formalización para la especificación, es decir, si siempre podemos extraer de los requisitos una especificación formal, entonces cabe la pregunta por la corrección de la formalización. Pero esto último siempre nos obligaría a considerar una instancia informal en la verificación de los programas. En este punto se encuentra el parte aguas de esta discusión epistemológica: ¿incluir una instancia informal implicar un demérito epistemológico? Parece claro que si se incluye esta instancia no habría una prueba absolutamente formal, ¿ello quiere decir que no podemos tener conocimiento deductivo?
REFERENCIAS DeMillo, R., Lipton, R. and Perlis, A. “Social processes and proofs of theorems and programs”. Commun. ACM 22,5 (May 1979), 271-280.

Hoare, C. A. R. “An Axiomatic Basis for Computer Programming”, en Program Verification, Y. Colburn, J. Fetzer y T. Rankin (eds.), Spinger, 1993, pp. 83-96.

NI FCC

EECC

Fechas importantes

  • 22 de setiembre apertura de convocatoria a ponencias
  • 27 de ocubre cierre de presentación de ponencias
  • 4 de noviembre notificación a autores
  • 16 de noviembe realización del encuentro

Lugar

  • Se realizará en el Edificio Polifuncional José Luis Massera, Senda Nelson Landoni esq. Julio Herrera y Reissig (anexo a la Facultad de Ingeniería - aulario)

Comité organizador