OK, gang, it seemed to be a reasonable bet that Ed Nilges' message in RISKS-11.86 would start a lively discussion. But it was rather less constructive than I had hoped, and many of you missed the bigger picture. Well, now we are starting to run off into all sorts of tangential directions. Thus, I hope that this issue and some other contributions that must be deferred to RISKS-11.91 because I try to hold issues smaller than the 32Kbytes (which is the limit for some of your mail systems) will be last of it for a while -- unless something incisive comes in from Edsger Dijkstra or Karen Frankel or Danielle Bernstein... And if you feel you must reply to this issue, please wait until you see RISKS-11.91, with a few more items on this subject. But let's stick to the basic issues, not to second- and third- and even fourth-order incrementals. Those tend to get tiresome quickly for most readers, and your moderator runs the risk of swinging from more-inclusive mode to more-exclusive mode... Thanks. P.
For some reason that I don't understand, an early draft of my message to Risks was sent instead of the one I spent two hours polishing (sigh). You'll have to take my word that it was great :-). Here is the final paragraph that was totally missing in the version printed: I am most appalled at the implication in many of the messages that have appeared in Risks that in order to get more women into computer science, standards must be lowered. That is, they imply that the main reason why women are not participating is because they are not capable of logical and mathematical thinking and getting more women means that worse (and riskier) software will be produced. The reason for the low number of women in our field stems more from this type of prejudice than from any lesser ability. I have written about the extra barriers and difficulty that women face in becoming computer scientists. If you are interested, an article that appeared in the Newsletter of the Computing Research Association can be obtained via anonymous ftp from ics.uci.edu -- the article is in pub/nancy/snowbird (print using troff -ms). In this same directory, by the way, you will find a long (but incomplete) list of women PhD.s in Computer Science or Computer Engineering who are professors in Ph.D.-granting universities or in industrial research.
I find it telling that all of the dialogue on this subject has been between men. Maybe that speaks to the fact that there aren't very many of us women in the field of computer science. [Don't forget Nancy Leveson's item in RISKS-11.88!] I have some strong ideas about this subject, having spent my senior year writing a thesis about issues of women and computer science education. Before you decide to dismiss my position as the ranting of a feminist, let me tell you a little bit about my background. I graduated last year from MIT with a B.S in computer science, so I'm not talking about this issue on an abstract level, but rather from personal experience as a woman in a computer science program. I did quite well in my "formal" programming courses and I am now working for a small software development company. I think that it is fairly obvious that there is something about computer science that discourages women from entering the field. One place to look for discouraging forces is in the realm of computer science education. While the percentage of women at MIT is around 35%, the percentage of women in computer science is 22%. What is more interesting is that the enrollment of women in the introductory computer science course is around 30%. This class is the first class that someone who is thinking of majoring in computer science would take. Is there something that about the course that causes women to decide not to major in computer science? I think so. This topic was the subject of my thesis, but I'm not going to go into it here, except to say that it has a lot to do with the course's emphasis on abstract, logical reasoning. I was a lab assistant for the course for two years, so my conclusions are based on extensive observation of students taking the course. I am not advocating the elimination of training in formal logic from the computer science curriculum. I think that computer scientists need a background in this area. Structured programming is necessary for large programming projects, to manage complexity, reduce the potential for errors, and help in all of the other ways that it does. However, I don't think that training in formal mathematics and logic should be the only training for computer scientists. It also should not be the first subject in a computer science program. The field of computer science is much more than just structured programming. There is room for a lot more creativity than is allowed by formal logic. After taking the introductory computer science course at MIT, I decided not to major in computer science because I didn't enjoy formal programming. I thought that structured programming was all that people with computer science degrees did. After a year and a half of electrical engineering courses, I changed my major to computer science and discovered that there is a lot more to the field than I originally thought. One problem with the almost universal focus on logic and abstract reasoning in computer science education is that it affects all levels of computer education. Programming courses in high school demand that students use structured methods. Even courses in Logo for grade school kids emphasize procedures and abstraction. It hardly seems necessary to start training kids how to write "correct" programs at that age. One of the reasons that there are so few women in college computer science programs is not that they are turned off to computers in college, but that they are turned off to computers at a much earlier age. There is a lot of evidence from psychology and sociology that supports the idea that women and men have different cognitive styles. Our society and its educational system values abstract, logical thinking, which is typically the male domain. Women's styles of thinking are seen as inferior. I haven't read Frankel's article in CACM so I don't know if Ed Nilges' paraphrasing is accurate: > mathematics on logic.) Nye, and apparently Bernstein, believe that solitary > abstract thinking is a typically male activity and to force women to engage in > it is sexist. Forcing women to think abstractly isn't sexist. If Bernstein calls it sexist, it is unfortunate. However, setting up a system that values the male style of thinking and devalues the female style is sexist. These values create a roadblock that women have to overcome to succeed in the male-defined and dominated world of computer science. Faced with these barriers, all but the most determined women will give up at some point, either in grade school, in college, or at the professional level. There is little room for creativity in a world that is ruled by formal logic. A number of areas of computer science have have benefitted greatly from creativity that probably never would have happened within the constraints of abstract thinking. Two areas that come to mind are artificial intelligence and user-interface design. The argument, raised by Eric Postpischil, that women need to be taught in the way that is best for them, not in a way that they are comfortable with, assumes that "best" can be defined universally. Teaching everyone formal logic may teach people how to write more "correct" programs with fewer bugs, but it won't help anyone write innovative programs. If creative people are discouraged by the formal, abstract nature of computer science, it will only be to the detriment of the field in the end. Eric Florack asks: > even-handedness amongst the sexes, I question your conclusions.. Do we attempt > to change laws of chemestry and electricity because of a particular group of > students' inability to learn the laws as they are? IE: do we attempt to change > reality to aid some people's ability to deal with it effectively? Why, then do > you conclude that to learn computer logic, one need not learn logic, first? Is > it simply because of one 'minority' or another's inability to deal with that progression? First of all, computer science isn't a science like chemistry, it is an engineering discipline. There are no "laws" of computer science. And secondly, if scientists had always blindly obeyed the laws as they knew them, we wouldn't have things like the theory of relativity, quantum mechanics, or chaos theory. Eric goes on to say: > It is the retreat from the more formal, (and yes, harsher) learning > environments, the 'massive dose of new ideas' that have placed this country > into the educational crisis it's in today, where nearly 50% of high school > students cannot read effectively. In the 'marginalized groups' as you put it, > these percentages are even higher... we expect less of them, so they produce > less. What you suggest is more of the same. I disagree completely. Educational techniques have changed very little in the past century while the world has changed considerably. The educational crisis is the result of this disparity. Kids don't feel like their teachers are teaching them anything worth learning, so they don't learn. Until education is made relevant to kids' lives, the crisis won't go away. 'Marginalized groups' suffer the most from this problem. Until education is truly multicultural, these groups will continue to be marginal. When kids get the message that they are not valued, they are going to act accordingly. In the same way, most women are going to avoid computer science until the computer world begins to value their style of thinking and the contribution that they could make. And some women in the field will continue to feel isolated by their difference. Paula M. Ferguson, Lewis, Trachtenberg & Associates (LTA) +1 617 225 0366
Based on the co-ops and young engineers/programmers that I've worked with, the current methods of teaching programming don't work, whether based on formalism or problem solving philosophies. Being able to write little programs, no matter how elegantly, is no introduction to reality, which seems to consist most frequently of modifying sections of existing (and frequently ugly) code. Debugging is also a topic that should be dealt with in more depth. Mary Shafer ames!skipper.dfrf.nasa.gov!shafer NASA Ames Dryden Flight Research Facility, Edwards, CA
Reading the replies and having watched some previous...What and How to teach computer science discussions, I have a couple bits that might be worthy of attention as we contemplate. Fundamental before we even get to the politics of men/women is the question of what gets taught, why and how is it used... from late 70's till recently there seemed an unfillable demand in America for programmers (and related software skills, software engineers, documenters that understood software, analysts...) This void sucked up almost anyone who could and wanted to do this kind of work...spectrum from starting with a single computer course to PHD's of many flavors.... Coming to today, the demand seems to be slackening but not so much so that we can set up the academic training system so that only .1 percent of the mathematically gifted can past... A useful analogy for education and professional life is that of an adjustable filter, besides shaping people it filters. As a filter, some people get rejected, thats how it works, but the adjustability of the academic part of it is loosly coupled to job market requirements. I say loosely coupled because some CS education programs with quite high formal contents are relatively weak on critical job related skills like test design, requirement and user oriented design that are needed to build real world systems. To make an exaggerated example, the formal analysis of a computation problem will not help if the engineer puts in no input checking to insure that the input is a number. (sorry to say, I've seen that bad, defended as performance requirements) Similar loose coupling is common in all engineering fields, there are risks in at least two directions, the curiculum gets so formal and remote as to not be useful to the profession or it gets watered down and too many graduates are release unable to perform the work. This and many other curriculum and accreditation discussion are a necessary part of the eternal vigilance of professions and so should be frequently discussed. Personally I think the roots of the argument are such that the solution is that nobody wins... I don't believe that the formalists want or imagine computer science in the US to be 95% mathematics with no computers or that the other side wants no logic or mathematics, they are discussing in an exaggerated way the balance point. Changing directions from whats the arg and why nobody should win, I'd like to pick up the thread about various styles as stereotyped by nationality; there do seem to be important differences in working style fostered by different cultures and education systems and in my experience this is stronger than sexual differences... The hardworking diligent precise asian, the theoretical indian, the hacker american are dangerous stereotypes with some base of observable truth, and out in industry they have strengths and weaknesses, it seems that with in a curriculum for computer science overburdened as it is that there is a need the project management, working as teams foci and this useful set of skills if present in several of the programming language and software engineering courses of a program would make them easier and more attractive to certain personality types with certain slightly different skills than the current approaches. I would not leave this in the realm of man/woman, in the company I work for it's marketing/technical and technical/management/production operations were the problems of approach become crisis.
>The goal should be to produce as many good programmers as we can; don't >exclude someone or force them to be less efficient by selecting a single >method of teaching. This is the wrong goal! Taken to an extreme, we may as well give typewriters to monkeys and try to pick out the literary works. It would be a mistake to try to increase the production of good programmers (or bridge builders, or Chevys...) by adopting new methods of training if those other methods increase the risk of producing bad programs (or unsafe bridges, or defective Chevys). Although I know a number of excellent, self-taught programmers, on the whole I have found that people with formal training tend to write more reliable and maintainable programs. Mart L. Molle
>To go back to Geraint Jones' bridge building analogy, some of us produce >bridge building kits. Others, having faith that the kits will assure the >bridges will not fall down, concentrate on the aesthetic or political or >whatever aspects are appropriate. I thought that the point of the bridge-building analogy was that there's no such thing as a "bridge building kit." Sure, you can buy prebuilt trusses and assemble them, but the assembly is supervised or at least reviewed after completion by a civil engineer. The construction of reliable software needs the attention of a professional. You don't guarantee the correctness of your solution just by using a "kit" in the form of some higher level language. In the same vein, using SPSS doesn't guarantee the correctness of one's statistical efforts. The user needs to apply formal techniques to assure the validity of the sample population and that the statistical techniques being used are appropriate for analyzing the sample. Well, actually I do know of a class of things called "bridge building kits" but they are generally sold in toy stores. I think this has an apt analogy with software development, too. The unpracticed eye really can't tell the difference between prototype software that tries to simulate a problem solution and software that really implements a problem solution. Bridge building with Lego blocks can be a complex and even satisfying endeavor, but it's just not the same as building one to carry real traffic. Rick Smith, SCTC, Arden Hills, Minnesota.
I have read with interest, and considerable dismay, the recent discussion generated by Danielle Bernstein's comments on Dijkstra's call for reform in computer science education. Dismay because most (but not all) of the postings reflect an underlying assumption that women are innately incapable of mastering logic and mathematics. It seems that even Bernstein makes this assumption. Aw, come on folks! The only reason men seem to out-perform women in these areas is that we are conditioned to it. The conditioning begins in grade school. Teachers assume that boys will be better at math than girls. Girls are dissuaded from pursuing higher math, logic, and technical subjects. Both teachers and parents are to blame here. Since women still comprise the larger group of educators, this seems to indicate that women themselves are doing their part to perpetuate the problem. My daughter received a pretty fair dose of this conditioning. As a result, she struggled with math. I embarked on a protracted de-programming effort. Largely because she is now free of this nonsense, she is on track to take the Calculus AP exam during her Junior year in High School. Relaxing computer science curricula will not fix this problem (We would only be addressing the symptoms). On the other hand, I would not want to rely on software written by a less rigorously trained programmer. Let's fix the problem, not the symptoms. ********* Let me shift to a closely related problem I see (which has also been reflected in this ongoing discussion). Why do we assume programming has to be some kind of solitary (lonely?) activity? Why do our schools teach programming as an INDIVIDUAL activity? (A local university not only does not teach team effort but FAILS or EXPELS students who work together!) Failure to teach software design and development (SDD) as a team activity already costs all of us. Major software projects are usually (and should be) team projects. But, because team members have been conditioned to solitary effort, these projects suffer from personality and software integration problems. Students hear of "ego-less programming" but never practice it. How much have firms like Lotus, Ashton-Tate, and Microsoft suffered from this problem? How much of your tax dollar is spent on protracted debugging and retesting of government projects? As a former government QA specialist for computer software, I can tell you that the cost to taxpayers is more than it should be. Why can't our universities require successful completion of a team programming class for a CS degree. Graduate students would participate as team and project leaders while undergraduates would make up the teams. Student grades would be based upon individual, team and project accomplishments. After a few days discussion of team programming and possibly some team building exercises, the instructor would hand the students a specification and stand back. The class would be expected to develop the software and provide draft documentation. Mike Muth -- email@example.com
The RISKs of this discussion are: 1. that it will degenerate into quibbling over the respective attributes and capabilities of men and women and 2. that some of our readers will actually begin to believe that women are more (or less) logical than men and less (or more) effective in working in groups. It is incredibly unfortunate that sexist issues ever saw the light of day in CACM., RISKS, or any other credible forum. We have serious issues confronting us and need the talents of any men, women, and others who can contribute to the solutions. Research is inconclusive as to whether (elementary age) boys learn math better than girls. We certainly have no scientific basis to argue whether women are more or less effective as computer designers. I don't know whether we should have more or less rigor in CS education. I believe, however, that whatever the answer, we must assume that it applies equally to men and women. _Brint
Tim Shimeall asks: >Isn't there a need to differentiate programmers by background and >ability, particularly in development of life-critical systems? But a two-tier (or even n-tier) class structure in programming could be as sexist, classist and racist as excluding out-groups in the first place. Even more, as people are lured into the field, given sub- standard training, and then face a lifetime of frustration and glass ceilings. Furthermore, differentiation of programming problems into Serious and Not Serious is a rhetorical trick that conceals as well as reveals. Business problems are commonly regarded by computer science students and professors as Not Serious Enough, yet Dijkstra and others have commented on the difficulty of these problems: as Dijkstra writes, "The problems of business administration in general and data base management in particular are much too difficult for people that think in IBMerese, compounded with sloppy English." Also, software reuse implies that a programmer may be working on code she thinks not mission-critical, only to have the code be picked up in a mission-critical system at a later time (is a compiler not life-critical? what if I use it to compile something that is life-critical?) Jean-Francois writes (and I apologize for not being able to spell his name with proper accents): >The discussion revolves around straightening the three following inconsistent >propositions: > >1 Abstract logic is necessary to the computer industry >2 Logic is not compatible with women Good heavens, nobody is making this claim...sounds like something Jean-Louis Gassee would say on a bad day. For one thing, it's a type conflict of the first order. >Most of them have *at best* a knowledge of conversational english, yet they >have to access to hard technical literature. Those who are not proficient >enough or cannot adapt are definitely weeded out. You can find this perfectly >normal or unacceptable depending on how much you think cultural imperialism is >relevant to computer education. Cultural imperialism is VERY relevant. Algol lost out to Fortran in part because of imperialism: Algol was superior to Fortran but the United States could not concede that the Europeans had the lead in programming languages. But I think you'd concede readily enough that it would be a DISSERVICE to French people and other non-English speakers to avoid requirements that they learn English as part of the preparation for a technical career. But this is exactly what Ms. Bernstein wants CS departments to do for women.
I think that many of the people discussing this topic are reacting to other people's interpretations of Bernstein's ideas, rather than to what the CACM article of November 1990 actually says. For instance, Ed Nilges: "Bernstein, according to Frankel, feels that Dijkstra is being sexist!" Hal Pomeranz: "It is unfortunate that Bernstein slings the word 'sexist'..." Michael Tobis: "It is more than 'unfortunate' that the word 'sexist' is used .... The problem is that the issue is being attacked _on the grounds_ of its social/political appropriateness ..." My bet is that if we all went back and read the CACM article, the discussion would be shorter and calmer, and our Moderator would be happier. Frenkel discusses Bernstein's ideas in six paragraphs of an eleven page article. No one ever calls Dijkstra "sexist"; Bernstein believes that Dijkstra's curriculum would cause disproportionate numbers of women to drop out, but that is not the same as an accusation of sexism. Bernstein does not call for the removal of formalism from computer science curriculums; she just wants an introductory CS course, based on the use of software packages as problem-solving tools, that would help to get women hooked early. Frenkel's interpretation of Bernstein's opinion of Dijkstra's proposal comes down to two sentences: Bernstein disagrees with this approach because it would discourage those who want to "see, tinker, experiment, and interact" with computers in order to understand principles. And so, she says, Dijkstra's approach would cause computer science majors to further dwindle. To me, "those who want to 'see, tinker, experiment, and interact'" sounds a lot like "hackers", who are stereotypically male. And note that the last sentence does not say _women_ CS majors. Given earlier statistics and later comments in the article, I think she is worried about the total number of CS majors. Of course, all of the above is just my reading of the article. Please read it and form your own opinions. Glen Ditchfield firstname.lastname@example.org Office: DC 2517 x3437 Dept. of Computer Science, U of Waterloo, Waterloo, Ontario, Canada, N2L 3G1
Please report problems with the web pages to the maintainer