While most computer science classes focus on practical skills, CS 54N: “Great Ideas in Computer Science” explores the subject’s history and intellectual foundations.
Students of the 3-unit freshman Introductory Seminar learn how computing has advanced over time, from complex astrological machines dating back to the 1st century BCE to the cryptography techniques of World War II to the rise of artificial intelligence.
“I think that computer science is one of the most intellectually exciting fields,” said Emeritus Professor of Computer Science Eric Roberts, who teaches the course.
“For most people it’s a technology, but I want people to at least recognize that it has this aesthetic, artistic, elegant side. The ideas are wonderful,” Roberts added.
Roberts began teaching “Great Ideas in Computer Science” as a Sophomore College course in 1995.
“It started as this feeling that if you go to the bookstore, you can find books about how physics works and what its great ideas are, or how chemistry works and what its great ideas are,” Roberts said. “If you go to the bookstore and you look for computer books, it’s all about how to do something, like learn Java in 21 days.”
Roberts began to design a course reader that would fill this gap in computer science education, and “Great Ideas” was born. Since 1995, Roberts has taught the sophomore college version of the course sixteen times. He first taught the introductory seminar about a decade ago, and has offered it again for the past three years.
Roberts also teaches large introductory computer science courses such as CS106A, and said he enjoys the more intimate format of Introductory Seminars, which allows him to know each of his students and to extend in-class lessons with field trips.
So far, the class has attended two plays. Most recently, they took the Caltrain to Berkeley to watch “Ada and the Memory Engine,” a story about the woman sometimes called the first computer programmer. Last week students spent Wednesday evening at Roberts’s house watching the movie “Breaking the Code,” which related to their study of wartime decryption machines.
“It really helps bring the material to life,” said Jihyeon Lee ’19, speaking about CS 54N’s excursions beyond the classroom. “These things really did happen and they had an impact in the real world.”
Later this month CS 54N will visit the Computer History Museum, which hosts a replica of a hefty early computer called the “Difference Engine.” Unlike most museum visitors, the students will actually understand how the massive machine works because they have interacted with the “Difference Engine” and other early computers via online simulations created by Roberts.
Many students said the simulators were a highlight of the class. David Steinberg ’19 enjoyed the challenge of writing programs for Roberts’s online models.
“Basic programs to add numbers and stuff are actually really hard with the early computers,” Steinberg said. “If you do it in C++ or Java it’s just a line of code, but it’s different in these machines with really early language.”
To enter the mindset of early “computer scientists,” students try their own hand at historical puzzles. This past Monday, as part of the cryptography lesson, Roberts gave the class a copy of the first German message intercepted by British radio on D-Day, a weather report. Students worked in groups to create a “menu” for deciphering the message and then got to watch scientists in “Breaking the Code” use the same methods.
Ben Beltran ’19 also enjoyed working with the older computers.
“It’s really interesting… seeing how the problem solving techniques still apply to computers today,” Beltran said. “As computers develop, we still use the same foundations.”
Members of the class range widely in their experience with computer science. Some are currently in CS 106X, while others have never taken a programming class. However, students are united by their interest in studying broad ideas. In fact, interest is Roberts’s main criteria in choosing which 16 of the course’s 160 applicants to admit.
“They may not know anything about computers, but they’ve indicated in the essay that they like ideas, and I really want to work with them,” Roberts said.
For example, Beltran has long been interested in computers but has little programming knowledge. He wrote his application essay about his love of problem-solving.
Others, like Jihyeon Lee ’19, who took AP Computer Science in high school, have formal training in CS but wanted to approach the field from a new angle.
“But because it’s such a fast-changing field I never really got to learn… the overarching trends throughout computer science history,” Lee said.
Contact Hannah Knowles at hknowles ‘at’ stanford.edu.