Classics of Computer Science
Bits and Pieces 2016-12-23
Summary:
While waiting for the new term to begin, I have drafted a proposal of a new course I hope to teach. I am borrowed shamelessly from courses taught elsewhere and from the advice of my colleagues. Below I paste a draft syllabus, which links off to a longer reading list. I would be grateful for advice on two points. First, the class by class selection of papers--do I have the right ones, given that each class can cover only a few? And second, what pedagogical style might work for a course of this kind? I don't want to limit enrollment (except by stating some prerequisite--basically, junior or senior standing, and having taken at least one sophomore-level CS course), but I also don't want (and surely could not find) an army of qualified teaching assistants to read weekly papers. Thanks for your advice! -------------------------------
Classics of Computer Science – draft course syllabus
An Engineer is said to be a man who knows a great deal about a very little, and who goes around knowing more and more, about less and less, until finally, he practically knows everything about nothing; whereas, a Salesman, on the other hand, is a man who knows a very little about a great deal, and keeps on knowing less and less about more and more until finally he knows practically nothing, about everything. – from a newspaper in the 1930s
Well those drifters days are past me now
I've got so much more to think about
Deadlines and commitments
What to leave in, what to leave out
- Bob Seeger, Against the wind
Argument
This course is intended as a synthesizing experience for juniors and seniors in computer science, a way for them to see the field as a whole, not through a survey, but by reliving the experience of its creation.
Our overarching goal is to create a unified view of the field of computer science for students who already know something about it. Even though the field is becoming splintered, a talented undergraduate can in four years learn something about all the major areas, and about how they connect together. Students can, and should, understand the development of the field from its origins, to understand what Boole, Babbage, and Turing were trying to do, and to see, in retrospect, how later scientific developments evolved from these roots. The structure of our undergraduate curriculum balances depth and breadth—we want students to be able to drill down on special areas of interest, and to develop some in-depth expertise, while not concentrating their studies exclusively on one subfield. But the balance is increasingly uneasy. Reading across time has the merit of helping students understand that the fragmentation of CS into specialty areas was not a divine creation—that indeed, speciation is the result of a still ongoing process of invention and discovery.
Because the field is young, many of the seminal papers are as readable today as when they were written. We will, each week, read and discuss several related papers. Some true classics we will read in full, because they are models of clarity as well as creativity, while other papers will be read only in part, their technical details having been superseded or rendered obsolete by later developments.
I intend this to be a 100-level course with a “0” or “9” penultimate digit so that it will count for concentration in Computer Science but will not be usable to fulfill the breadth requirement.
Learning objectives:
· To identify the major subfields of computer science, their intellectual family tree, and the major figures and works of their birth and infancy.
· To be able to place current computer science research in the context of its intellectual lineage.
· To be able to present to an audience of educated but non-specialist computer scientists some of the major ideas of computer science in a way that is succinct and easy to understand.
· To be able to critique constructively similar presentations by others.
Syllabus
There are 25 ninety-minute classes in the term for courses meeting twice a week. The syllabus below is a first cut at organizing the classes. One of the challenges will be to edit the list down, or to limit the number of pages from many of the papers without gutting the technical content. These papers are drawn from a master list which is publicly viewable and includes links (some requiring a Harvard login).
&
Link:
http://harry-lewis.blogspot.com/2016/12/classics-of-computer-science.htmlFrom feeds:
Berkman Center Community - Test » Bits and PiecesFair Use Tracker » Current Berkman People and Projects