• Autor de la entrada:
  • Categoría de la entrada:Coursera / Cursos


El siguiente curso gratuito está dirigido para todas aquellas personas interesadas en aprender sobre las estructuras de datos.

Este curso forma parte de un programa especial, siendo este, el segundo de 6.

Por lo que te dejamos el curso anterior aquí abajo.



Acerca de Programa especializado: Estructuras de datos y algoritmos

La leyenda de la informática Donald Knuth dijo una vez: “No entiendo las cosas a menos que intente programarlas”. También creemos que la mejor manera de aprender un algoritmo es programarlo.

Sin embargo, muchos libros excelentes y cursos en línea sobre algoritmos, que se destacan en la introducción de ideas algorítmicas, aún no han logrado enseñarle cómo implementar algoritmos, la habilidad informática crucial que debe dominar en su próxima entrevista de trabajo.

Intentamos llenar este vacío formando un equipo diverso de instructores que incluye expertos líderes mundiales en algoritmos teóricos y aplicados en UCSD (Daniel Kane, Alexander Kulikov y Pavel Pevzner) y un ex ingeniero de software en Google (Neil Rhodes).

Esta combinación única de habilidades hace que esta especialización sea diferente de otros excelentes MOOC sobre algoritmos que son desarrollados por científicos informáticos teóricos. Si bien estos MOOC se centran en la teoría, nuestra especialización es una combinación de teoría/práctica/aplicaciones algorítmicas con ingeniería de software.

Sobre el Curso (Por la Plataforma)

Un buen algoritmo generalmente viene junto con un conjunto de buenas estructuras de datos que permiten que el algoritmo manipule los datos de manera eficiente.

En este curso en línea, consideramos las estructuras de datos comunes que se utilizan en varios problemas computacionales. Aprenderá cómo se implementan estas estructuras de datos en diferentes lenguajes de programación y practicará su implementación en nuestras asignaciones de programación.

Esto lo ayudará a comprender lo que sucede dentro de una implementación particular integrada de una estructura de datos y qué esperar de ella. También aprenderá casos de uso típicos para estas estructuras de datos.

Te Puede Interesar


Algunos ejemplos de preguntas que vamos a cubrir en esta clase son los siguientes:

  1. ¿Cuál es una buena estrategia para cambiar el tamaño de una matriz dinámica?
  2. ¿Cómo se implementan las colas de prioridad en C++, Java y Python?
  3. ¿Cómo implementar una tabla hash para que el tiempo de ejecución amortizado de todas las operaciones sea O(1) en promedio?
  4. ¿Cuáles son buenas estrategias para mantener equilibrado un árbol binario?

¡También aprenderá cómo los servicios como Dropbox logran cargar algunos archivos grandes al instante y ahorrar mucho espacio de almacenamiento!

Habilidades que obtendrás

  • Árbol de búsqueda binaria
  • cola de prioridad
  • Tabla de picadillo
  • Pila (tipo de datos abstractos)
  • Lista

Ofrecido por

Universidad de California en San Diego

UC San Diego es una potencia académica y un motor económico, reconocida como una de las 10 mejores universidades públicas por US News and World Report. La innovación es fundamental para lo que somos y lo que hacemos. Aquí, los estudiantes aprenden que el conocimiento no solo se adquiere en el salón de clases, la vida es su laboratorio.

Programa (Contenido)

Estructuras de datos básicos

En este módulo, aprenderá sobre las estructuras de datos básicas que se utilizan en el resto de este curso. Comenzamos este módulo analizando en detalle los bloques de construcción fundamentales: matrices y listas enlazadas.

A partir de ahí, construimos dos estructuras de datos importantes: pilas y colas. A continuación, observamos los árboles: ejemplos de cómo se usan en informática, cómo se implementan y las diversas formas en que se pueden atravesar.

Una vez que haya completado este módulo, podrá implementar cualquiera de estas estructuras de datos, así como tener una comprensión sólida de los costos de las operaciones, así como las compensaciones involucradas en el uso de cada estructura de datos.

Videos: 7

Duración: 60 Minutos

Matrices dinámicas y análisis amortizado

En este módulo, analizamos los arreglos dinámicos: una forma de usar arreglos cuando no se sabe de antemano cuántos elementos se necesitarán.

Aquí, también discutimos el análisis amortizado: un método para determinar el costo amortizado de una operación sobre una secuencia de operaciones.

El análisis amortizado se usa muy a menudo para analizar el rendimiento de los algoritmos cuando el análisis directo produce resultados insatisfactorios, pero el análisis amortizado ayuda a mostrar que el algoritmo es realmente eficiente. Se usa tanto para el análisis de matrices dinámicas como también se usará al final de este curso para analizar árboles Splay.

Videos: 5

Duración: 31 Minutos

Colas de prioridad y conjuntos disjuntos

Comenzamos este módulo considerando las colas de prioridad que se utilizan para programar trabajos de manera eficiente, ya sea en el contexto de un sistema operativo de computadora o en la vida real, para ordenar archivos grandes, que es el bloque de construcción más importante para cualquier algoritmo de procesamiento de Big Data, y para calcular eficientemente las rutas más cortas en gráficos, que es un tema que trataremos en nuestro próximo curso.

Por esta razón, las colas de prioridad tienen implementaciones integradas en muchos lenguajes de programación, incluidos C++, Java y Python.

Veremos que estas implementaciones se basan en una hermosa idea de almacenar un árbol binario completo en una matriz que permite implementar todos los métodos de cola de prioridad en solo unas pocas líneas de código.

Luego cambiaremos a la estructura de datos de conjuntos disjuntos que se utiliza, por ejemplo, en la conectividad de gráficos dinámicos y el procesamiento de imágenes. Veremos nuevamente cómo las ideas simples y naturales conducen a una implementación que es fácil de codificar y muy eficiente. Al completar este módulo, podrá implementar ambas estructuras de datos de manera eficiente desde cero.

Videos: 15

Duración: 129 Minutos

Tablas hash

En este módulo, aprenderá sobre una técnica muy poderosa y ampliamente utilizada llamada hashing. Sus aplicaciones incluyen la implementación de lenguajes de programación, sistemas de archivos, búsqueda de patrones, almacenamiento distribuido de valores clave y muchos más.

Aprenderá a implementar estructuras de datos para almacenar y modificar conjuntos de objetos y asignaciones de un tipo de objetos a otro.

Verá que las implementaciones ingenuas consumen una gran cantidad de memoria o son lentas, y luego aprenderá a implementar tablas hash que usan memoria lineal y funcionan en O(1) en promedio.

Al final, aprenderá cómo se utilizan las funciones hash en los sistemas distribuidos modernos y cómo se utilizan para optimizar el almacenamiento de servicios como Dropbox, Google Drive y Yandex Disk.

Videos: 20

Duración: 148 Minutos

Árboles de búsqueda binarios

En este módulo estudiamos árboles de búsqueda binarios, que son una estructura de datos para realizar búsquedas en conjuntos ordenados que cambian dinámicamente.

Aprenderá acerca de muchas de las dificultades para llevar a cabo esta tarea y las formas en que podemos superarlas.

Para hacer esto, deberá aprender la estructura básica de los árboles de búsqueda binarios, cómo insertar y eliminar sin destruir esta estructura y cómo asegurarse de que el árbol permanezca equilibrado.

Videos: 7

Duración: 55 Minutos

Árboles de búsqueda binarios 2

En este módulo continuamos estudiando los árboles de búsqueda binarios. Estudiamos algunas aplicaciones no triviales. Luego estudiamos el nuevo tipo de árboles de búsqueda equilibrados: Splay Trees. Se adaptan a las consultas de forma dinámica y son óptimos en muchos sentidos.

Videos: 4

Duración: 36 Minutos

Preguntas Frecuentes

¿Cuándo podré acceder a las lecciones y tareas?

El acceso a las clases y las asignaciones depende del tipo de inscripción que tengas. Si tomas un curso en modo de oyente, verás la mayoría de los materiales del curso en forma gratuita. Para acceder a asignaciones calificadas y obtener un certificado, deberás comprar la experiencia de Certificado, ya sea durante o después de participar como oyente. Si no ves la opción de oyente:

  • Es posible que el curso no ofrezca la opción de participar como oyente. En cambio, puedes intentar con una Prueba gratis o postularte para recibir ayuda económica.
  • Es posible que el curso ofrezca la opción ‘Curso completo, sin certificado’. Esta opción te permite ver todos los materiales del curso, enviar las evaluaciones requeridas y obtener una calificación final. También significa que no podrás comprar una experiencia de Certificado.

¿Qué recibiré si me suscribo a este Programa especializado?

Cuando te inscribes en un curso, obtienes acceso a todos los cursos que forman parte del Programa especializado y te darán un Certificado cuando completes el trabajo. Se añadirá tu Certificado electrónico a la página Logros. Desde allí, puedes imprimir tu Certificado o añadirlo a tu perfil de LinkedIn. Si solo quieres leer y visualizar el contenido del curso, puedes auditar el curso sin costo.

¿Hay ayuda económica disponible?

Sí. En ciertos programas de aprendizaje, puedes postularte para recibir ayuda económica o una beca en caso de no poder costear los gastos de la tarifa de inscripción. Si hay ayuda económica o becas disponibles para tu selección de programa de aprendizaje, verás un enlace para postularte en la página de descripción.

Escanea aquí abajo con tu móvil para acceder al curso si estás desde PC

O ingresa con el botón de aquí abajo si estás desde móvil o Tablet.

¿Quieres Más?

Encuentra cursos y libros gratuitos, además de cupones de Udemy, en nuestros Telegram.

Jesús

Si lees esto, es por que sabes leer. Un saludo...