¿Qué cursos de CS, de pregrado o posgrado, se ofrecen en su universidad actual o anterior?

Berkeley ofrece una tonelada completa de cursos de CS, demasiados para enumerarlos aquí. Además, muchos otros departamentos ofrecen ciertos cursos que se incluyen en CS, en particular, muchos de los cursos de la Escuela de Información, pero también de departamentos aleatorios como la música (a través del Centro de Nuevas Tecnologías de Música y Audio). También hay una superposición significativa entre EE y CS, en gran parte porque EECS es un departamento único.

Solo te daré una vista curada de las que creo que son las más importantes.

Los cursos vienen en algunos factores de forma diferentes.

Hay una secuencia de introducción que casi todos toman; si recién estás comenzando, puedes mirar allí. La buena noticia es que la mayoría de estas clases están disponibles como videos en línea, a veces con diferentes profesores. La secuencia de introducción tiene cuatro clases CS:

  • CS 61A , una introducción general basada en La estructura e interpretación de los programas de computadora [En Youtube]
  • CS 61B , estructuras de datos y OOP (también en Youtube)
  • CS 61C , arquitectura de computadora que cubre C, MIPS y diseño de procesador. Basado en Organización y diseño de computadoras por Patterson y Hennesy. Si miras a tu alrededor, incluso puedes encontrar un video de Patterson enseñándolo él mismo.
  • CS 70 , matemática discreta y probabilidad. Básicamente un curso de matemáticas con sabor a CS.

Honestamente, pensé que CS 61B y CS70 no eran nada especial: útil y esencial para una educación sólida en CS, pero no diferente de lo que encontrarías en otras universidades. 61A fue realmente bueno, y Harvey es un profesor increíble, pero también puede encontrar el curso en línea impartido por los propios autores de SICP.

61C, sin embargo, realmente es algo especial porque se vincula con el fuerte de la programación y arquitectura de sistemas de Berkeley, y es enseñado constantemente por los mejores profesores en el campo. Estoy bastante seguro de que es la mejor introducción de programación de sistemas que puedes encontrar en cualquier lugar.

Para el comandante de EECS, estos cuatro son los únicos cursos de CS estrictamente requeridos ; el resto eres libre de elegir como quieras.

Después de la secuencia de introducción, hay un montón de cursos de pregrado de “división superior” que la gente puede tomar. Solo te daré los aspectos más destacados desde mi punto de vista (aunque no he tomado todos los que estoy enumerando):

  • CS 188 es una introducción a la IA y al curso de CS de división superior más popular. Siempre se enseña bien y al menos una parte está disponible en edX: CS188.1x
  • CS 189 es una introducción al aprendizaje automático, una buena opción para hacer un seguimiento de CS 188
  • CS 170 es nuestro curso de algoritmos básicos. Muy útil pero, de nuevo, nada especial para Berkeley, aunque algunas personas encuentran que el libro ( Algoritmos ) es más legible que el CLRS más común
  • CS 172, 174 y 176 conforman nuestro conjunto de algoritmos avanzados y cursos de teoría. Son, a su vez, la teoría CS (autómatas, computabilidad y complejidad), algoritmos aleatorios y algoritmos para bioinformática. Solo tomé CS 172, pero fue uno de mis cursos favoritos en general con el mejor libro de texto que he leído : Introducción a la teoría de la computación , por Michael Sipser
  • CS 164 es el curso de lenguajes de programación y compiladores. Realmente varía según el profesor; Realmente disfruté tomándolo con Bodik, cuya versión se enfoca más en el diseño del lenguaje y DSL que en los compiladores per se . (Una buena descripción)
  • CS 152 es nuestro curso avanzado de diseño de procesadores. Nuevamente, esta es una de las áreas más fuertes de Berkeley, por lo que es un gran curso … siempre y cuando esté realmente interesado en el material. Tiene la reputación de ser el curso de CS más difícil en Berkeley.

Hay muchos otros cursos de la división superior, pero estos son los que más me vienen a la mente.

Además de los cursos normales de CS, hay algunos cursos experimentales, avanzados o seminarios que tienen un número que comienza con CS194. Por ejemplo, CS194-24 es nuestro curso avanzado de sistemas operativos.

  • CS 194-2 es nuestra clase avanzada de programación paralela, que incorporó investigaciones directamente del ParLab. Si está interesado en técnicas de programación paralelas de vanguardia, es uno de los mejores lugares para buscar.

Berkeley también tiene una gran selección de clases de posgrado. Solo tomé un par, pero aquí hay algunos que se recomiendan:

  • CS 262a (no hay b) cubre temas de investigación en el desarrollo del sistema operativo; una buena visión general si quieres profundizar en eso
  • CS 263 hace un buen trabajo cubriendo la teoría básica del lenguaje de programación como semántica y tipos
  • CS 267 es una programación paralela más avanzada. Este es interesante porque la mitad de los estudiantes no están en CS: está diseñado para un trabajo multidisciplinario. Aquí hay una versión que se grabó: CS267 Spring 2012.
  • CS 280 es un curso popular de visión por computadora. “The Fundamentals of Computer Vision” en Coursera fue una rama de esta clase, pero supongo que ya no está en línea.

Al igual que la serie 194, también tenemos seminarios de posgrado que comienzan con 294:

  • CS 294-80 , una introducción a la síntesis de programas. Tomé este curso y lo disfruté muchísimo; desafortunadamente, no estoy seguro de que se vuelva a ofrecer. Fue grabado y, curiosamente, el profesor intentó que personas al azar siguieran el curso en línea e incluso hicieran el proyecto final. ¡Tuvimos personas que se registraron desde Australia! (Sin embargo, no creo que ninguna persona que no sea estudiante haya hecho un proyecto).

    Si desea participar directamente en un curso, puede intentar buscar un seminario de manera similar.

Además de los cursos de CS, también hay clases relevantes ofrecidas por otros departamentos. Como se mencionó anteriormente, CNMAT ofrece varios cursos interesantes de música por computadora:

  • Music 158 es una introducción a la música de computadora. Es interesante porque tiene una pista orientada tanto a la música como a la software, por lo que es ideal para las personas con CS interesadas en la música y viceversa.
  • Music 207 es la versión avanzada de posgrado de Music 158

La Escuela de Información también tiene un montón de cursos relevantes, centrados en el análisis de datos y el aprendizaje automático.

  • Info C290 , aprendizaje automático para la educación. Este es el único curso de información con el que estoy familiarizado porque lo tomó un amigo, pero me pareció bastante interesante. Se centró en temas como los MOOC y la detección de trampas.

Como puede ver, hay muchas opciones a pesar de que omití la mayoría de los cursos de posgrado y de la división superior y prácticamente todos los seminarios. Estos son solo los que me vienen a la mente; las personas con otros intereses probablemente armarían una lista completamente diferente.

Mi departamento en UT Austin enumera tanto los cursos de pregrado de CS como los cursos de posgrado de CS en su sitio web. Estas listas no incluyen lo que llamamos “cursos temáticos”, que son cursos que no se imparten cada semestre y se centran en un “tema” particular.

Hay una TONELADA de cursos ofrecidos en UT (tenemos el departamento de CS más grande del top 10), por lo que no creo que pueda enumerar todas esas clases con su dificultad, especialmente porque no he tomado casi todas ellos. Si está buscando cursos para tomar, los cursos requeridos para la licenciatura para un título de CS en mi universidad (a partir del otoño de 2014) son:

  • CS312 – Introducción de programación
  • CS314 – Estructuras de datos
  • CS429 – Organización y arquitectura de computadoras
  • CS439 – Principios de los sistemas informáticos (también conocidos como sistemas operativos)
  • CS311 – Matemáticas discretas para informática
  • CS331 – Algoritmos y Complejidad

Entonces, si está tratando de averiguar qué cursos tomar o desea desarrollar su título / educación en torno a tomar cursos que se imparten en otras universidades, recomendaría los 6 que enumeré anteriormente. Una de las mejores cosas de esos 6 cursos es que le ofrece 2 cursos de aplicaciones / programación, 2 cursos de sistemas y 2 cursos de teoría . Enumeré los cursos en ese orden para mayor claridad. Por lo general, los estudiantes toman CS312 primero (o lo omiten si tienen experiencia en CS, luego CS314 y CS311, luego CS429, luego CS439 y luego CS331.

Fuera de estos cursos, también debe tomar otras asignaturas optativas CS de división superior, pero tiene cierta flexibilidad en lo que toma. Los cursos populares de la división superior que mucho si las personas toman incluyen:

  • CS341 – Teoría de autómatas
  • CS345 – Lenguajes de programación
  • CS354 – Gráficos por computadora
  • CS373 – Ingeniería de software
  • CS371M – Computación móvil
  • CS371P – Programación orientada a objetos
  • CS375 – Compiladores

Hay muchas clases que se imparten de vez en cuando o como cursos temáticos, pero los cursos enumerados anteriormente son cursos de división superior que se imparten con frecuencia y que sé que son tomados por una buena parte de los estudiantes de nuestro departamento. Entonces, si está buscando cursos avanzados, estos temas pueden ser buenos lugares para comenzar.

Definitivamente no he tomado ni cerca de todos los cursos de posgrado, así que no puedo hablar con ellos.

El catálogo de cursos de Duke University – Computer Science para los semestres anteriores y actuales está disponible en línea, y enumera los cursos de pregrado y posgrado. Resumiré los cursos de pregrado.

Nota: un número bastante alto de nombres de cursos comienza con “Introducción a”, que estoy quitando por razones de brevedad (además del curso de introducción real).

Estos cursos son obligatorios para el mayor / menor y generalmente se ofrecen cada semestre:

  • CS 101L – Introducción a la informática (Python)
  • CS 201L – Estructuras de datos y algoritmos (Java)
  • CS 230 – Matemáticas discretas
  • CS 250 – Arquitectura de computadora (anteriormente / también conocida como Organización y programación de computadoras)
  • CS 310 – Sistemas operativos
  • CS 330 – Diseño y análisis de algoritmos

Aquí hay una lista no exhaustiva de cursos electivos (algunos de los cuales eran cursos obligatorios antes de una renovación del plan de estudios alrededor de 2011-2012). La mayoría de los que se enumeran aquí se ofrecen al menos una vez al año (en lugar de ser ofertas únicas).

  • CS 220 – Análisis numérico
  • CS 260 – Genómica computacional
  • CS 270 – Inteligencia artificial
  • CS 308 – Diseño e implementación de software
  • CS 309S – Seminario de resolución de problemas (preparación para ACM / ICPC y otras competencias de programación)
  • CS 316 – Sistemas de bases de datos
  • CS 334 – Fundamentos matemáticos de la informática (autómatas y lenguajes formales, no computabilidad y teoría de la complejidad)
  • CS 342SFundamentos técnicos y sociales de Internet (curso de seminario sobre temas actuales en tecnología / Internet, sin codificación / conjuntos)
  • CS 344 – Gráficos por computadora
  • CS 356 – Arquitectura de redes informáticas
  • CS 408S – Entrega de software (creación de aplicaciones para clientes)
  • CS 29 * / 39 * – estudios independientes, estudios independientes de investigación y cursos de temas especiales por semestre

Además de los cursos ofrecidos formalmente por el departamento de CS, también se han realizado cursos de la casa con temas de CS (que son seminarios de “medio crédito” con instructores de estudiantes y asesores docentes) Puede haber otros, pero dos que he tomado son:

  • Lenguajes de programación
  • Diseño de aplicaciones web

Mis más sinceras disculpas a cualquiera que se haya graduado antes de 2012 y esté completamente desanimado por estos números de cursos …

Aquí está la lista de cursos de otoño de 2014 para el departamento de CS de UMass Amherst: Descripciones de cursos

Los niveles 100-400 son cursos del primer y cuarto año, respectivamente, 500 niveles se consideran cursos avanzados de pregrado / maestría, y 600+ son cursos de posgrado.

Esta página enumera los cursos requeridos para una licenciatura en ciencias de la computación: detalles de los nuevos requisitos de BS

Comenta si tienes preguntas específicas.

Informática en la Universidad China de Hong Kong:

  • BSc Computer Science – Computer Science Program: Lista de cursos y Computer Science Program: Study Scheme
  • Maestría en Ciencias de la Computación – Programas: Maestría en CS
  • MPhil – PhD Informática de Ingeniería – MPhil-PhD en CS&E

No voy a enumerar todos los cursos aquí porque creo que la estructura general debería ser más o menos similar en diferentes universidades, pero puede hacer clic en los dos primeros enlaces para ver la lista de cursos y el esquema de estudio de un BSc CS Grado de CUHK.

Brown CS: Cursos

No estoy seguro de si esto es exactamente lo que está buscando, pero aquí va.

El Departamento de Informática de UW-Madison contiene los cursos que se ofrecen actualmente en UW Madison.

Los cursos numerados 700 y superiores son cursos de posgrado.

Los cursos de CS de Harvard se enumeran aquí: Ciencias de la computación.

En general, las universidades ofrecen muchos cursos de CS, por lo que probablemente sería mucho trabajo recopilar cualquier tipo de información detallada sobre todos ellos. Pero muchas universidades tendrán listas de cursos visibles públicamente (como el enlace de arriba). Algunos también pueden tener evaluaciones de los cursos que los alumnos pueden ver públicamente (que pueden incluir dificultad o carga de trabajo), pero muchas universidades (incluida Harvard) solo las ponen a disposición de los estudiantes actuales.

Departamento de Ciencias de la Computación en Illinois

Esta es una lista de todos los cursos de CS ofrecidos en UIUC. Puede obtener una descripción de cada enlace del curso.

Los cursos de nivel 500 y superiores son cursos de posgrado.