Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

December, 2005

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Women in Computer Science


    The debate over the shortage of Computer Science graduates has brought the issue of women in Computer Science back into focus again. Of course for those people who look into their high school COMPUTER SCIENCE classrooms and see nothing but male faces I doubt it has ever moved far from thought.

    The Boston Globe had an article about the issue this past Sunday. Unlike a lot of STEM (Science, Technology, Engineering and Math) programs Computer Science programs are seeing drops in female enrollment.  Personally I think that is because most STEM programs are all about the S&M and not much about Technology and Engineering but that is just part of a larger issue.

    Jane, a professor of Computer Science, points out recently that the issue is a hard one to fix. Some people are part of the problem and some are part of the solution.

    When thinking about diversity within the techie fields, I tend to put technical people into one of two categories: part of the solution or part of the problem. Bill Gates? Part of the problem (in the sense that the models of computing success we hold up are overwhelmingly white, male, and "socially challenged"; not in the "Microsoft is bad and evil!" sense). Jane Margolis and Allan Fisher? Part of the solution ("we saw a problem with gender diversity at Carnegie Mellon and we worked really hard to fix it. Here's what worked for us.").

    Jane Margolis and Allan Fisher come up in just about any discussion of this issue BTW. Their book Unlocking the Clubhouse: Women in Computing is the book for people who are interested in this issue to read. I confess that I haven’t read it (shame on me) but I was one of the teachers fortunate enough to take part in the 6APT program at Carnegie Mellon that Jane and Allan organized and presented over three summers and six sessions a few years ago. They brought a lot of what they had learned at CMU into that program and some of what they learned in 6APT made it into the book. Their program was a wonderful education in how to involve (or at least scare fewer young women away from) Computer Science. I didn’t lose many girls after that and I saw a number of my female students take Computer Science in college. But it wasn’t as much help at getting girls into class as I’d hoped. The experience convinced me that the problems were as much if not more outside the classroom.

    I talk to high school teachers about this all the time. Every teacher I talk to wants to teach Computer Science to more female students. (And more students in general.) Brian Scarbeau talks about his attempts to bring more female students into his classes at his blog. Brian is not so atypical as you might think in wanting to actively recruit more girls into his classroom. Computer Science is a great field. There are tremendous opportunities in it. But the deck seems stacked against getting women into the field.

    Every teacher I know works hard to create a welcoming environment for female students. But they run into societal issues like the male geek stereotype that scares some girls away. Even worse though the run into guidance councilors who encourage girls to avoid Computer Science completely. If a girl insists on taking a “computer course” they all to often get pushed into a multi media or computer graphics course. Now there is nothing wrong with those courses but a lot of girls would really do well in a programming course – something that leads to real Computer Science. Why do they do that? I’m not sure but I think it has something to do with tailoring transcripts for college. Colleges are not asking students to have Computer Science to attend college. And yes, I think they should.

    I believe that taking Computer Science helps a student succeed in college by building their problem solving and thinking skills. Succeeding in college is more important than just getting into college in my opinion.

    But coming back to attracting women into the field, Zuska has a strongly worded blog post on the issue. Zuska has a real problem with solutions that place the blame on women for their poor numbers in Computer Science. She has a  point of course.

    The proposed solutions all revolve around doing something to or for girls/women in order to bring them into CS.  This focus, intentionally or not, locates the problem within women.  Women need their interest raised, women need their confidence increased, women need their sense of belonging improved.  It seems to me that we ought to be phrasing the issue this way:  CS needs to improve its appeal to women, CS needs to stop behaviors and practices that undermine women's confidence, CS needs to work at developing a more inclusive environment.

    I agree with a lot of this. But not completely. I don’t think that people in Computer Science do much to undermine women’s confidence. To the contrary I think that most teachers work hard to promote self-confidence in all their students. There are clearly issues in society that undermine female self-confidence but I don’t believe that Computer Science or Computer Science education is more than a pale reflection of that. The computer field is not harder on women than most other fields and it is better than many. That doesn’t mean that more can’t or shouldn’t be done though. But women are going to have to be a bit more help here. Most men just don’t know what they are doing wrong without someone telling them. Men make a convenient scapegoat but I don’t think that is fair.

    And it is wonderful to say that Computer Science needs to improve its appeal to women but tell me how. I know that the appeal needs improvement but I find Computer Science so appealing as it is that it is hard to see how it could be more appealing. So please don’t state the obvious. Tell us what to do to make Computer Science more appealing. Give me some great projects to assign that female students will like- be specific.

    I think the culture of business in Computer Science is changing by the way. As the current generation of Computer Science professionals is maturing (i.e. growing up and having kids) there is a greater sensitivity to family friendly work environments. it is not about all night work parties and eating nothing but junk food anymore. Companies in hi-tech like Hewlett-Packard and IBM make the Top 10 list of companies for working women from Working Woman magazine. So does Microsoft! Things are changing but the word is not getting out. How do we get the work out?

    What are the solutions? I think we need to do a couple of things. One is that we need to start earlier. Middle school is almost late. But programs like FIRST Lego League are giving younger girls some introduction to engineering and Computer Science. We need some programming courses at this level as well. That is something I expect to work on this year.

    Second we need women in Computer Science to be more visible to young women and to spread the message that there is a good life for a woman in the field.

    Thirdly we need to educate school administrators and guidance councilors that Computer Science is for everyone and that includes girls. We need to communicate the values of a Computer Science education and encourage girls who know how to solve problems (or want to know how to solve problems) to take more computer courses.

    And of course once a girl gets into a computer course we need to avoid scaring them away.


    [Edit: If you are reading this using RSS and are not seeing the comments you may want to look at them. Some interesting discussion going on.]

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    The Future of K-12 Blogging


    There are a couple of things that I think should happen with regards to K-12 blogging. I’d like to think that they will happen but the reality is that education does not respond quickly to new technology. We’re still not using computers in the classroom much better than we were when my son was a first grader 20+ years ago. We’re using them much better in school administration, just look at what you can get from a modern Student Information System today, but even there we are behind where we should or could be. But I’m an optimist so maybe by suggesting some things I can help make it happen a little sooner. So here goes.

    1. Every school principal and district superintendent should have a regularly updated blog. Yes I know they will say they don’t have enough time to keep one up but if you made attending school board meetings optional do you think your superintendent would still go? Darn tooting they would! And not just because they were not busy. Superintendents and principals need to realize that in today’s world communicating with the public is critical to their success. Blogs are a low impact (time wise) way of doing that. Blogging fits in the schedule when you assign it a reasonable priority. I suggest that a principal who wants to improve their school needs to have parents and the voting (especially non-parent voters) on their side. Blogging is a great way to do that.
    2. Every computer science teacher should have a regularly updated blog. Actually I would like to see every teacher have a blog but for the short term I will settle for computer science teachers blogging. There are several reasons for this.
      1. We need to build a community of practice in CS education. We need computer science teachers, who are generally alone in their building, communicating with their peers, sharing ideas, and supporting each other.
      2. The technology aware teachers need to set an example for the rest of the teachers. If they don’t use technology why should a social studies teacher?
      3. Most importantly, blogging is a wonderful way to share information with your students and their parents. Post links to extra resources along with a recap of a recent lecture. Give students an opportunity to comment on a current assignment or a recent test question. Expand the discussion and the learning outside the bell delimitated world of the classroom. Teach!
    3. School administrators and technology professionals have got to educate themselves about the Internet. They need to understand blogging, chat rooms, instant messaging, and other forms on Internet communication. They also have to learn the legal issues around Internet free speech, peer-to-peer networking and other related issues. Right now all too many of them are reacting in a knee-jerk fashion to things that come up. They are acting without understanding and that is leading to over reactions, embarrassing news reports and law suits, and missed opportunities to teach students. Any administrator who is forced to admit that their students know a lot more about the Internet than they do should be ashamed of themselves. Really ashamed. In fact they should feel about the same way they would if they had to admit that their students knew more about books than they do.

    Can you see a school board keeping a superintendent or principal who didn’t know how to find things in a library or speak to a large group of people? I don’t think so. Being able to find things on the Internet and to use it for communication is that basic a skill and school boards should demand some level of knowledge and skill in those areas in their administrators.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Weed them out or teach better?


    I don't know how many teachers are reading blogs during the Christmas break (or the winter break between now and New Years) but I hope some of you are reading this one. Joel Spolsky has a very interesting entry called The Perils of JavaSchools. No it is not an anti-Sun and/or anti-java rant. Well not in the sense that I might write one. :-) What it is though is an interesting and potentially provocative look at the state of computer science education.

    Two things that Joel believes that CS students need more of are recursion and pointers. While you can do recursion in Java it seems like a lot of students don't quite get it in school. Now the Advanced Placement Computer Science curriculum does require recursion I tend to believe that a lot of teachers don't teach it well. Some of that is because many of us didn't learn it very well ourselves. I confess that I was late coming to an understanding and appreciation of recursion. Now pointers I appreciated early in my career but than I was doing a lot of playing around with operating system internals back in the day.

    Joel argues for these tools not so much for themselves though. Rather he likes them for the way they help people look at things differently. The mental flexibility and mental ability. I really agree with that notion. Tiny is the number of times I really needed recursion and smaller still the number of times (outside of OS work) where I needed pointers. Still the fact that I understood them served me well in understanding other things like who databases and indexes work.

    But I disagree with Joel on the value of "weed out courses." I don't think they are a good idea at all. Well perhaps they can be used to weed out the poor instructors. I happen to think that programming is not so hard if it is taught well. Teaching it well, well ok, that is hard. Joel complains about schools that "fail to train the brains of kids to be adept, agile, and flexible enough to do good software design (and I don't mean OO "design", where you spend countless hours rewriting your code to rejiggle your object hierarchy, or you fret about faux "problems" like has-a vs. is-a). You need training to think of things at multiple levels of abstraction simultaneously, and that kind of thinking is exactly what you need to design great software architecture." I don't think we need to weed out students who can't learn those things because I don't believe there are all that many people who can't learn them. We do need to find better ways to teach those concepts though.

    I do believe that you can teach good computer science with C#, Visual Basic, Scheme, and even Java. I also believe that you need to learn a language like C/C++ at some point if you are serious about computer science. But the basic concepts and the critical thinking skills can be taught with almost any language. What is required though is a focus on the concepts and not on the language. That can be difficult, especially in a first programming course. But it is worth the effort.

    One last thing. Most of my students reported that they learned new languages, as different as FORTRAN and Java, in college very easily because they understood the concepts. Ask them to create a linked list in a new language and most of them could do so fairly easily. If a student finds that they can’t learn a new programming language quickly you have to wonder if it is because they are not a quick study or did who ever taught them let them down?

Page 1 of 6 (16 items) 12345»