Descripción del proyecto

Curso Online

Curso sobre Diseño y técnicas algorítmicas

Visión general del curso sobre Diseño y técnicas algorítmicas

En este curso, parte del programa MicroMasters de Algoritmos y Estructuras de Datos, aprenderá técnicas e ideas algorítmicas básicas para problemas computacionales, que surgen en aplicaciones prácticas como ordenar y buscar, dividir y conquistar, algoritmos codiciosos y programación dinámica.

Este curso cubrirá teorías, que incluyen:

  • Cómo ordenar los datos y cómo ayuda la búsqueda
  • Cómo romper un gran problema en pedazos y resolverlos de forma recursiva
  • Cuando tiene sentido proceder con avidez
  • Cómo se utiliza la programación dinámica en los estudios genómicos

Practicará la resolución de problemas computacionales, el diseño de nuevos algoritmos y la implementación de soluciones de manera eficiente (para que se ejecuten en menos de un segundo).

Lo que aprenderás en este curso

  • Técnicas algorítmicas esenciales: algoritmos codiciosos, divide y vencerás, búsqueda binaria, clasificación, programación dinámica
  • Mejores prácticas para implementar algoritmos de manera eficiente
  • Formas de probar y depurar programas

Plan de estudio del curso

Módulo 1: Bienvenida

Aquí proporcionaremos una descripción general de dónde se utilizan los algoritmos y las estructuras de datos (pista: en todas partes) y lo guiaremos a través de algunos desafíos de programación de muestra. Los desafíos de programación representan una parte importante (¡y a menudo la más difícil!) De esta especialización porque la única forma de comprender completamente un algoritmo es implementarlo.

Escribir programas correctos y eficientes es difícil; por favor, no se sorprenda si no funcionan como lo planeó, ¡nuestros primeros programas tampoco funcionaron!

Lo ayudaremos en su viaje a través de la especialización mostrándole cómo implementar sus primeros desafíos de programación. También presentaremos técnicas de prueba que ayudarán a aumentar sus posibilidades de aprobar las tareas en su primer intento.

En caso de que su programa no funcione como se esperaba, le mostraremos cómo solucionarlo, incluso si aún no sabe en qué prueba está fallando su implementación.

Módulo 2: Introducción

  • En este módulo aprenderá que los programas basados en algoritmos eficientes pueden resolver el mismo problema miles de millones de veces más rápido que los programas basados en algoritmos ingenuos.
  • Aprenderá a estimar el tiempo de ejecución y la memoria de un algoritmo sin siquiera implementarlo. ¡Armado con este conocimiento, podrá comparar varios algoritmos, seleccionar los más eficientes y finalmente implementarlos como nuestros desafíos de programación!

Módulo 3: Algoritmos codiciosos

  • En este módulo, aprenderá sobre una clase de algoritmos aparentemente ingenuos pero poderosos llamados algoritmos codiciosos.
  • Después de que aprenda la idea clave detrás de los algoritmos codiciosos, puede sentir que representan la navaja suiza algorítmica que se puede aplicar para resolver casi todos los desafíos de programación en este curso.
  • Pero tenga cuidado: con algunas excepciones que cubriremos, ¡esta idea intuitiva rara vez funciona en la práctica! Por esta razón, es importante demostrar que un algoritmo codicioso siempre produce una solución óptima antes de usar este algoritmo.
  • Al final de este módulo, probaremos su intuición y gusto por los algoritmos codiciosos al ofrecer varios desafíos de programación.

Módulo 4: Divide y vencerás

  • En este módulo, aprenderá acerca de una poderosa técnica algorítmica llamada Divide and Conquer. Con base en esta técnica, verá cómo buscar en grandes bases de datos millones de veces más rápido que con la búsqueda lineal ingenua.
  • ¡Incluso aprenderá que la forma estándar de multiplicar números (que aprendió en la escuela primaria) está lejos de ser la más rápida!
  • Luego aplicaremos la técnica de divide y vencerás para diseñar dos algoritmos eficientes (clasificación por fusión y clasificación rápida) para clasificar listas enormes, un problema que encuentra muchas aplicaciones en la práctica.
  • Finalmente, mostraremos que estos dos algoritmos son óptimos, es decir, ¡ningún algoritmo puede ordenar más rápido!

Módulos 5 y 6: Programación dinámica

  • En este último módulo del curso, aprenderá sobre la poderosa técnica algorítmica para resolver muchos problemas de optimización llamada Programación dinámica. Resultó que la programación dinámica puede resolver muchos problemas que evaden todos los intentos de resolverlos utilizando una estrategia codiciosa o de divide y vencerás.
  • Hay innumerables aplicaciones de la programación dinámica en la práctica: desde maximizar los ingresos publicitarios de una estación de televisión, buscar páginas de Internet similares hasta encontrar genes (el problema en el que los biólogos necesitan encontrar el número mínimo de mutaciones para transformar un gen en otro).
  • Aprenderá cómo la misma idea ayuda a realizar correcciones ortográficas automáticamente y a mostrar las diferencias entre dos versiones del mismo texto.

Curso Online sobre Diseño y Técnicas algorítmicas

  • Curso Online sobre Diseño y Técnicas algorítmicas
  • Institución: San Diego
  • Costo: Gratis
  • Certificado: Incluye
  • Modalidad: Online
  • Inicio: Ver Fechas
  • Duración: 6 semanas
  • Dedicación: 8 a 10 horas por semana
  • Idioma: Inglés
  • Subtítulos: Inglés
  • Ir al curso

Etiquetas: