
On the making of a girl nerd - cs702
http://mathbabe.org/2012/04/08/on-the-making-of-a-girl-nerd/
======
cs702
Most of the comments (so far) are focusing primarily on the details of the
Harvey Mudd example instead of the much broader, more important theme of
mathbabe's post: She wants educators to think seriously about _the selection
process for young nerds_ and how _this process is currently biased so as to
weed out girls_. She believes we can do much better.

She speaks from personal experience. On a different post on her blog, she
writes, "when I and two other girls (and, as it happens, no boys) in the 6th
grade did well enough to go into a special, advanced 7th grade algebra class,
my (female) teacher brought us up to the front of the room and told the three
of us 'I don’t see why you would challenge yourselves like this anyway since
you are girls, and you won’t be needing math when you grow up.' I was the only
one of the three of us to actually choose that class, and I was the only girl
in the algebra class."[1]

No wonder she thinks we can do much better!

[1] <http://mathbabe.org/2012/02/06/women-in-math/>

~~~
pyre
I think that speaks more to the general attitudes towards life of the teacher.
The general premise is, "why challenge yourself when you coast through without
putting in the effort?" It's wrapped up in sexism (girls don't need math), but
boiled down to its base form, that's what she's telling those kids.

~~~
cs702
Agree -- that's a good way to summarize what that teacher told mathbabe and
the other two girls. Regardless, of the three girls, only mathbabe persisted
with math; the other two were _unfairly weeded out_. The question is, is this
type of weeding-out pervasive? Mathbabe clearly believes the answer is yes,
and we should we doing something about it.

~~~
pyre
I agree that those two girls were unfairly weeded out of math, and we need to
prevent that.

My point was that _that teacher_ either needs to take a different attitude
towards life, or get weeded out of the system herself. Why? Because her
attitude will get impressed not just on girls attempting to enter
predominantly male spaces, but upon _all students that she interacts with._

------
sp332
I thought this post from that blog was interesting: Why "MathBabe"?
<http://mathbabe.org/2011/06/13/why-mathbabe/>

_Actually there’s another reason I ultimately decided to call this blog
“mathbabe,” namely when I googled it[...] there’s another site with a very
similar name which simply shows nearly naked women next to cliff notes on
basic math subjects. WTF?!? It is ridiculously obvious to me that math babes
should be doing math, not adorning it. So I kind of had to call myself
mathbabe after that._

------
macavity23
Anyone even considering teaching Java as a first language to high school
students should be given a good sound slap - and I say this as a Java dev.

~~~
mhurron
Why? What is so bad about Java that it makes learning it so bad as a first
language or as a introduction to programming?

~~~
sirclueless
Having tried to tutor beginning programmers in Java, there are a lot of things
that bug me. There is a lot of boilerplate and cruft that must exist in order
to get anything done, and the type system and visibility just gets in the way
until you want to teach people how to architect large programs.

Each class must be in its own file, and the execution starts from "public
static void main(String[] args)" inside it. Then you have to deal with complex
data types very early: python's set of primitives is _much_ richer, which is
great when teaching. Also, doing IO in Java is a pain unless you distribute a
library.

To those who think Python's significant whitespace is a problem, I think you
need to watch an otherwise intelligent beginner struggle with an error on line
80 because they mismatched their braces on line 20. If you aren't properly
indenting your code, it becomes an unreadable mess anyways, so why not enforce
it at a language level? And if you think an IDE can do this for you, think
again. People just complain that it does things wrong when it indents half
their methods by 2 extra tabstops because they missed a brace. They don't
really _get_ it, they just get into a feedback loop where they say, "Oh, it
won't compile. Let me scan the entire program counting braces" which is a
waste of everyone's time. I've seen people go entire semesters without ever
learning to write readable indented code.

~~~
UnFleshedOne
I "got" indentation after spending 2 days hunting down some bug in
calculations only to have the teacher take 1 minute to reformat the code and
another minute to point out an instruction that was sitting in the inner loop.
With proper formatting it was a glaringly obvious mistake...

------
Tycho
I think a great deal of societal problems are caused by social 'pressures' and
'norms' (ie. bullying). Remember how terrified everyone was about being
perceived as uncool? I remember when I developed an interest in classical
music, i pratically had to keep it a secret.

One more point i'd add about the general immaturity and unfairness of school
pupils, is that the smart boys are probably unkind towards to the smart girls,
out of some sense of competitiveness. I don't have evidence of this but it
seemed to be an abundant sentiment when I was at school.

------
GavinB
Python is great, but I recommend that schools should start programming classes
with Unity3D. Within the first class you can have objects with physics
bouncing off of each other, and by the end of the course you can have a
legitimate game to play (that can even be sent to your phone or tablet).

The "javascript" variant is fairly straightforward and if you take it far
enough can be quite powerful. At first the students can just hack things
together, but as they go on they'll learn real programming.

Also, the basic IDE is free.

~~~
gravitronic
no no no no no no no no no

I cannot stress this strongly enough, _NO_.

You need to walk before you can run and it is of NO BENEFIT to the student to
hide programming behind a fancy UI with fun results before they know what is
going on.

Let's be clear here, I am not against Unity. But I'm definitely against Unity
for teaching how to program.

The "strength" you exemplify about having unity doing physics in the first
lesson is precisely why it's a terrible choice. Students without prior
programming knowledge will not understand that this is javascript (a language)
connected to a physics library (3rd party module) being represented by the UI
(unity). You will introduce them to this mess of interconnected parts and they
will have no idea who is responsible for what. Plus you will spend so much
time teaching them Unity-specific concepts and fundamentals they will walk
away with a crippled ability to program.

I know this because at my university they taught first year programming with
java and used a book written by the instructor that showed you how to load an
image with swing before teaching _conditionals_. The boilerplate code that
allowed the students to load images did nothing but completely confuse them
and negate the teaching aspects as he slowly introduced programming
fundamentals. It was a complete disservice to try to "fancify" basic
programming and all it did was confuse anyone who hadn't previously learnt to
program.

Python on the other hand is a fast, interactive, forgiving interface that
boils programming down to the basic nuts and bolts that you need to understand
before interfacing with fancy UIs and physics.

~~~
GavinB
Frankly, I think that getting people excited about programming and learning
that they can create something actually cool is the most important part of
their first introduction.

I took a course in high school that started with the nuts and bolts. I did
fine because I already knew some basics, but most of my classmates struggled.
They learned that programming is hard and no fun and in the end you've pushed
some lines of text around. Most of them barely passed and will never touch
code again.

For a serious university level CS course? Sure, start with Python and explain
how the basic nuts and bolts work. Trying to get young people excited? I think
it's worth considering other options.

How many of us _really_ started out programming learning the basic concepts in
a structured environment? I understand your point, but I think that to be so
dismissive of the enjoyment and excitement factor is inappropriate.

~~~
gravitronic
Showing them what you can do, and teaching them using the environment, are two
very different things.

------
yummyfajitas
Is the article seriously advocating increasing the number of women in CS by
watering down their college courses? An easy "gold" course for the girls, a
harder "black" course for boys (and the few girls who would have done CS
absent any intervention)?

I also found this very annoying: "I have found an amazing correlation between
women with math Ph.D.’s and women whose fathers are mathematicians...you
wouldn’t be able to explain the statistics I have."

If you have this data, why not post it? Will mathbabe.org run out of bits?

~~~
jbellis
No, it's advocating increasing the number of women in CS by proposing a
separate 101 course for people (like, the article assumes, most women) with no
prior programming experience, while retaining an "introduction" course for
those who do have that. I didn't see any implication that higher-level courses
should have separate tracks.

~~~
frossie
Indeed, and let's not forget the other half of her point, which was to have
introductory level courses focus on solving examples from across science,
rather than CS esoterics. From personal experience I agree that if you are
trying to get someone interested in a tool, show them what the tool can do
before showing them how the tool is made (or how to make their own).

~~~
cschmidt
MIT has a class like this as well, 6.00

<https://stellar.mit.edu/S/course/6/sp12/6.00/index.html>

    
    
        This subject is aimed at students with little or no programming experience. 
        It aims to provide students with an understanding of the role computation 
        can play in solving problems. It also aims to help students, regardless of 
        their major, to feel justifiably confident of their ability to write small 
        programs that allow them to accomplish useful goals. The class will use the
        Python programming language.

~~~
eli_gottlieb
That's because MIT is up-front about expecting their CS freshmen to come in
with programming experience.

------
marquis
I have to agree completely: math and science just hasn't been cool and it's
ostracized not just girls but I bet a hell of a lot of boys as well. I dropped
out of my extracurricular science/computer classes as a teenager to maintain
my social reputation, and I know I'm missing huge pieces of knowledge because
of this.

What's changed? Well, computers are pretty cool now. The high school I mentor
at has the hippest computer class I've ever seen, the teacher is an
enthusiastic woman who drives the energy of the class and lets them focus on
what interests them while directing them towards genuine learning towards what
should be amazing careers for all of them. It's seriously encouraging and I
have high hopes for a better gender balance in the years to come.

------
Impossible
Processing (<http://www.processing.org>) is a good environment to teach
programming in. It addresses most of the concerns about Java (removes boiler
plate , further simplifies the language), while giving people access to all of
Java as the class moves to more complex concepts. It also provides a fun,
visual programming environment without the complexity of a complete modern 3D
game engine or web browser.

Python is probably a better introduction language, but Processing is a close
second.

~~~
marquis
I agree with teaching Processing. What is wonderful about it is that you get
immediate visual feedback, and an immediate interest in learning algorithms.

------
rwillystyle
Give me a break. No self respecting "nerd" would call himself a nerd.

..here comes the white knights.

------
petegrif
Great piece - thanks.

