Las carreras de software en las universidades estadounidenses son muy buenas.

Stanford, Berkeley, MIT, Carnegie Mellon

La CS de Stanford es una gran CS con más de 40 profesores experimentados, incluido el conocido ganador del Premio Turing Edward A. Feigenbaum (John McCarthy), así como grandes nombres en diversas disciplinas, como DonaldE. K Nuth, una autoridad teórica; el gurú de las bases de datos Geoffrey D. Ullman (también escribió los famosos Principios de compilación, es de Princeton); y John Hennessy, uno de los principales líderes técnicos de R·ISC. Creo que los estudiantes de informática están familiarizados con esto. El departamento gradúa a más de 30 estudiantes de doctorado cada año y más de maestría. La salida para los estudiantes es, naturalmente, como pez en el agua. Los estudiantes de Stanford son favorecidos tanto por la academia como por la industria. Casi todos los diez mejores programas de informática tienen como profesores graduados de Stanford. Por supuesto, hay otros tres toros gigantes: la UC. Berkeley, MIT y CMU.

Jim Clark se graduó en la Universidad de Utah y fue profesor en el Departamento de Ciencias de la Computación de la Universidad de Stanford. Fue este hombre quien más tarde fundó SGI, un gigante en los campos de la informática de alto rendimiento y la visualización informática científica. El origen del nombre de Sun Company: Stanford University Network. Por cierto, Jerry Yang, el chino que fundó Yahoo, estudió un doctorado en EE de Stanford y luego abandonó sus estudios para dirigir Yahoo.

En términos de investigación de informática, Stanford es un actor destacado, con sólidas capacidades en teoría, bases de datos, software, hardware e inteligencia artificial. La tecnología RISC de Stanford se convirtió más tarde en la tecnología central de los microprocesadores de la serie SGI/MIPS Rx000; los proyectos DASH y FLASH están a la vanguardia de la investigación informática paralela multiprocesador. El compilador paralelo SU IF se ha convertido en un proyecto clave financiado a nivel nacional y ha sido citado; en artículos académicos internacionales mencionar el compilador SU IF parece agregar un poco de belleza a algunos artículos mediocres.

Stanford tiene más de 14.000 estudiantes, incluidos más de 7.000 estudiantes de posgrado. Hay 175 personas estudiando para doctorado y 350 personas estudiando para maestría en informática. Se desconoce cuántas personas se contratan cada año, pero probablemente sea indispensable, pero no olvidemos que casi mil personas solicitan CS cada año. La tarifa de solicitud es de hasta $90.

La Universidad de Stanford está situada en Silicon Valley, el centro del mundo de la información. El agradable clima y los hermosos paisajes de California hacen de Stanford un paraíso para la informática. El área del campus de 33,1 kilómetros cuadrados probablemente sea suficiente para que los estudiantes crucen el río y hagan de todo.

Solicitar ingreso a Stanford es difícil, pero no imposible. Cuando se va a una gran escuela como Stanford, la suerte es muy importante y las recomendaciones de grandes personas también son muy importantes.

Adjunto: En términos generales, los 20 mejores programas de informática se pueden dividir en tres oleadas:

¿Uno o cuatro de los mejores programas de informática? Universidad de Stanford, Universidad de California. Berkeley, MIT, CMU

2 Otros seis top 10: UIUC, Cornell, U of Washington, Princeton, U of Tex as-Austin y U of Wisconsin-Madison, entre los cuales UIUC, Cornell, U of. Washington y UW-Madison casi nunca figuran entre los diez primeros.

En tercer lugar, otras informáticas muy, muy buenas: Caltech, University of Maryland ATCP, UCLA, Brown, Harvard, Yale, GIT, Purdue, Rice, University of Michigan.

(Nota: CS = Departamento de Ciencias de la Computación)

Desde el nacimiento de la primera computadora moderna del mundo en los Estados Unidos en la década de 1940, Estados Unidos ha sido el líder mundial en informática, que es también una de las razones importantes por las que la industria informática estadounidense tiene una ventaja absoluta. La mayoría de los libros de texto que importamos son de Estados Unidos. La informática todavía se está desarrollando rápidamente y el modelo correspondiente de formación de talentos informáticos también cambia constantemente. Debería ser muy significativo prestar mucha atención y seguir las nuevas tendencias de enseñanza en universidades extranjeras famosas, especialmente en los Estados Unidos.

Este artículo selecciona las cinco universidades más prestigiosas de Estados Unidos en informática y analiza los sistemas de enseñanza de pregrado en informática de cada universidad.

Universidad de Stanford

La Universidad de Stanford tiene un departamento de informática independiente.

Las conferencias sobre conocimientos de informática más distintivas de la escuela son probablemente numerosas, generalmente de dos o tres unidades, y cubren una amplia gama de temas, desde computación cuántica hasta actores digitales, desde grandes ideas en ciencias de la computación hasta seguridad de redes, desde subastas en línea hasta la utilización. Encontré una gran cantidad de errores en el software de código abierto a gran escala, incluidas muchas ideas sobre la utopía tecnológica, las "dos culturas" de Snow, las dificultades que enfrentan las computadoras y muchos problemas causados ​​por el rápido desarrollo. Los cursos cuentan con una sólida plantilla de profesores, básicamente todos profesores de renombre, incluido el ganador del Premio Turing, John McCarthy. El uso de este tipo de conferencia para reemplazar el curso especial de introducción a la informática puede demostrar plenamente la rica connotación de la informática, permitir a los estudiantes comprender el esquema y el contexto del tema antes y también es de gran beneficio para ampliar los horizontes de los estudiantes. y estimular el interés de los estudiantes por aprender. Porque la elección de carreras en las universidades estadounidenses es muy flexible y la inscripción en informática se ha visto gravemente afectada por la industria en los últimos años (esta situación incluso alarmó a Bill Gates. Este año, Microsoft fue a las principales universidades para reclutar gente y). llegó a cada parada. Utilice su poder de estrella para hablar sobre el brillante futuro de la informática). Es concebible que este tipo de conferencias también asuma la importante misión de atraer a los estudiantes a elegir la informática.

Los cursos típicos de divisiones inferiores en la Universidad de Stanford se muestran en la Tabla 1.

Tabla 1 Principales cursos de división inferior en la Universidad de Stanford

Matemáticas (al menos 23 unidades)

Matemáticas 41 (número de curso, el mismo a continuación) Cálculo I 5

Matemáticas 42 Cálculo II 5

Estadística 116 Teoría de la probabilidad 3 ~ 5

Computadora 103 Estructura discreta 4 o 6

Seleccione el siguientes dos términos:

Matemáticas 51 Cálculo 5

Matemáticas 103/113 Álgebra lineal 3

Matemáticas 109 Teoría de grupos aplicada 3

Computadora 157 Lógica y Razonamiento Automático 4

Computadoras 205 Métodos Matemáticos en Robótica, Visión y Gráficos 3

Ciencias (al menos 11 unidades)

Física 53 Mecánica 4

Física 55 Electromagnetismo 4

Otros

Conceptos básicos de ingeniería (al menos 13 unidades)

Computadora 106 Abstracción/Metodología de programación 5

Ingeniería 40 Fundamentos de Electrónica 5

Cursos optativos

Tecnología y sociedad (3~5 unidades)

La Tabla 2 muestra cursos adicionales.

Tabla 2 Principales cursos de último año en la Universidad de Stanford

Programación (2 cursos)

Computadora 107 (número de curso, el mismo a continuación) Paradigma de programación 5

Computadora 108 Diseño de sistemas orientados a objetos 4

Teoría (dos cursos)

Computadora 154 Teoría de autómatas y complejidad 4

Computadora 161 Diseño y Análisis de 4

Sistemas (3 cursos)

Electrónica y Eléctrica 108B o 282 Sistemas Digitales o Arquitectura de Computadores 4

Principios de Compilación de Computadoras 3

Computadora Red de Computadoras 3

Sistema Operativo de Computadora 3

Aplicación (elija dos cursos)

Inteligencia Artificial Computadora 3 ~ 4

Base de datos de computadora 3

Gráficos de computadora 3

Proyecto (1 curso)

Al menos 3 computadoras

Cursos electivos limitados (varios cursos)

Universidad de California, Berkeley

El plan de estudios de Berkeley también tiene muchas características únicas, especialmente cursos profesionales básicos. Además del curso de instrucción profesional "Temas Especiales en Informática", el primer curso de programación para estudiantes sin experiencia en programación es Introducción a la Programación Simbólica, utilizando el lenguaje LISP. Los estudiantes con cierta experiencia en programación o capacidad autodidacta pueden elegir entre cursos a su propio ritmo en una variedad de lenguajes y entornos, incluido el uso de C, Fortran, C++, Java y UNIX. Esta diversidad está asociada con la informática y la ingeniería eléctrica y electrónica en Berkeley.

Pero todos los estudiantes tienen que estudiar un conjunto único de cursos básicos en el segundo semestre: 61A "Estructura e interpretación de programas informáticos", utilizando el libro de texto del mismo nombre editado por MIT Abelson y otros (publicado por China Translation Machinery Industry Press, fotocopiado). por Tsinghua University Press); 61B "Estructura de datos" (el libro de texto utiliza folletos hechos por usted mismo; 61C "Machine Structure" utiliza "Computer Organization and Design" de Hennessy (la versión china es publicada por Tsinghua University Press, y la versión fotocopiada es publicado por la editorial Machinery Industry Press). Esta regla no es una excepción para los estudiantes transferidos, lo que demuestra que contiene la culminación de muchos años de experiencia docente en Berkeley.

Otros cursos distintivos en Berkeley incluyen: CS70, que combina matemáticas discretas con teoría de probabilidad, con el famoso profesor Christos Papadimitriou como orador principal; la clase práctica de programación CS98-1, que aborda temas de las principales competencias de programación de estudiantes universitarios. Libro de texto; Ingeniería de software CS 169 utiliza directamente la "Programación extrema" de Kent Baker (versión china de People's Posts and Telecommunications Press) como material didáctico. Sin embargo, dado que incluso los métodos ágiles en "La nueva edición de ingeniería de software: un enfoque de profesional" de Pressman se han convertido en un foco, y dado que IEEE ha comenzado a desarrollar estándares relevantes para métodos ágiles, la elección de este curso no es tan impactante. Además del contenido común de los cursos de ingeniería de software, la enseñanza se centra en la práctica y recorre las ideas de programación extrema, que abarcan UML, pruebas unitarias JUnit, arquitectura de software, patrones y antipatrones de diseño, refactorización, control de versiones CVS, sistema. y pruebas de integración, y el requisito final. Completar un producto real y una demostración.

La especialización en informática de la Universidad de Illinois en Urbana-Champaign

UIUC se fundó en 1972 y básicamente se finalizó en 1986. No ha cambiado mucho en más de diez años. Su sistema de enseñanza se muestra en la Figura 1.

Figura 1 Sistema de cursos de informática antes de la reforma de la UIUC

Entre ellos, entre los cursos de análisis numérico, Math225 es teoría de matrices, CS257 es métodos numéricos y CS35x representa introducción al análisis numérico y cálculo diferencial ordinario, métodos numéricos, diferenciales parciales y aproximaciones numéricas, álgebra lineal numérica;

En los cursos teóricos, CS173 es estructuras discretas, CS273 es teoría computacional y CS37x incluye algoritmos, métodos formales y verificación de programas.

Entre los cursos de inteligencia artificial, CS348 es una introducción a la inteligencia artificial, y CS34x incluye robótica, aprendizaje automático y reconocimiento de patrones.

Dirección del software: CS125 es una introducción a la informática, CS225 es estructura de datos y principios de ingeniería de software, CS31x incluye bases de datos, gráficos y multimedia, CS32x incluye ingeniería de software, diseño de sistemas operativos, sistemas distribuidos y lenguajes de programación. y procesadores de compilación, computación paralela, sistemas en tiempo real, construcción de compiladores y diseño de lenguajes de programación.

En el curso de dirección de hardware, CS231 es Arquitectura de Computadora I, CS232 es Arquitectura de Computadora II y CS33x incluye composición de computadora, diseño lógico y de sistema VLSI, diseño de sistema VLSI, red de comunicación, arquitectura integrada y software.

Se puede ver que los cursos en la parte inferior de la Figura 1 son básicamente de uno a tres cursos seleccionados entre muchos. Todo el sistema tiene un contexto claro y una alta flexibilidad. A diferencia de Stanford, los cursos de introducción a las ciencias de la computación de UIUC son relativamente simples. Solo hay un curso orientado a las ciencias de la computación (CS100) en el primer año y no es un curso obligatorio. CS125 se llama "Introducción a la informática". En realidad, es un curso de introducción a la programación basado en el lenguaje Java y cubre algunos algoritmos. Además, hay clases experimentales de apoyo. Por supuesto, muchas conferencias impartidas por estudiantes de último año y de posgrado en el departamento están abiertas a los jóvenes.

En 2003, por iniciativa de David Daniel, Decano de la Facultad de Ingeniería, el Departamento de Ciencias de la Computación reformó su plan de enseñanza para reflejar las tendencias actuales de desarrollo de la sociedad, la industria y la tecnología. Los principales cambios son:

* Se han añadido dos cursos de programación a los cursos obligatorios: Programación del sistema CS241, que utiliza el sistema operativo de Gary Nutt como libro de texto principal, y Programación avanzada en el entorno Unix de Stevens como libro de texto principal. libro de texto de programación CS242 Programming Studio, el programa de enseñanza se basa básicamente en la práctica de programación de Kernighan (los libros de texto anteriores han sido publicados en traducción y fotocopia al chino por Machinery Industry Press).

*Se ha agregado un proyecto senior de un año de duración a los requisitos obligatorios, enfatizando el trabajo en equipo y las prácticas de ingeniería de software, incluida la redacción de documentos, la presentación oral, la planificación y gestión de proyectos, etc.

De hecho, se trata de aprender ingeniería de software a través de la práctica. Este curso también podrá ser reemplazado por dos semestres de ingeniería de software o una tesis de un año. Se sigue manteniendo plenamente la flexibilidad, lo que favorece la enseñanza a los estudiantes de acuerdo con sus aptitudes.

*Se agregaron las horas de clase de CS173 Discrete Structures, se movió parte del contenido original de CS273 aquí y se agregó el contenido original de CS375 en CS273. En realidad, esto aumenta los requisitos para la teoría informática.

CMU (Universidad Carnegie Mellon)

A diferencia del MIT y Berkeley, donde la informática está en el mismo departamento que la ingeniería eléctrica y electrónica, el departamento de informática de la CMU se estableció en 1965, el más antiguo. en los Estados Unidos, ahora se ha actualizado a la Escuela de Ciencias de la Computación. En su proyecto de posgrado, a excepción de la relación entre la dirección del robot y el hardware, todo lo demás es básicamente puramente suave. En este sentido, el sistema de enseñanza de CMU debe ser de gran referencia para el departamento de informática informática.

En el manual didáctico del CMU no existe ningún curso introductorio para estudiantes de informática en el sentido tradicional. Aunque es un curso de dos semestres llamado "Grandes Ideas en Ciencias de la Computación", se supone que es un sustituto de las matemáticas discretas en términos de contenido, porque CMU no tiene otros cursos en matemáticas discretas. Este curso no tiene libros de texto y el contenido es mucho más flexible que el de las matemáticas discretas tradicionales, y cubre probabilidad, álgebra, algoritmos, teoría de la encriptación, teoría de la complejidad, teoría de juegos, etc. , y concede gran importancia a la diversión y la practicidad del aprendizaje.

Al igual que otras escuelas prestigiosas, el énfasis de CMU en la programación también dejó una profunda impresión: la primera clase para los estudiantes de primer año locales es "Programación para escuelas secundarias y junior", donde se enseña Java directamente. Luego están la programación avanzada (Java), habilidades de programación en C, práctica de programación avanzada (Java) y principios de programación (enseñanza del lenguaje SML).

Una de las dificultades del actual plan docente de las carreras de informática es la fijación de cursos de hardware. El sistema de conocimiento de hardware en sí es muy rico, pero hay muchos cursos de hardware, lo que debilita las características de la especialización en informática. ¿Cómo está manejando CMU este problema? Randal E. Bryant, actual decano de la Facultad de Ciencias de la Computación, dio personalmente la respuesta. Completó la enseñanza de conocimientos de hardware con el curso “Introducción a los Sistemas Informáticos” (unidades 15 ~ 213). El resultado de esta reforma educativa es un libro de más de 900 páginas: "Sistema informático: la perspectiva de un programador" (la versión china de Comprensión profunda de los sistemas informáticos ha sido publicada por China Electric Power Press). Dijo en el prefacio del libro:

"El propósito de este curso es presentar a los estudiantes las computadoras de una manera diferente. Porque nuestros estudiantes rara vez tienen la oportunidad de construir sistemas informáticos. La mayoría de los estudiantes, incluso las computadoras Se requiere que los ingenieros puedan usar computadoras y escribir programas de computadora a diario, por eso decidimos explicar el sistema desde la perspectiva de un programador, usando este filtro: solo discutimos aquellos que afectan el rendimiento, la corrección o la utilidad del usuario. -Temas de nivel C.

Por ejemplo, excluimos temas como sumadores de hardware y diseño de bus. Aunque hablamos de lenguaje de máquina, no nos importó cómo escribir lenguaje ensamblador, sino cómo el compilador. C traducido. Varias construcciones como punteros, bucles, llamadas y retornos a procedimientos, declaraciones de cambio, etc. Además, analizaremos el sistema de manera más amplia y realista, incluido el hardware y el software del sistema, y ​​analizaremos la vinculación, la carga y el procesamiento. , señales, optimización del rendimiento, evaluación, E/S, redes y programación concurrente

Este enfoque hace que la forma en que enseñamos este curso sea práctica, concreta, práctica y motivadora para los estudiantes "

Algunos de los experimentos que acompañan al libro también son originales. Por tanto, el éxito de este libro es natural. Según el listado en el sitio web de soporte, ha sido adoptado como material didáctico por más de 80 colegios y universidades de todo el mundo. MIT

El plan de estudios del MIT sólo puede explicarse por el alto punto de partida que ofrece a sus estudiantes. Esta escuela no tiene una especialización típica en informática, solo informática teórica e inteligencia artificial y su software de aplicación. Por tanto, no existe un curso introductorio como en otras escuelas.

En el Departamento de Ingeniería Eléctrica y Electrónica y Ciencias de la Computación del MIT, todos los estudiantes deben tomar los siguientes cuatro cursos: 6.001 "Estructura e Interpretación de Programas de Computación", por supuesto, el mismo que Berkeley, usando The libro de texto del mismo nombre editado por Abelson y otros; 6.002 "Circuitos y electrónica"; 6.003 "Señales y sistemas" (notas de clase autoeditadas) es equivalente a la "Estructura informática" 61C de Berkeley; material didáctico hecho por uno mismo).

Además, hay dos cursos profesionales de matemáticas básicas: "Análisis de sistemas probabilísticos" (libro de texto escrito por el profesor) y "Matemáticas en Informática". El último libro de texto es "Matemáticas discretas y sus aplicaciones", escrito por Rosen (la versión china es publicada por Machinery Industry Press), que se utiliza ampliamente en universidades extranjeras.

Para los estudiantes del MIT, hay muchas opciones de cursos experimentales: experimentos de ingeniería eléctrica y ciencias de la computación, experimentos de electrónica analógica, experimentos de sistemas digitales, experimentos de proyectos de microcomputadoras y experimentos de proyectos de equipos semiconductores. Además, no importa cuál sea la especialidad, existen experimentos de ingeniería de software. Vale la pena señalar que no existen cursos de ingeniería de software entre los cursos obligatorios para las carreras universitarias. En otras palabras, el contenido de la ingeniería de software se ha completado en la práctica. El curso experimental de ingeniería de software lo imparte Barbara Liskov, una reconocida profesora que propuso el principio de sustitución de Liskov. Acaba de ganar el Premio von Neumann 2004. Como académica dual de la Academia Estadounidense de Ingeniería y la Academia de Arte, sus décadas de experiencia en investigación y desarrollo de software garantizarán efectivamente la calidad de este curso experimental.

er>