¿Cuál fue la motivación detrás de escribir ‘Sistemas informáticos: la perspectiva de un programador’?

Durante muchos años, el curso básico estándar en el área de Sistemas de Computación (que abarca tanto ECE como CS) fue un curso de arquitectura de computadoras diluido llamado Computer Organization . Randy Bryant y yo estábamos enseñando este curso en CMU a mediados de la década de 1990 y no iba bien. El curso fue muy impopular entre los estudiantes (FCE promedio por debajo de 3), y no los estaba preparando muy bien para sus futuros cursos de sistemas debido al énfasis en el hardware.

En algún momento en 1997-1998, nos dimos cuenta de que había un problema fundamental con la perspectiva del curso típico de Organización de Computadoras. Estábamos enseñando a nuestros estudiantes cómo construir sistemas informáticos, cuando en realidad muy pocos de ellos serían arquitectos de sistemas. Sin embargo, casi todos nuestros estudiantes usarían sistemas informáticos. Así que decidimos crear un nuevo curso básico de sistemas que se enseñaría desde la perspectiva del programador, en lugar de la perspectiva del constructor. Durante la primavera y el verano de 1998, Randy y yo creamos un nuevo curso desde cero utilizando el siguiente filtro simple: Si una parte del sistema (ya sea el hardware del sistema operativo) afecta la corrección, el rendimiento o la utilidad de un programa en C, entonces incluido en el curso. De lo contrario, lo rechazamos. Entonces, por ejemplo, el diseño del autobús estaba fuera, pero los cachés estaban adentro.

Ofrecimos nuestro nuevo curso básico de sistemas, llamado 15-213: Introducción a los sistemas informáticos (ICS) , por primera vez en otoño de 1998. Hay un viejo dicho en la comunidad docente que “la primera vez que enseñas un curso aprendes un mucho, la segunda vez que lo enseñas tus alumnos aprenden mucho “. Sin embargo, la respuesta de los estudiantes a nuestra primera oferta del curso fue sorprendente, con FCE promedio de alrededor de 4.6 / 5 y un FCE medio de 5/5. El curso se ha ofrecido cada semestre desde entonces, y continúa obteniendo FCE altos, a pesar de que ahora se ha convertido en un curso muy grande.

A partir de 2014, ICS es un curso básico requerido que es tanto ECE como CS (¡aunque estén en universidades separadas!). Cada año, más de 1,200 estudiantes universitarios y graduados de CMU lo toman de departamentos de todo el campus.

La respuesta al curso de ICS fue tan abrumadoramente positiva que nos dimos cuenta de que habíamos encontrado algo nuevo y potencialmente importante para los programas de ECE y CS en todo el mundo. Así que escribimos un libro de texto basado en el curso, Bryant y O’Hallaron, “Sistemas informáticos: una perspectiva del programador” (CS: APP) , y lo publicamos con Prentice Hall en 2003. Desde entonces se ha convertido en un éxito de ventas adoptado por cientos de escuelas. en todo el mundo, reemplazando el antiguo curso de Computer Organization con el nuevo curso de CMU ICS. Las adopciones incluyen escuelas de élite como Stanford, Rice, Harvard, Texas, Washington, Harvey Mudd, la Universidad de Pekín, el Nacional de Seúl, KAIST y ETH, así como muchas escuelas estatales, escuelas de artes liberales e incluso colegios comunitarios de dos años.

Puede ver una lista parcial de las escuelas que han adoptado CS: APP en http://csapp.cs.cmu.edu/3e/adoptions.html.