¿Cuál es la lista de MOOC que uno debe mirar en su licenciatura para aprender estructuras y algoritmos de datos C, C ++?

Las estructuras de datos y los algoritmos | La especialización de Coursera cubre todos los algoritmos y estructuras de datos cubiertos en una licenciatura típica de pregrado. He visto este material enseñado por 4–5 grupos diferentes de instructores, y creo que este es el mejor trabajo que he hecho. También es un poco más completo que muchos otros cursos en línea.

Los 4 cursos de Sedgwick son bastante buenos, sentí que era un instructor bastante claro y su libro es excelente.

Cursos Sedgewick | Coursera

Tim Roughgarden también tenía un programa de 4 cursos que era razonablemente bueno,

Algoritmos | Coursera

Cada instructor tiene un enfoque y un ritmo diferentes, y generalmente puede aprender el material independientemente del instructor; todo depende del gusto personal.

Sin embargo, tenga cuidado: también he visto algunos instructores que en realidad no entienden el material que están enseñando (ya que implementan incorrectamente algoritmos centrales y estructuras de datos para que las funciones comunes no cumplan con los límites de tiempo necesarios para eso estructura de datos). Si el instructor está enseñando en una universidad sin nombre, debe tener cuidado con la exactitud y calidad de su material.

Recomiendo la Especialización en Algoritmos y Estructuras de Datos de Coursera por la Universidad de California. También tienen el ya famoso Algorithms 4-course course de Stanford. Prefiero el primero porque las tareas son realmente desafiantes con alrededor de 3 a 6 ejercicios por semana que aumentan la dificultad. Pero he cursado ambos (la teoría de Stanford podría ser un poco difícil, pero su explicación del Master Theorem fue mejor. Tim Roughgarden es muy bueno maestra, un poco mathy resistente …).

¿Un estudiante de informática que observa MOOC para aprender estructuras de datos y algoritmos y C / C ++?

Ritchie, Stroustrup, Koenig, Meyers, Hutter, Cormen, Sedgewick, Knuth lo mantienen bastante simple, si lo comparas con la gran cantidad de matemáticas detrás, pero no más simple. Como lo hacen los MOOC para mantener esa M.

Los temas tan profundos como esos no deberían estudiarse a través de los MOOC, porque hay tanta información para procesar que un curso abierto no puede cubrirlo todo. Después del curso, tendrá que volver a los libros y repasarlo todo una vez más.

Un estudiante de CS debe centrarse en los pilares de la programación en profundidad , dejando los MOOC para intereses secundarios.

Richard Feynman escribió esto en “Six Easy Pieces” sobre física, pero lo mismo se aplica a CS:

“… Se preguntarán por qué no podemos enseñar física simplemente dando las leyes básicas en la página uno y luego mostrando cómo funcionan en todas las circunstancias posibles, como lo hacemos en la geometría euclidiana, donde establecemos los axiomas y luego hacemos todo tipo de deducciones . Entonces, no satisfecho con aprender física en cuatro años, ¿quieres aprenderla en cuatro minutos? …

En youtube hay una muy buena serie de conferencias del IIT (Indian Institute of Technology) como nptel. Son muy buenas conferencias.

Además, MIT OpenCourseWare en youtube también es muy bueno.

More Interesting

¿Cuáles son los algoritmos necesarios para resolver div2 500 y div2 1000 fácilmente en topcoder?

Matrices de sufijos: Dadas dos cadenas s1 y s2. ¿Cuál es el mejor algoritmo para encontrar el número de subcadenas comunes entre s1 y s2 de longitud 1, 2,… hasta min (| s1 |, | s2 |)?

¿Cuánta recopilación y análisis de datos se destina a la optimización del tiempo de los semáforos en una ciudad?

¿Se requiere un buen conocimiento de la estructura de datos y algoritmos para saltar a la codificación competitiva?

¿Para qué sirve la clasificación de burbujas?

Cómo escribir un orden de fusión en SQL sin formato

¿Cuáles son los usos de un puntero en una estructura de datos?

En C #, ¿cómo podemos dividir un número BigInteger en otros dos números BigInteger?

¿Las funciones de JavaScript como map (), reduce () y filter () ya están optimizadas para recorrer la matriz?

Insertar un elemento en un montón toma O (log n). ¿Aún si insertamos n elementos en el montón, resulta ser O (n)?

¿Por qué la complejidad temporal no devuelve el tiempo de ejecución exacto de un algoritmo?

¿Cómo encontramos la altura de un árbol binario? ¿Cómo se relaciona con el nivel?

¿Es malo si no entiendo un algoritmo? He estado tratando de entender algunos algoritmos (los recursivos en su mayoría), entiendo la mayoría de ellos, pero no pude entender algunos.

Si solo quiero escribir algoritmos y lógica, y no quiero molestarme con la interfaz de usuario y la codificación frontal, ¿qué tipo de posición de software me conviene más?

Dado N monedas para dos jugadores que juegan un juego. Cada jugador puede elegir 1 o 2 monedas en un turno. El jugador que recoge las últimas monedas gana. Si juegan de manera óptima, ¿qué jugador ganará el juego?