lunes, 15 de junio de 2015

Algorithms, Part I - Princeton University

Hola Mundo:

El Viernes 19 de Junio empezará a correr nuevamente el curso de Algoritmos, Part I de la Universidad de Princeton en Coursera, los profesores son nada más y nada menos que los Científicos de la Computación Robert Sedgewick y Kevin Wayne del Departamento de Computer Science de la Universidad de Princeton.

Los algoritmos son el core de las Ciencias de la Computación que están cambiando el mundo tal y como lo conocemos ahora, y Coursera nos brinda la oportunidad de aprender más de ellos, el formato es online con fechas de entrega de trabajos que se cumplen semanalmente (Due Dates).


 Clic aquí para ingresar al curso
Clic en la Imagen para acceder al curso

¿Chelo, y en qué consiste el curso?

Bueno, puedes visitar el link del curso (Aquí) para informarte, pero brevemente te puedo decir que aprenderás la información básica que todo programador serio (o por lo menos aquel que presume con las chicas de serlo) necesita conocer sobre Algoritmos y Estructuras de Datos, con énfasis en el análisis científico en el rendimiento de implementaciones en JAVA.

¿Y cuál es el contenido del curso?

Esta parte del curso que es la parte I cubre los siguientes algoritmos:

  • Análisis de algoritmos.
  • Union Find.
  • Binary Search.
  • Stacks, queues, bags.
  • Insertion sort, selection sort, shellsort, quicksort, 3-way quicksort, mergesort,heapsort.
  • Binary heaps, binary search trees, red-black trees.
  • Separate chaining and linear probing hash tables.
  • Graham scan.
  • kd-trees.

Algoritmos que no te enseñarán probablemente en ninguna universidad y que difícilmente entenderás en algunos libros.

Se ve genial ¿Y cuál es el formato del curso?

El curso durará seis semanas, cada semana contiene dos capítulos con video tutoriales que durán de 60 a 80 minutos.

Al finalizar los video tutoriales podrás tomar una evaluación (quizz) de los conocimientos adquiridos, te recomiendo tener hoja y lápiz cerca porque tendrás que realizar operaciones para responder las preguntas. Un script automatizado corrige al instante tu quizz  y con retroalimentación (con correciones de tus respuestas). Puedes intentarlo varias veces, las preguntas siempre cambian en cada intento.

La parte que más me gusta, al final de cada semana hay un "Homework", una tarea de programación que consiste en un caso práctico de cada capítulo, se nos indica el enunciado, el formato del código en JAVA y sus respectivas restricciones y un script automatizado corrige nuestro código al instante, código que previamente hemos subido a la plataforma.  Este script no sólo nos dice que tan bien o mal está nuestro programa sino que nos da medidas de rendimiento de nuestro algoritmo indicándonos donde debemos de mejorarlo.



Aquí una captura de pantalla de mi implementación de la tarea del primer capítulo sobre Análisis de Algoritmos y conectividad dinámica con "Union Find".


¿Hablaste de la parte I, habrá parte II?

¡Claro que sí! La parte II es el santo grial de los algoritmos de grafos, la fecha de inicio será pronto anunciada.

¿Para qué me servirá todo esto?

  • Cuantificarás el rendimiento de tu algoritmo (Notación asintótica, funciones de crecimiento de algoritmos, Notación "tilde").
  • Sabrás que cosa estás programando.
  • Podrás predecir el rendimiento de tus algoritmos.
  • Podrás implementar algoritmos en cualquier lenguaje de programación para solucionar problemas en la vida real.
  • Programarás con criterio Científico.
  • Implementarás algoritmos eficientes en tiempo y uso de memoria.
  • Construirás implementaciones de algoritmos que enfrenten datos masivos.
  • Serás un programador diferente.

¡Y lo mejor de todo! Estarás listo para los concursos de programación de plataformas como el Topcoder o Codeforces. Te veremos participando de los concursos de programación de Google y de Facebook.

¿Chelo, la última pregunta, cuánto cuesta?

No cuesta nada, el curso es totalmente gratuito, nos dan materiales y la referencia a la página del libro del autor, no se necesita ningún material adicional, eso sí el nivel es intermedio y hay que tener por lo menos una base en programación en JAVA.

¡Nos vemos en el curso! ¡A codear y hasta el próximo post! ¡go go go go go!

No hay comentarios :

Publicar un comentario