Where are the Girl Programmers?
I use the word "girls" instead of "women" here because I am most interested in middle school students. Also, I am talking about the boys who don't normally take to programming. Maybe it should be Where are the non-geek programmers?
Contents
NECC 2003 Learnings
I attended the National Educational Computing Conference 2003 held here in Seattle with the quest of learning how to attract girls to my programming club. Here is what I learned:
Girls Only
- boys tend to take over and intimidate the girls
- girls interact differently when the boys are not around
- an old guy like myself will not upset this too much
Pairs Programming
- forces social interaction
Real Programming
- work on real programs, not games
- boys see computers as toys, girls as tools
- "it's not about the sewing machine, it's about the clothes I'm going to make with it"
- work on real programs, not games
This last one kind of came as a surprise to me (even though others have tried to tell me this before, see below), so the girls were turned off by the programming club the moment I said that we were going to learn how to program games! this is another reeason to separate the boys and girls.
Fortunately I met some teachers in the Shoreline school district who are implementing computers in math for the 5th through 8th grades. While they are not ready to teach Python as a math programming language like Kirby Urner, they do need lots of little programs to simulate and demonstrate mathematical concepts, and this will be a great source of real programming projects for the girls.
All Middle and High School students have a Mac iBook issued to them. However the image they use on the computers has the terminal program locked (probably a good thing) and Python removed (a bad thing). The computers have NetLogo as the only available programming (Not the best version of Logo in my opinion). Nyquist, a version of CLisp is part of the Audacity (Open Source) audio editor, but with out a terminal Nyquist is useless. I am talking with the school district technology director to get Python added to the image for next year.
Sixth Grade flip
One research paper presented at NECC talked about the sixth grade flip. In a study over several years in Texas urban and rural schools, the researchers discovered that 4th and 5th grade girls are more interested in technology than boys, but in the 6th grade the statistics flip as boys become more interested and girls less interested.
Build a Computer
The ACM's women in computing is working to increase the number of female students studying computer science in college. The ACM has a K-12 Task Force that is drafting a curriculum.
They suggest that girls actually build a computer. This hands on approch gives them an understanding that the computer is a real thing that they can manage, fix if it is broken. Freegeeks in Portland has a computer recycling shop that will host a group of girls.
Programming with a Purpose
These comments are paraphrased from Bea Fontaine's letter to the Python Edu-sig.
Offer a practical purpose that justifies using Python.
- A sewing machine is about the gorgeous clothes you will make with it.
Have a practical result at the end of each lesson or they think they've missed the point.
- Try to make the students feel good about themselves.
- Don't make it look too easy.
This requires a special effort and no patronizing.
- Don't make it look super-difficult.
- They will feel defeated before the beginning.
- Find a female friend who is willing to cover the ground with you.
- Maybe as a token student who is on your side from the beginning.
- Try to watch the communication patterns that evolve and to influence them accordingly.
- Students will fold behind a forceful female character just as much as behind a forceful male one.
Text Adventures
I am looking at PAWS (Python Adventure Writing System). This is an nice object system that manages a Zork room type text adventure.
Also looking at Pyzzle, a Pygame extension to create and run Myst like adventure. It looks more complicated than PAWS and I am not sure if it will run on the Macintosh.
Speaking of Pygame: Adam, how come Farblazer is in the Pygame Graveyard? -- JeffSandys
Graphics Programming
It has been commented that more women using Java and developing web pages. For Java is this because it is object only type of programming? If so would women take to Smalltalk, and would Squeak, a version of Smalltalk for kids be better at attracting girls to programming. Should we focus on object oriented methods when teaching python instead of first functions then classes? Could the graphic programming environment attract more girls. Logo does well with elementary girls but middle school girls don't seem to be as interested. There is an interesting python graphics programming called Ransen's Artistic Programming Tutor, no longer available, maybe this would attract girls and artistic types that shy away from programming.
Should computer programming be for everybody? Is it necessary or desirable that everyone be exposed to computer programming? -- JeffSandys
Social Programming
I think the problem is not lack of interest, but rather fear of social stigma. Girls even more so than boys are subject to intense pressure to conform, and avoid activities that are seen as "geeky". This same problem is encountered in mathematics for example, where many young girls show interest and aptitude, but then fail to pursue those interests as they get older.
One reason things like computer programming may be viewed negatively by girls is that it is often viewed as a solitary activity, and girls are encouraged to engage socially. I wonder if emphasizing techniques like pair programming and team problem solving could make the activity more appealing to them. Kent Beck, in his XP books, talks about the real issues of programming and development are ones of communication. I think taking this tack could make learning programming more appealing not only to girls, but to other people who do not necessarily fit the "young geek male" stereotype. -- WilhelmFitzpatrick
Yes, I believe that pair programming can help influence more girls to participate in programming, by making it a more social activity. Girls are interested in computers, I think the social stigma of "geeky" programmers can be overcome, look how far womens sports have come. -- (JS)
Object Programming
An additional thought: I don't think the reason that lots of women are using Java to program web pages is because Java is object oriented, but because those women are interested in creating web pages, and Java has been marketed as the language for server side content creation. Perhaps the inherently collaborative nature of web development is the appealing feature. -- (WF)
The reason I thought of that is one of the female programmers who works with me mentioned how women navigate by landmarks, "turn right at the big tree", which seems object oriented to me, and how men navigate by directions, "turn right onto Queen Anne Blvd.", which seems functional oriented to me. -- (JS)
I can only give directions by landmarks unless I make an effort to note street names. Guess that makes me female. Seriously, I find little value in the pop-psych "women think like x, while men think like y" generalizations. Better to recognize that people as individuals apply many different cognitive strategies to the same problems, and try to broaden the tools and approaches we use to present the topic of programming to accomodate multiple strategies. And I think the benefit from an educational point of view is not only do we get more girls exploring the terrain, but also more boys who might not otherwise have been interested. - (WF)
Media Computation
All students at Georgia Institute of Technology are required to take one Computer Science course. These courses are very unpopular for with students not in computing fields. Instructor Mark Guzdial, of Squeak fame, developed a course titled Introduction to Media Computation. This class uses a data first approach with the data being picture and wave files. His group developed a tool they call JES, Jython Environment for Students, that includes some media tools from squeak and java. The pilot classes were a success, 2/3s of the students were women in a school with a 28% female population. In interviews the students said things like, I like it, I learned a lot about computers and I'll keep JES on my computer.
Related to the learnings above, the course focused on Creativity, CS need not be boring, Relevance, CS concepts are applicable to non-majors, Collaboration, students worked in pairs and groups, CS isn't asocial, Restricted, only non-majors could register to reduce intimidation. The class emphases was on Computers as tools for communication and programming as a process.
Georgia Tech Intro to Media Computation
Womens Technology Groups
Some reading
http://www.ignite-us.org/ (tech professionals visit high schools, talk to girls about careers in tech)
http://www-cse.stanford.edu/classes/cs201/Projects/gender-gap-in-education/index.htm (Gender Relations in Educational Applications of Technology)
http://www.tauzero.com/Brenda_Laurel/ (Purple Moon creator)
http://www.erasmatazz.com/library/Game%20Design/WomenWant.html (Chris Crawford's take of game design for girls)
http://www.umbc.edu/cwit/ (Center for Women & Information Technology)
http://www.papert.org/articles/EpistemologicalPluralism.html (Sherry Turkle on Epistemology and the Concrete)
http://www.tldp.org/HOWTO/Encourage-Women-Linux-HOWTO/index.html (How To Encourage Women in Linux)
Experiences with Programming and Middle School Students
Below are some experiences I have had in teaching computing programming (first, Perl in 1996+ and then, last year, Python) in a Middle School computer club setting. -- DavidRitchie
- I first tried a typical lecture format in teaching Perl to Middle School students. That didn't work because it required everyone to be in lock step. In a Computer Club setting particularly, that was not good because I had kids from different grades, different experience levels, and different motivations.
I next tried a self-paced instruction approach. That worked much better. I did several that approach over several years and at different schools.
- Last year, I did the same approach with Python and included the graphical elements of Tkinter as well. In at least one case (in fact the person was an eighth grade girl in the club session who had taken Perl from me in sixth grade), the participant learned sufficient Python to significantly modify and adapt the story template (which included pictures) to her content. She did this in conjunction with her partner (also a girl) for most of the session. (Her partner dropped out near the end because the weather got warm and track season started and she was a cross country person who had to attend.). Nevertheless, the first girl continued on with her Python modifications and finished the club session doing that.
- I considered things successful when during my rounds I overheard two girls discussing (perhaps arguing is a little too strong a word) about the right way to do something in Python.
- I will continue this later with some more experiences when time permits.
I guess I would say that another thing that was important for me was to stay fairly close to the available Perl and/or Python languages in what I was doing. My goal was not to have a lot of magic packages in between so that the students could go home, use that magical time between 3:30 pm and 5:30 pm to download Perl and/or Python and be able to do some things on their own. How many of them did that? I am not sure. I know that two or three did download P/P and that they seemed to be 'messing around' in the sense that they were taking my examples home, breaking them, and then trying to put them back together.
Another thing I would like to mention is that I had quite a distribution of types of kids not just pre-geeks. Also, that graphical play (in Python and Tkinter) was really motivating and important. Two girls took my Python/Tkinter example of drawing different colored circles and evolved it into a yellow and black smiley face. Totally outside what my concept was of what one would do!!
The motivating aspect of graphical play that I have observed seems to be consistent with the observations about Java being of interest because of its role in making web pages that was mentioned above.
With regard to the interest of girls in web pages, I believe it's because they are more interested in communicating to others. The other theme of my Perl computer club sessions--and it was also a theme of the Python ones to some extent as well--was that of literacy and that either Perl or Python let you develop an interactive story (as in the "Choose Your Own Adventure" series of books). The reason I was trying to go this route was that I wanted to have what I was doing in Computer Club relate closely to the curriculum. What I have understood about contributing to the education of students in a school setting is that if it doesn't connect with the adopted curriculum you are going to have a very difficult time of getting the teachers to appreciate what you are doing. By treating learning to program in Perl or Python or Java or ... as a effort at learning how to be literate (not only in being able to use the material -- as in play games -- but also in being able to read the material -- as in read code -- and also in being able to write the material -- as in create new original works), one can relate the language art of communicating through computers to people to the language art of communicating through printed text to people.
This lets you connect to the curriculum people who by and large call the shots as to what will be taught in a school system and that is very useful at getting resources (even after school resources) to do one's thing.
Some additional reading
http://www.DavidJRitchie.com/mars/index.html (Experiences from a Perl unit held in conjunction with a Mars Space Camp)
http://www.DavidJRitchie.com/ (Computer Club Newsletters in PDF format.)
http://www.DavidJRitchie.com/VolunteerActivities/Washington/perl.html (Teaching Perl to Middle School Students)