While more and more students entering Stanford have at least a little programming experience, the inner workings of a computer remain elusive to many undergraduates. CS 56N: “Great Discoveries and Inventions in Computing” seeks to dispel the notion of a computer as a magical box.
This three-unit Introductory Seminar is being taught this fall by John Hennessy, a professor of electrical engineering and computer science. Many students may know him as the former president of Stanford.
Hennessy seeks to teach students how computers fundamentally work, what is computable and how computing technology has developed so rapidly. The course covers a wide array of topics including algorithm design, cryptography and finite automata, or machines that recognize sequences of characters. Students learn everything from how to write regular expressions to how to decipher short encoded messages.
“We cover material that would be in five or six different CS courses,” Hennessy explained. “[The students] get a piece of more advanced programming courses, a piece of CS 103, a piece of a cryptography course, a piece of a computer hardware course. They get a real exposure to the breadth of the field.”
For the capstone project of the course, students work in pairs to choose an invention or discovery in computer science, write a 10- to 20-page research paper about their chosen topic and present their findings to the class.
“The final project was my favorite part of the class,” said Cheenar Banerjee ’17 M.A. ’18, who took the course as a freshman and is now the teaching assistant. “Students have a lot of freedom with their final projects to go deep into any area of computer science that interests them.”
According to Banerjee, chosen topics span the entire field of computer science. In past years, students have elected to investigate everything from alternative approaches to traditional methods of cryptography to proofs related to well-known computer science problems. This year, students are investigating topics ranging from neural networks to intelligence tests to reinforcement learning for beating games such as “Go” in which one opponent tries to cover more board space than the other.
The capstone project isn’t the only highlight of the course, Hennessy said. To illustrate the importance of computing to modern history, he invites all his students to a movie night where they eat pizza and watch “The Imitation Game,” a movie about Alan Turing. Turing famously cracked the Enigma Code in World War II, allowing Allied forces to read German messages and likely shortening the war.
“In this course, you learn about the most fundamental topics in the history of computer science, ranging from the very basics of what is computable to modern day cutting-edge research,” said current student Federico Reyes Gomez ’21. “Professor Hennessy is one of the pioneers of the field and explains even the most complicated topics in a way that everyone can understand.”
Hennessy also leads students on off-campus field trips to explore the growth of technology and computer science, including a tour of the Computer History Museum in Mountain View.
“Most young people now have no idea how far the technology has moved,” Hennessy said. “They get to see the dramatic progress. They get to see computers that are a one-hundredth of the phone that is sitting in their pocket and that take up the whole room.”
In addition, students explore current work in computer science through a tour of the Google campus, supplemented by Hennessy’s explanation of how Google search fundamentally works. The tour also includes lunch with Stanford alumni currently employed at the tech giant.
Banerjee said as a freshman she was especially inspired by the women engineers who attended Stanford and worked at Google.
“The course had a big impact on me eventually choosing to major in computer science and pursue computer science as a career,” Banerjee said. “The topics, the field trips, everything encouraged the interest I already had in computer science.”