"Rethinking Computer Science Education"
Prepared by Anne Dalke
Additions, revisions, extensions are encouraged in the Forum
Power Point Presentation
Deepak had two goals for his talk today: a discussion of what computer science is, and a review of issues in computer science education. He began by acknowledging (and the computer scientists in the room agreed) that 1/2 the members of his profession would not agree on the terms he was going to lay out. Neither would most of the general public. The public perception of computer science is "driven by a societal artifact: money." Computers have a large impact on the world and the national economy; how should one teach the science of computing?
Deepak spoke out of the experience of coming to Bryn Mawr 13 years ago to develop a new program in computer science. How did he start from scratch? What considerations were in play? Building up from the strong tradition of success in the science @ Bryn Mawr, he organized the program as a "natural science that studies procedures." (There was some debate about how the objects of computer science can be considered "natural": they are touched and felt. Human intervention was needed to create them. They involve, in the largest sense, the natural activities of manipulation and cognition.)
Central to the work of computer science is an awareness of the amount of time and resources needed to complete any task. How many procedures are needed to complete the process, and how long will it take to do so? (Example: The Towers of Hanoi). Computer scientists understand that you do not have to do a problem in order to solve (and understand) it. Computer science is a branch of applied mathematics; it is "the science of procedures." It is concerned, fundamentally, with the fundamental nature of human inquiry: what are the essential questions? How can they be solved? And how long will it take to do so? Central to the investigations of computer science is the distinction between infeasible and feasible procedures (the line between them being how long it takes to perform them).
Deepak defined a computer as a "general purpose procedure-following machine." (There was some debate about whether humans are computers: they are capable of following procedures; during World War II, there were human "computers." But humans are also capable of refusing to follow instructions. They do not always take the same imput to produce the same output, and many fields--psychology, philosophy, linguistics--have evolved that try to understand that gap between "what comes in and what goes out." "As currently defined," the brain can decide not to follow procedures--the helpful distinction here being between "can" and "must." Or perhaps the brain is just following different procedures, and we don't yet understand what they are??) One of the foundations of the field of computer science is the Church-Turing thesis, which describes all procedures that can be computed by a mechanical device. But computation can be mechanical or natural. This is why computer science is a science, because it spans the spectrum between.
Computer science, in short, is both basic and applied. The field includes theoreticians, who study the boundaires of computing; experiemntalists, who study its effects, and computer scientists who, most generally, study "what a computer is." (They could be biologists, or quantum phsyicsts). Engineers build computers, but computer science is "not all programming." It involves formal descriptions of procedures, which to direct a computer to perform certain actions; it is "just like" a musical score, or a recipe (with the caveat that the latter involve both more specificity and the ability to interpret--not to to follow--the instructions). Contrary to popular belief, computing is not a "science of algorithms"; it includes procedures (like thinking) that are more than that.
There is actually a "big debate" in the field about the defintion of computer scince. Some see engineering as essential to it; others focus on the nature of the artifacts; some call it an "un-natural science." These different defintions come into play in the design of computer science education. Deepak reported on the decreasing percentage of female graduates with computer science degrees, a decline that reflects much more persistent trends than the most recent dot.com bust. Studies in the attraction, retention and attrition of women in the vfield (where the decline is "much bigger" than it is in the other sciences) have led to several conclusions. A study at Carnegie Mellon, which tracked 300 students, reported three causes for why there are so few women in the field: early gender socialization; peer pressure; and (the area which most interests Deepak) the disjunction between the interest of women and the orientation of the computer science curriculum. (Another possibility is that computer science education has been "outsourced": perhaps the definition of what consitutes computer science--including work which can now be done in other fields, or in interdisciplinary spaces--needs to be taken into account in these calibrations.)
There is an explicit bias in computer science education: an inherent obsession for the most efficient (=fastest) procedures. Although earlier curricula were explicitly designed designed to weed out those who could not survive the challenge, that attitude is begining to change: smaller numbers of majors have provoked programs to revamp curricula in order to recruit more students, rather than creating obstacles that prevent them from majoring in the field). And yet biases persist. In practice, curricular design, first driven by the Dept. of Defense, is still driven by the market; it is designed to meet the needs of industry. Where is the "human inquiry aspect"? The procedures taught in most classes are relevant only to computer scientists. What are their relevance to the lives of students? Students are taught, for instance, how to design a symbol table, not how to find the freshest eggs in the grocery story (hint: cartons are marked w/ the day of the year on which the eggs were hatched. Correction: the day on which they were laid).
The computer science curriculum, Deepak argues, should reflect the fact that it is fundamentally a discipline of inquiry. Computer science courses meet divisional requirements in quantification. Deepak described the programs offered @ Bryn Mawr (a major in computer science, a minor in computer science and--unique in the country--a minor in comutational methods. The latter includes, along with four "straight" computer science courses, two courses in computational modeling offered in the student's major; there are currently approximately 30 courses of this nature offered on the Bryn mawr campus. Computer science minors are prepared to go to graduate school in computer science; many of the computer science majors @ Haverford choose instead to go to law school.
Deepkak closed his presentation by describing the "ground rules" of the computer science program at Bryn Mawr:
- offering college seminars
- "humanizing" the core courses (using real life stories, rather than lots of technical work)
- considering both bias and relevance in the design of all artifacts
- breaking the rigid boundaires that divide comptuer science from other disciplines ("if you have a context, explore it; for instance, if questions arise about language design, work with them")
- acknowledging that "less is more" (don't teach the entire curriculum, but focus on the fundamentals; the model of the more recent Olympic games, with their ever-proliferating sports)
- allowing choices in the design of the major and minor ( no other program in the country gives students so much flexibility in designing their own major and minor
- diversifying faculty course distribution, so that they don't get bored.
Discussion turned to the "level of discourse" of the discussion: how to talk about computer science to other scientists, for example, as opposed to doing so on the college web site. (The suggestion was made to substitute, for a "natural science that studies procedures," a definition describing "a means of understanding networks that enable connections and communication"). Might computer science be described as the creation of a play space, rather than the acquisition of tools? Computer science seems to encompass 3 or 4 different disciplines. Consider, for example, its relation to cognitive science, which looks at how the works. The computer can be used in that field as an artifact to model the processes involved in intelligence.
"Scientist" entered the language in the 1830's (Benjamin Franklin was a "natural philosopher"). Maybe "computer science" will enter the discourse not as an independent discourse, but as a part of all disciplines? Perhaps, but a distinct need will still exist (to design programs, etc.) The "modern Latin phrase" in silico suggests that the activity of modeling problems on computers is no more insulated than is the practice of any other modern language. More fundamentally: no one will soon not be able to go to any liberal arts college without computing as part of their toolbook. Computing is like philosophy, like logic, like the study of mind. It's time to shift the foundations and cease to draw boundaries that separate that activity from the work of all other disciplines.
The discussion continues on the on-line forum, and will resume in person on April 14, when Rachel Horton ('07 Biology) and Maeve O'Hara ('08 Math and Education) will present "The Students' Point of View" on Re-thinking Science Education.
Return to Brown Bag Series on Rethinking Science Education