martes, 30 de diciembre de 2014

¡Gracias, 2014... You rocked!

Se acaba, se acabaaaa, el año 2014. (8) ¡Un excelente año! A pesar de las dificultades y los tristes momentos, fue un año de alegrías, de éxitos y de inicio de proyectos futuros. Tenía un tiempo sin escribir algo en este blog, pero quisiera aprovechar hoy para compartir con ustedes algunas de las cosas por las que estoy agradecido este año.

This year was legen... wait for it... dary! Legendary!

En primer lugar y por mucho el logro más importante de este año. ¡Finalmente defendí mi tesis de maestría y me gradué! Al fin Magíster en Ciencias de la Computación. Fueron casi 5 años de arduo trabajo (bueno, hubo un año no tan arduo, pero de resto si, jajaja). Además la tesis ganó mención de honor sobresaliente, lo que me llena de orgullo y de ganas de seguir aprendiendo y trabajando.

Además, tuve el gusto continuado de ser entrenador de los equipos de la USB que participan en los maratones de programación ACM-ICPC. Tuvimos un excelente local, que aunque fue preparado corriendo salió realmente excelente. ¡Gracias a todos los que lo hicieron posible! Luego, con los tres equipos campeones fuimos a participar en el Super-Regional Sudamericano con sede en la UDO de Anzoátegui. Aunque no tuvimos nada de playa, regresamos a casa con una gran recompensa: ¡Una clasificación al mundial en Marruecos 2015! Es la primera vez que Venezuela clasifica en 5 años, El equipo Team Phoenix, conformado por Wilmer Bandres, José Sanchez y José Gregorio Piñero obtuvo su clasificación haciendo 6 de los 11 problemas. Una cantidad de verdad admirable. Y más aún que han seguido entrenando para dar la talla en el mundial. ¡Sé que dejaremos el nombre de Venezuela en alto!

Recientemente tuve el privilegio y el gusto de recibir un inesperado halago: un premio a la excelencia docente, otorgado por la Federación de Centro de Estudiantes de la USB, decidido en votación de todos los estudiantes (bueno, los que se enteraron por las redes sociales, jeje). No puedo describir con palabras lo agradecido que estoy con tal honor y lo mucho que me inspira para continuar mejorando y aprendiendo.

Este año tuve la oportunidad de ser tutor de 5 pasantes: Erick Dos Ramos, Domingo de Abreu, Oriana Gómez, Carla Urrea y Andrea Balbás. Ya uno de ellos defendió, otro entregó su libro y a las otras les falta poco (básicamente por mi culpa, pues les faltan mis correcciones, jajaja). Ahora comienzo con un pasante más: José Lezama; y nada menos que 4 tesistas: José Luis Jimenez, Joel Araujo, Matteo Ferrando y David Lilue; y 2 en proyectos a dedicación exclusiva: Johan Gonzalez y Gabriel Casique. (Seeeh, no perdí el tiempo. XD). Todos los proyectos en los que están trabajando me entusiasman muchísimo y tengo altas expectativas con sus aplicaciones. ¡De verdad es emocionante!

Además he tenido algunos otros éxitos en progreso que prefiero no compartir aún, hasta que sea seguro. Seguramente en Enero escucharán noticias de uno de ellos y en Febrero de otro. Pero si les adelanto que es algo emocionante. ¡Una oportunidad para aprender mucho más sin duda!

Por último, pero no menos importante. Este año tuve el gusto de continuar compartiendo con amigos excelentes, una bonita familia y conociendo a nuevas personas que son realmente geniales. ¡Me considero afortunado de conocer a tantas excelentes personas! Recibo una gran cantidad de cariño a diario y puedo retribuirlo de muchas formas, con mi amigos y familia o con el trabajo que amo. ¡Gracias a todos!

En fin, al 2015 le sale una seria competencia para ganarle al 2014, pero tengo un excelente presentimiento de que será aún más épico. ¡Gracias a todos los que formaron parte de mi vida este año! (Éste es como el "mi año en facebook" pero mucho más largo, detallado y empalagoso, jajaja). Nos seguiremos viendo y compartiendo en el 2015. ¡Feliz año nuevo a todos y hasta una próxima entrada! :D

martes, 14 de octubre de 2014

De aprender y enseñar

Como muchos que me conocen saben, me encanta mi carrera y me apasiona aprender siempre nuevas cosas y mejorar día a día. Pero hay una cosa que me mueve más que nada en el mundo: enseñar, compartir, ayudar a otros a crecer. Creo que en cada persona existe un potencial enorme de grandeza. Poder ser aunque sea una pequeña parte de lo que impulse a una persona a encontrar esa grandeza es un orgullo y un privilegio sin duda. Es la fuerza que me mueve y mi propósito de vida. :)

No podía dejar pasar este chiste malo, jajaja.

Desde que comencé a estudiar mi carrera, siempre me he preocupado por contribuir (de la mejor manera que mi limitada experiencia me permitiera) en ayudar a los demás y mejorar mi carrera. Fui preparador la mayor parte de mi pregrado y luego de eso, ayudante académico y finalmente profesor. Hasta donde la voz y el voto me permitieron en cada etapa, siempre intenté proponer nuevas herramientas que motivaran a aprender. Intentar mostrar un poco eso que siento al aprender algo nuevo, de la inspiración y el descubrimiento, para que otros puedan contagiarse quizá un poco y seguir aprendiendo y descubriendo por su cuenta.

Es por todo esto que muchas veces actúo como actúo. Soy el "profesor niño", aquel al que se confunde con un estudiante más si no fuera por la cara de viejo, jajaja. Muchos profesores creen que el camino al aprendizaje es a través del respeto y la distancia. ¡No estoy de acuerdo! Honestamente, creo que el mejor camino al aprendizaje es a través de la confianza, el humor y la automotivación constante. No sólo se crea el ambiente para que los demás aprendan más fácilmente, sino que a cambio terminas aprendiendo muchísimo más de tus estudiantes, tanto académica como personalmente.

Las responsabilidades de un profesor en una universidad, lamentablemente, no están centradas en la docencia y en la formación de los futuros gigantes. En cambio, está centrada en el descubrimiento y diseminación de nuevas ideas a través de la investigación. A pesar de que es algo que también me gusta y por lo que tengo un respeto enorme, no es realmente lo que me apasiona y es respecto a este único atributo que se mide la valía de un profesor e incluso de una universidad. He visto estudiantes de diferentes universidades que se enorgullecen al ver los rankings de universidades y ver sus propias casas en la delantera. Pero ese ranking lamentablemente no tiene nada que ver con la calidad de sus egresados, sino con la cantidad de publicaciones realizadas por profesores adscritos a ellas.

Creo que debería existir la figura del profesor docente, que pueda dedicarse a enseñar y no tanto a investigar. Así mismo la del profesor investigador, que sea justamente lo contrario. Conozco profesores a los que no les gusta enseñar, pero que son excelentes investigadores y eso es lo que les motiva. Eso está muy bien y tienen la suerte de vivir en un mundo donde ese talento es dado mayor importancia, pero deberían existir alternativas a ese filosofía. A su vez debería existir alguna medida, aunque sea difusa, de la calidad docente de una universidad (existen clasificaciones culturalmente aceptadas, pero ninguna formal o basada en argumentos sólidos). Y no lo digo por el reconocimiento involucrado, sino para que aquellos a los que nos apasiona enseñar tengamos la libertad de centrar nuestro trabajo y energía en justamente eso.

Y bueno, cuando comencé a escribir sobre esta entrada, en realidad se trataba de otra cosa pero me desvié, jajaja. Tengo en planes (aunque sin fecha de inicio estipulada) volver a estudiar mi carrera completa por cuenta propia y afinar los detalles que no comprendí por completo. De hecho, he estado haciendo eso ya por algún tiempo. Durante mis estudios, siempre que una materia me gustaba pero no la comprendía completamente hacía lo posible por dar la preparaduría en algún momento. Eso me pasó con una de mis materias favoritas: Traductores e Interpretadores. ¡Esa materia me encantó! Pero a duras penas la pasé (51/100 like a boss, jajaja). Y me fijé comprenderla, enseñándola. Y así fue. :)

¿Cómo planeo repasar mi carrera ahora? Leyendo más que todo, pero con un objetivo concreto en mente: Realizar un repositorio de guías y ejemplos de cada cosa que repase. De esa manera, no sólo aprenderé con mayor profundidad, sino que dejaré algo para que los demás puedan apoyarse en su aprendizaje también. Es un proyecto personal de gran escala y para el cual lamentablemente no cuento con tiempo ahora, pero me encantaría comenzarlo lo más pronto posible.

Y bueno, esto era lo que quería compartir por ahora con ustedes. Solamente un desahogo personal. Cuento con la suerte y el honor de pertenecer a grupos de investigación conformado por algunas de las mejores personas y docentes que conozco, lo cual ha hecho todo muy divertido e interesante. Pero siempre me hace falta ese algo extra especial. El brillo en la mirada de una persona que no sólo acaba de comprender algo, sino que disfrutó aprenderlo y está listo para utilizarlo en su vida. El agradecimiento sincero, aunque sea tácito, de quien halló su vocación y camino en parte con tu ayuda. Ese rincón en el corazón de todas las personas que compartieron contigo y con quienes lograste crecer mutuamente. Son cosas como esa a las que no se les puede poner precio y llenan la vida de color (seh, momento cursi del día patrocinado por Ricardo, jajaja). Hasta una próxima entrada y gracias por seguir leyendo estas locuras ocasionales. n_n

sábado, 4 de octubre de 2014

Semana CoNCISa

Finalmente llegó el momento de colgar el distintivo y disfrutar de un merecido día de descanso. ¡Ha concluido la 2da Escuela Venezolana de Informática y Conferencia Nacional de Computación, Informática y Sistemas!

¡COnferencia Nacional de Computación, Informática y SistemAs!

Fue una semana de trabajo duro, pero que valió muchísimo la pena. Ambos eventos (EVI y CoNCISa) salieron super bien y creo que los asistentes salieron bastante satisfechos. Tuve el gusto y el privilegio de ser parte del equipo organizador del evento (aunque la invitación fue tardía, y no pude ayudar en el previo tanto como hubiera querido, pero igual pude dar mi todo para que el evento saliera bien, jeje). Tuve la oportunidad de compartir con queridos colegas ya conocidos y la dicha de conocer a otros más. Además, tuvimos la invaluable ayuda de un equipo de logística formado por estudiantes voluntarios de varias universidades. A la mayoría ya los conocía y son personas geniales. Los que no, pronto descubrí que también eran excelentes personas y pasamos una genial semana entre todos haciendo posible estos eventos (y haciendo Origami, jajaja).

Ambos eventos fueron con sede en la UCAB (Universidad Católica Andrés Bello). Como otras veces que esta universidad ha sido casa para eventos académicos, el lugar fue excelente y todas las cosas funcionaron muy bien. Además, para mi, la UCAB tiene un "no se qué" que me hace sentir muy a gusto. Siempre me ha parecido que tiene un ambiente muy relajante y unos jardines sumamente estéticos y bien cuidados. Después de mi adorada USB, creo que es uno de los sitios en donde me siento más a gusto. Además, estaba lleno de gente genial de muchas diferentes universidades, lo cual lo hizo aún mejor. :)

No pude entrar a muchas de las charlas, ya que estuve ocupado en la organización. Sin embargo, tuve el gusto de poder asistir a tres muy buenos subeventos:

  • En primer lugar, fui el moderador del tutorial "Herramientas para la Gestión de Eventos Académicos en Línea", dictado virtualmente por el prof. Raymond Marquina de la ULA (excelente persona y profesional, al menos en lo poco que tuve el gusto de compartir con él). A pesar de un inconveniente con la luz, que se fue en casa del presentador y tuvimos que sobrevivir con puro audio vía plan de datos (ese si es un plan de datos vale, jajaja), la charla estuvo buenísima y aprendí bastante.
  • En segundo lugar, pude asistir y ser chair de la 4ta (y última) tanda de ponencias del segundo día de CoNCISa. Hubo muchas buenas charlas de diferentes temas, en realidad muy interesantes. Además, aquí presenté yo mismo una charla llamada "Hacia la Verificación de Programas que Manipulan Estructuras Recursivas Generales Mediante Apuntadores", correspondiente al trabajo enviado en conjunto con Jesús Ravelo. Volví a leer el artículo preparando la presentación y sigo enormemente orgulloso del resultado y agradecido por toda la ayuda, guía y amistad de Jesús. ¡Es en verdad invaluable! Y la presentación creo que salió bastante bien, aunque quedaría de la audiencia constatarlo, jajaja.
  • En tercer lugar, pude asistir a la presentación del premio a la destacada trayectoria para mi amigo y profesor, Jorge Baralt. Además de emotivo, todo el acto fue en realidad super gracioso, por diversas razones. Nada más la exposición del curriculum fueron casi 10 minutos, jajaja. Y el discurso de aceptación fue lo máximo: "Me dijeron que tengo solo dos minutos... El primero y el último me imagino." y "Seré breve entonces: Gracias... ¿Ahh? ¿Un poco menos breve? Muy bien... Muchas gracias", jajaja. Después de ahí si se enserió un poco el discurso y dijo algunas excelentes e inspiradoras palabras. ¡Qué gusto y qué privilegio conocer a una persona tan valiosa en verdad! :)

Fue una semana interesante y entretenida, aunque fuerte. Una cosa divertida es que los últimos dos días y medio estuve encargado de las ventas de souvenirs del evento. He descubierto mi don y gusto de venta, jajaja. La apodaron "La tiendita de Ricardo" y se pudo vender unas cuantas franelas, chemisses y hasta libros con las memorias de CoNCISa del año pasado. Además, vendimos tantas membresías a la Sociedad Venezolana de Computación que nos quedamos sin facturas. Fue divertido eso, jajaja. Cuando no estuve en la tiendita, estuve más que todo en la mesa de registro. ¡Ese trabajo me encanta! Tengo la oportunidad de tratar y conocer a mucha gente nueva, y ayudarlos a tener la mejor experiencia posible. Recibí a cada uno con una sonrisa, no sólo por que es lo indicado, sino por que estaba genuinamente feliz de estar ahí ayudando y conociendo nueva gente.

El acto de clausura también estuvo buenísimo, con una agrupación tributo de Les Luthiers llamada "Los Experimentados" (o algo así). ¡EXCELENTE! Hicieron dos obras originales que estuvieron realmente buenas. Es una lástima que sean prácticamente invisibles en la web. No he podido encontrar nada sobre ellos posterior al evento, pero fue realmente genial. ¡Ojala logren surgir y triunfar como grupo!

En fin, excelente semana. Tuve el gusto de conocer a mucha gente nueva y compartir con viejos y nuevos amigos. Me encantó la hermandad que vi entre las diferentes universidades. Sin las competencias, ni los delirios de superioridad, ni discriminaciones. Tan sólo un grupo de gente unida por su pasión por la computación y las ganas de ayudar a realizar un gran evento. ¡Qué orgullo haber formado parte de este gran equipo! Espero poder colaborar nuevamente el año que viene y en cualquier otro evento de este estilo. Fue una gran experiencia en verdad. ¡Gracias a todos! :D

Y esto era lo que quería compartir por ahora. Tenía bastante tiempo sin escribir, jeje. He estado realmente ocupado, con mil cosas que hacer. Estas semanas venideras ya deberían ser un poco más ligeras, pero ya veremos, jajaja. ¡Hasta una próxima entrada!

sábado, 23 de agosto de 2014

El épico origen de "bulda e' bien"

Hoy quiero compartir con ustedes una historia graciosa y épica, de como nació el alias que uso para un montón de cosas en Internet: bulda e' bien.

Cuenta la leyenda...

Como toda buena historia... comienza en la biblioteca de la USB (ahh?). Antes de comenzar la universidad nunca vi la necesidad de abrirme un correo electrónico (super material computista yo, jajaja.) Y cuando llegué a la universidad me abrieron automáticamente mi correo con el USB-ID (el carné) y comencé a usarlo. Pero los límites de ese correo eran ridículos, aún para la época y decidí probar una nueva página que ofrecía servicio de correo electrónico. Todo el mundo tenía uno y ya era hora de que me hiciera una cuenta. (Botando la cédula en 3... 2... 1...) Me abrí un Hotmail.

¿Y que tiene que ver todo esto con la biblioteca de la USB? Bueno, en esa época (yo entré a la USB en el 2003) uno podía anotarse en una lista para tener 45 minutos de Internet gratis en el 3er piso. ¡Y era lo máximo! Biblioteca abría a las 8:30am. y ya a las 7:00am. había gente esperando y haciendo cola. ¡Pero era Internet y GRATIS! Como cambian los tiempos, jajaja. Lo peor es que el Internet que ofrecían era leeento, pero era mejor que nada (y más aún, realmente no conocíamos el Internet rápido aún, jajaja). ¿Descargar una película? LOOOL, nope!

Un día de esos fui con un pana a nuestros 45 minutos de internet en la biblioteca y él nota que no tengo Hotmail. Ya yo estaba pensando abrir una cuenta, pero el insistió en que la creara ahí mismo. ¡Bueno, si va! ¿Pero que nombre habría de ponerle? Pensé muchas cosas geeks y de cero buen gusto, que si con Darth Vader, Goku y cosas así, pero todas estaban ocupadas (¿Qué pasa con la humanidad? Jajaja). Y ya acabándose el tiempo le digo al pana "Coye, no quiero usar mi nombre y ya. ¡Qué aburrido! Me gustaría algo divertido, un nombre bulda e' bien" (seh, yo era un tuki total, jajaja). Los dos lo pensamos al mismo tiempo... ¡Ese era el nombre perfecto! "bulda_e_bien@hotmail.com" y estaba disponible.

¡Tenía un nuevo correo! :D Sólo hacía falta llenar la información personal. Pero había un pequeño detalle: En esa época todo el mundo sufría de una paranoia horrible de no compartir nunca su información real por Internet y confieso que yo no era la excepción (y ahora la gente hasta hace "check in" en los lugares donde está para que los que quieran secuestrarlos no pasen tanto trabajo; tan considerados vale). Pero en esa época ni el nombre se acostumbraba poner a la ligera. Como era un servicio nuevo, pues desconfiaba de él y decidí inventarme un nombre ficticio. Me puse de nombre "Helketeko" y de apellido "Jioanoche" (seh seh, era extremadamente tuki, jajajajja).

Por un tiempo dejé eso así y todo relajado. A veces conseguía correos cómicos y se los quería reenviar a mi papá, pero aparentemente no le estaban llegando. Un día le pregunto y efectivamente me dice que no le llegaban. Hmmm... Voy a revisar con él y veo un poco de correos sin abrir. El me dice que está molesto por que le han estado mandando spam o virus o que se yo y siempre es desde el mismo correo. Un tal "Helketeko Jioanoche". Y yo LOOOOOOOOOL (en esa época no se decía tanto LOL, pero ustedes entienden, jajaja). ¡Ese soy yo! Jajajajja. Se me había olvidado completamente que le había puesto eso en la información personal y no sabía que se mostraba. ¡Que risa!

Pero, ya va. Entonces recordé que también había usado ese correo para cosas de la uni y mandar correos con dudas y eso. ¡Que pena! Debo haberle regalado horas de risas y pena ajena a mis profesores, jajaja. En seguida fui al correo y cambié la información personal con la verdadera.

Igual ese correo no duró mucho. Hotmail pasó de moda rápidamente en lo que nacieron otros servicios muy superiores. En especial cuando me invitaron a Gmail (fui uno de los primeros que conozco en tener una cuenta Gmail, ajem ajem, jajaja) y ahí me quedé hasta ahorita. El nombre "bulda e' bien" ha sobrevivido de varias maneras. Los cómics, mi usuario en páginas como Topcoder, Spoj y hasta Instagram, incluso en el nombre de este blog. Pero todo empezó un día en la biblioteca de la USB.

Y esta era la historia épica que quería contarles. ¡Todavía me mata de la risa! Espero les haya gustado, jajaja. ¡Hasta una próxima entrada! :D

jueves, 21 de agosto de 2014

Retomando un viejo proyecto: Guerra de Clases

Como muchos saben (y los que no pueden inferir de que a cada rato comparto cosas de este blog, jajaja), me gusta escribir. Además de este blog y del blog para mis cómics ( Bulda-E-Bien - A Web Comic ), también llevo un blog para cosas que escribo ( Ideas Nada Mas ), tanto ideas locas como mini-relatos. Aunque confieso que no escribo tanto como antes o como quisiera en ese blog, jeje.

O quizá P = NP. ¿Quién sabe? :D

En el 2010 escribí un cuento llamado "Guerra de Clases" ( Guerra De Clases ), que trataba de una guerra entre los clanes P y NP (seh, las clases de complejidad computacional, jajaja). Al final me había gustado bastante el resultado, pero lo dejé hasta ahí.

En el 2012 pensé que ese cuento podría expandirse y volverse quizá un mini-libro completo con bastantes referencias gallas a teoría de lenguajes. Realicé una planificación para la expansión del cuento y escribí el capítulo 0: "Igualdad" ( Guerra de Clases: Capítulo 0 - Igualdad ). Peeeero, también quedó hasta ahí. Realmente no continué con el proyecto.

En estos días decidí revisar las cosas que tenía en un disco duro viejo y encuentro una carpeta con cuentos e ideas para cuentos. ¿Con que me consigo? ¡La guerra de clases! Y pensé que quizá sea hora de retomar ese proyecto. Así que saqué papel y lapiz (o más bien teclado y LaTeX, jajaja) y comencé a actualizar lo que ya tenía. ¿El resultado? Una nueva versión para el primer capítulo, más pulida y organizada (creo yo).

Pueden leerla en el siguiente enlace:

¿Qué opinan? :D

El plan es que tenga unos 10 capítulos, lo que en promedio lo haría como de 40 páginas (no muy largo). Aunque quizá llegue una inspiración brutal y se extienda un poco más, jajaja. ¿Quién sabe? XD

Y bueno, eso es lo que quería compartir por ahora, quizá pronto vuelva a escribir sobre el siguiente capítulo. ¡Hasta una próxima entrada! :D

Capítulos posteriores:

( Capítulo 2 - Un nuevo y grandioso poder )

jueves, 14 de agosto de 2014

Discreto, Funcional, Implacable...

Como algunos ya saben, desde hace un tiempo he estado interesado en aprovechar las facilidades que trae un lenguaje funcional puro en la enseñanza de las matemáticas discretas. La primera entrada al respecto en este blog está aquí: ( Discretamente hablando: Haskell ). En esta ocasión quiero continuar con esa discusión, planteando una implementación directa del primer tema que se toca en el curso de Estructuras Discretas III de la USB: Los números enteros.

Like a sir, indeed!

Para este curso se usan las muy completas guías que realizó el profesor Yriarte (disponibles en: http://ldc.usb.ve/~yriarte/d2index.html). Que plantean muchos de los conceptos y propiedades importantes en un lenguaje fácil de entender (además que esté en Español, lo cual ayuda mucho a quien no maneja del todo el Inglés). Sin embargo, creo que se puede ir mucho más allá de una guía estática y convertirlo en una ayuda interactiva y flexible mediante el uso de un lenguaje como Haskell.

¿Por qué Haskell? Porque es un lenguaje funcional puro, de muy alto nivel, en el que las definiciones matemáticas abstractas son casi directamente plasmables de forma clara y compacta. Además, el sistema de tipos estático ayuda en gran medida a la correcta definición de las funciones y los tipos de interés. ¿Por que no algo más especializado como Coq o Idris? (Excelente sugerencia de Manuel Gómez en la entrada anterior) Las únicas razones válidas hasta el momento: tiempo y falta de experiencia. Estos lenguajes/herramientas tienen sistemas de tipo mucho más elaborados y rigurosos que permitirían mucha más confianza en las definiciones hechas. Incluso, permitirían la elaboración de pruebas simbólicas en el contexto del mismo lenguaje (ver: Idris: verifying a monoid). Sin embargo, explorar las capacidades de estos lenguajes y de como acotarlas a un nivel que sea a la vez correcto, pedagógico y práctico, es algo que tomaría tiempo y por tanto estaría sujeto a una próxima iteración de cambios.

Antes de comenzar con los temas correspondientes a Estructuras Discretas III, hacen falta algunos preliminares (idealmente, ya se hubiera usado un lenguaje como Haskell al menos en Estructuras Discretas II, pero no es el caso en esta ocasión). En particular: lo que quiere decir poder hacer aritmética sobre un tipo determinado y el tipo de los números naturales. Nótese que hablo de tipos en vez de conjuntos. ¡Esa es una de las principales ventajas del enfoque funcional! Se desliga de la fundamentación en conjuntos (heterogénea y complicada) a una fundamentación en tipos (homogénea y constructiva). Para una discusión mucho más elaborada de esto basta ver cualquier libro de teoría de tipos básica y empezar a notar todas las ventajas. Teorías de tipos más complejas dan aún más comodidades, a expensas de claridad en la presentación y por tanto se intentará mantener la presentación lo más sencilla posible (por ejemplo, la igualdad será considerada una proposición, no un tipo como es costumbre en teoría de tipos).

A continuación un archivo Haskell con la implementación de los preliminares necesarios hasta el momento:


A continuación un archivo Haskell con la implementación de los números naturales como números de Church:


Una vez se han establecido los preliminares, se puede comenzar a tocar temas de Estructuras Discretas III. La primera guía de Yriarte (ver: Capítulo Uno) se trata de los números enteros. En particular, la sección 1.2 los define y plantea algunas propiedades sobre los mismos. A continuación un archivo Haskell con la implementación de los números enteros, según la guía antes mencionada:


Es notable como poco a poco aumenta el nivel de abstracción hasta el punto que, en la definición de la función valor absoluto (abs), la implementación interna y complicada de números enteros se vuelve completamente transparente. ¡Esta es la belleza de una teoría constructiva!

Desventajas: Hay una inconsistencia entre la definición formal de los números enteros y la que plantea el tipo en Haskell. Los enteros son clases de equivalencia (conjunto cociente del producto N x N con respecto a la relación planteada en la ecuación 1.1). En Haskell, son tratados simplemente como miembros del producto N x N. Esto por varias razones: La guía tiene la misma inconsistencia con respecto a la definición, pues plantea las propiedades y definiciones posteriores en términos de N x N y no del conjunto cociente. Pero la más importante de las razones sería que realmente no encuentro una manera fácil e intuitiva de construir un tipo que corresponda a clases de equivalencia, sin entrar en temas muy oscuros como para una materia introductoria. (Se aceptan sugerencias en este punto).

A través de las definiciones en Haskell se puede notar una falta de estandarización en los nombres. Por ejemplo, a veces las variables son x, y, z... otras son m, n, p... y otras son a, b, c... sin motivo aparente.  Estas son importadas directamente de la guía, para no chocar con los nombres ahí utilizados. Además, algunas proposiciones son "propiedades" y otras son "teoremas". Ambas son demostrables a partir de las definiciones dadas. ¿Por qué la distinción? Ese tipo de detalles y muchas otras cosas más que me parece que faltan me hacen pensar que quizá sea más interesante, en vez de implementar un apoyo a las guían que ya existen, hacer un reboot y reescribir las guías desde un punto de vista funcional. ¡Quizá hasta un libro! Independiente del curso y general para cualquiera interesado en hacer matemáticas discretas desde un punto de vista funcional. Hasta les tengo el nombre ya (hint: el título de esta entrada es un spoiler). Se llamaría "Discreto, Funcional, Implacable..." y me imagino que la portada sería algo como un James Bond sosteniendo un arma que en realidad es un lambda. Pero esos ya son detalles no tan importantes (aunque divertidos. XD).

¿Qué opinan? ¿Va por buen camino? Gracias a muchos comentarios de diversas personas la cosa ha ido tomando forma. Me gustaría seguir recibiendo opiniones con respecto a esto para enriquecerlo y terminar con una propuesta sólida, implementable y divertida. ¡Muchas gracias a todos los que han ayudado (y a los que ayudarán. XD)!

Hasta una próxima entrada. :)

martes, 12 de agosto de 2014

Coursera... ¡Nostalgia Épica!

Mi hobby preferido, como mucho saben, es aprender (seh, la oración más galla ever, jajaja). ¡Pero es así! Me emociona aprender de muchos diferentes temas, tanto en computación como en otras áreas. Por eso, cuando descubrí la página Coursera, hallé un verdadero nuevo amor. Claro, eso hasta que la nación del fuego atacó (entiéndase la nación del fuego como la tesis de la maestría, jajaja).

¡Coursera Rocks! \m/

El primer curso que hice en Coursera fue "Natural Language Processing" de Stanford, en Marzo del 2012. ¡Excelente curso! Y el sistema de aprendizaje online de Coursera me pareció extraordinario. A partir de ese momento tomé un montón de otros cursos, cada uno mejor que el anterior. En ocasiones podía estar viendo de 3 a 6 cursos simultáneamente y fabricaba el tiempo para cumplir con eso y con todas mis demás responsabilidades. Claro, llegó un momento en que las demás responsabilidades se hicieron demasiadas y de carácter urgente, por lo que tuve que abandonarlo. El último curso que logré terminar fue "An Introduction to Functional Analysis" de École Centrale Paris, en Enero del 2014. Este curso NO JUGÓ CARRITOS. Fue sin duda uno de los más difíciles, pero también uno de los más interesantes. :)

Ahora que terminé la maestría finalmente, aún no he tenido tiempo de volver a Coursera, ya que tengo muchas otras responsabilidades pendientes. Recordando todas las cosas interesantes que he aprendido en esa página, me da nostalgia. Me gustaría volver a tener todo el tiempo para seguir aprendiendo aquí, pero seguramente pronto se podrá nuevamente aprovechar ese conocimiento tan disponible y de excelente calidad.

Y bueno, como para dar una idea de la calidad de fiebre que tuve con Coursera entre 2012 y principios de 2014, pongo aquí una lista con todos los cursos para los cuales gané un certificado, clasificados por el área del curso:
  • Computación:
    • "Natural Language Processing"
      • Universidad: Stanford
      • Marzo de 2012
      • Más información: (Enlace)
    • "Functional Programming Principles in Scala"
      • Universidad: EPFL
      • Septiembre de 2012
      • Más información: (Enlace)
    • "Compilers"
      • Universidad: Stanford
      • Octubre de 2012
      • Más información: (Enlace)
    • "Algorithms: Design And Analysis, Part 1"
      • Universidad: Stanford
      • Julio de 2013
      • Más información: (Enlace)
    • "Algorithms: Design And Analysis, Part 2"
      • Universidad: Stanford
      • Septiembre de 2013
      • Más información: (Enlace)
    • "Artificial Intelligence Planning"
      • Universidad: Edinburgh
      • Enero de 2014
      • Más información: (Enlace)
  • Física:
    • "Quantum Mechanics and Quantum Computation"
      • Universidad: Berkeley
      • Julio de 2012
      • Más información: (Enlace)
    • "Introduction to Astronomy"
      • Universidad: Duke
      • Noviembre de 2012
      • Más información: (Enlace)
    • "Volcanic Eruptions: A Material Science"
      • Universidad: LMU
      • Julio de 2013
      • Más información: (Enlace)
    • "From The Big Bang To Dark Energy"
      • Universidad: Tokyo
      • Septiembre de 2013
      • Más información: (Enlace)
  • Matemáticas:
    • "Linear and Discrete Optimization"
      • Universidad: EPFL
      • Febrero de 2013
      • Más información: (Enlace)
    • "Introduction to Mathematical Thinking"
      • Universidad: Stanford
      • Septiembre de 2013
      • Más información: (Enlace)
    • "Calculus Two: Sequences and Series"
      • Universidad: Ohio State
      • Septiembre de 2013
      • Más información: (Enlace)
    • "An Introduction to Functional Analysis"
      • Universidad: École Centrale Paris
      • Enero de 2014
      • Más información: (Enlace)
  • Psicología:
    • "Gamification"
      • Universidad: Pennsylvania
      • Agosto de 2012
      • Más información: (Enlace)
    • "Introduction to Psychology"
      • Universidad: Toronto
      • Mayo de 2013
      • Más información: (Enlace)
    • "Social Psychology"
      • Universidad: Wesleyan
      • Agosto de 2014
      • Más información: (Enlace)
    • "Introduction to Communication Science"
      • Universidad: Amsterdam
      • Enero de 2014
      • Más información: (Enlace)
  • Filosofía:
    • "Introduction to Philosophy"
      • Universidad: Edinburgh
      • Enero de 2013
      • Más información: (Enlace)
    • "Introduction to Mathematical Philosophy"
      • Universidad: LMU
      • Julio de 2013
      • Más información: (Enlace)
    • "The Ancient Greeks"
      • Universidad: Wesleyan
      • Septiembre de 2013
      • Más información: (Enlace)
  • Misceláneos:
    • "Writing in the Sciences"
      • Universidad: Stanford
      • Septiembre de 2012
      • Más información: (Enlace)
    • "History of Rock, Part One"
      • Universidad: Rochester
      • Mayo de 2013
      • Más información: (Enlace)
    • "History of Rock, Part Two"
      • Universidad: Rochester
      • Julio de 2013
      • Más información: (Enlace)
    • "Undestanding Media By Understanding Google"
      • Universidad: Northwestern
      • Septiembre de 2013
      • Más información: (Enlace)
Nada más y nada menos que 25 cursos, sin contar los que hice sin recibir certificado (ya sea por que no ofrecían o por que no tuve la oportunidad de terminarlos), jajaja. Cada uno fue excelente, aunque si tuviera que hacer un top 5 de los que más me gustaron sería el siguiente:
  1. "Quantum Mechanics and Quantum Computation"
  2. "Social Psychology"
  3. "Introduction to Astronomy"
  4. "Introduction to Psychology"
  5. "An Introduction to Functional Analysis"
Es notable que no coloco alguno en computación, pero no porque hayan sido malos. Como computista, los cursos que hice de computación fueron más un repaso que otra cosa y como tal no se hicieron tan interesantes como los demás. Sin embargo los cursos de diseño de algoritmos son realmente excelentes y recomendables para cualquier computista que quiera ser íntegro como profesional. :)

Y bueno, habiéndome desahogado un poco de mi nostalgia épica, me despido. ¡Hasta una próxima entrada! :)