Características avanzadas de gestión de la memoria de C y C++; las diferencias entre los paradigmas imperativo y orientado a objetos. El paradigma funcional (utilizando LISP) y la programación concurrente (utilizando C y C++). Breve estudio de otros lenguajes modernos como Python, Objective C y C#.
Requisitos previos: Programación y resolución de problemas en el nivel de las Abstracciones de Programación. Los futuros estudiantes deben saber una cantidad razonable de C++. Deben sentirse cómodos con los arreglos, punteros, referencias, clases, métodos, asignación de memoria dinámica, recursividad, listas enlazadas, árboles de búsqueda binaria, hashing, iteradores y punteros de función. Debería ser capaz de escribir un código bien descompuesto y fácil de entender, y comprender el valor que tienen los buenos nombres de variables, las implementaciones cortas de funciones y métodos, y los comentarios bien pensados y articulados.
Este curso de Stanford se impartió en el campus tres veces por semana en conferencias de 50 minutos para la Iniciativa de Ingeniería de Stanford en todas partes.