Rebooting computer science
What is computer science? Why are so few young people, at least in the United States, choosing to enter the field? Isn’t computer science just programming? What can we do about it?
Last week, I was privileged to attend the Rebooting Computing Summit, a gathering of 200-odd enthusiasts in Silicon Valley. The summit brought together the leading lights of our profession, and it was humbling to be in their presence.
Visionaries like Peter Denning, Vint Cert and Alan Kay, and industry legends like Multics creator Peter Neumann, Lisp authority Dick Gabriel, natural-language pioneer Terry Winograd, and UML inventor Grady Booch, were the headliners. There were also dozens of computer-science professors, high-school computing teachers, industry professionals, graduate students, and others top-shelf experts.
The purpose of the summit was, as the title said, to find ways to reboot the science of computing. During the three days, the group delved (sometimes deeply, sometimes not) into the fundamental questions. Is computer science just a hifalutin’ way to say “programming”? Is computer science really a science? Why isn’t C.S. generally seen as an attractive academic pursuit, compared to other science and engineering majors? Why aren’t young people lining up for careers in computer science?
Without trying to summarize three days of exercise, introspection and debate, there were some challenges that were generally (but not universally) agreed upon:
• Computer science has an image problem: It’s not seen as cool or relevant.
• There is a confusion, both within and outside our community, about exactly what C.S. is.
• Computer science impacts nearly every aspect of society, but it’s a deep dark secret.
• There are areas that are exciting to young people, like robotics and contests, but the C.S. tie-in is hidden.
What do you think are the challenges facing computer science?
The problem with computer science is that it’s neither here nor there. It gets outcompeted by practical development on one side, and mathematics on the other.
For talented people who have a passion for computers, the difference in job satisfaction between theoretical and practical work is probably small, but the difference in career prospects can be large. Practical work may be seen as more fulfilling, as you are working on something that will be actually and sometimes immediately used. The career prospects may seem more attractive, especially given the offers that people are getting from Microsoft, Google, and the likes.
Meanwhile, those who are really interested in theory more than practical development might perhaps be attracted to mathematics more so than computer science.
Computer science takes a peculiar individual who is firmly and obstinately committed to a middle position on the scale between theory and practice, and who cannot be motivated to switch entirely to the practical side.
Hey, I‘ll bet it was great to be with those guys. I met Terry Winograd at Stanford CS547, but the closest I’ve been to Vint Cerf is when “Vint Cerf” appeared in the SHARED section of my Finder window (LAN file sharing) when I was at a Bay Area Scala Enthusiasts meeting in Building 40 at Google. Fancy “doing” TCP/IP with the guy who invented it.
At the high school here in Lafayette, California, they teach (or taught—my info is a few years old) what they call computer science: word processing, spreadsheets and databases. 🙁