Wednesday, June 27, 2012

Meet the High School Girls Who Had to Take CS

There's an article from Betabeat making its rounds in the women in tech community: Eight Real Tales of Learning Computer Science as a High School Girl.  I found it quite interesting because the girls interviewed hit on many of the major talking points when it comes to this issue.

Girl and machine
Girl and machine / lut4rp

Girls don't know what computer science is really about.  I experience this first hand time and time again in my own workshops and courses.  Here are some the things the Stuy (Stuyvesant High School) girls said:
  • "I didn't know what computer science really entailed until Stuy."
  • "What took me a while to realize, and what Intro eventually taught me, was that computer science is much more creative than I expected--it's not just crunching numbers--and this problem solving was something I enjoyed." 
  • "...before the Intro course, I had never considered entering a profession that was not humanities-based... Now that I know about the potenial [sic] of comp sci, I am considering taking it in college."
  • "...AP CS was not what I had imagined. What I had glimpsed on that first day and would begin to understand as the weeks wore on wasn't the pretty, interface-based language of Netlogo—it was grittier, uglier, and so much more interesting"
There is a strong stereotype of computer science being for (nerdy) boys.  It's not easy to dispel that myth without giving CS a try.
  • "Before taking the mandated Intro class last year, when I heard 'computer science,' I pictured nerdy boys, who turned into nerdy bearded men, slouched over huge computers and click-clacking out codes that meant nothing to me." 
  • "I entered my intro course clueless and under the impression that computer science was for boys."
  • "The clearly enforced stereotypes of childhood have long-term effects—as girls, we are not expected to know how to write code, or have any sort of passion for computer science. Even the idea of a math-science person vs. a humanities person is often applied to boys vs. girls."
It's really easy to feel like you're the odd one out.  But a welcoming environment and good teachers can help mitigate this.
  • "Stuy has an extremely encouraging environment, and in an AP Comp Sci class of 30 or so, there are still only six or seven girls. Last term, most of us were all sitting together in one part of the room, so there was this distinct separation."
  • "As far as being a girl in the field, I didn't even really notice the difference between women and men in the tech field while at Stuy, because the department makes it so comfortable and commonplace for young women to program."
  • "The majority of the time when I mention that I am interested in computer science, people tend to be surprised, or even disgusted! One girl's immediate reaction was to say 'ew.'"
  • "It's something that is impossible not to notice and it's certainly something that intimidated me for the first few weeks, but it honestly isn't a big deal. Our teacher doesn't acknowledge it and niether do my classmates, so gender divisions within the Stuyvesant CS family has become something of a non-issue."
  • "Our teacher, Mike Zamansky, provides an open, good-humored, and gender neutral social environment that has encouraged many of us to stay a part of the 'CS Family' for the rest of our time at Stuyvesant."
Many people don't see computer science for what it can do, but rather focus on the tools.  The tools of CS, such as programming and the machine itself, tend to appeal more to a certain demographic of guys.
  • "Comp sci, as I have found in my classes at Stuy, is a medium for expression, a place for creation and creativity."
  • "And writing a program is almost like writing a story (cheesy analogy, I know). There are many ways you can structure it but you have to find the best way, and then when you're done you have a product that actually does something and you created it.
I love that this high school makes its introductory computer science class mandatory for everyone.  It won't make all women want to continue with CS (nor should that be the goal), but over time, perhaps it will help hook those who would have loved it but never thought to give it a try.

Monday, June 25, 2012

The Manga Guide to Linear Algebra

Real math! Romance! Karate! That's what the back of this unusual math book promises to its readers.  Odd as it may seem to teach math with a comic book, The Manga Guide to Linear Algebra does a pretty good job of teaching the basics through comics and some light storytelling.

The book starts off with an introduction to the story's main characters.  Reiji wants to learn martial arts so he can stop being a wimp.  The head of the karate club, Tetsuo, agrees to let him join on one condition: he has to tutor Tetsuo's sister, Misa, in linear algebra.  Most the book's instruction is given from the perspective of Reiji teaching Misa, and the story of Reiji's efforts to get stronger in karate and woo Misa are sprinkled in between the lessons.

I read this book from the perspective of someone who enjoyed and did well in linear algebra.  I still use many of the basics today, but have not studied the minute details for a while.   (For example, I haven't had to do Gaussian elimination in ages.)  So I read this book as a bit of a refresher for myself, and tried to guess how easily someone new to the subject would grasp the concepts.

For my purposes, it was great.  I definitely understood everything explained in the book, and even learned a few new tricks for solving problems.  For new learners, I had some mixed feelings, but felt positively about it overall.

The comic book form worked really well for setting up an informal conversation for each lesson as Reiji explained the math to Misa.  This allowed for more colloquial language and some back-and-forth questioning and discussion that you'd never include in a formal textbook.  The illustrations were also helpful, allowing for extra imagery, even if just to set up a useful metaphor (such as a character using a broom for the sweeping concept in Gaussian elimination).  The images were especially helpful when explaining vectors, which I thought was done particularly well.

On the other hand, the content was not as dense as a regular textbook.  Most of the time I didn't think this mattered, especially since the book is openly intended to be supplementary.  Even still, there were times I felt like a little extra explanation might help.  This was especially true in the non-comic sections between chapters.  For example, one discussed combinations and permutations through example, but I felt like I'd be kind of lost after just those few pages on the topic.

As for the story, it successfully got me interested in the characters and their well-being.  I wanted Misa to do well in math, and I wanted Reiji to excel in karate.  This did give some motivation for reading the math parts in order to get to the next piece of the story.

However, the story didn't really integrate much into the mathematical content beyond one character teaching another.  Some examples did include the story's characters and one even related to karate, but really, the story could have been anything and it would have worked just as well.  This isn't necessarily a bad thing, since engagement is a good reason to use story.  But it would be neat to see an example where the story itself could actually help teach the content better than could be done without any story at all.

Overall, I really enjoyed this book and got through it surprisingly quickly.  Despite any small weaknesses discussed above, I would wholeheartedly recommend it to students just learning the subject as well as anyone needing to brush up.

Thursday, June 21, 2012

My STEMinist Profile

Back in April, I was featured on STEMinist and forgot to mention it here!

Find out what my answers were to such questions as 'What inspired you to pursue a career in STEM?' and 'What is the coolest project you have worked on and why?'

While you're there, check out the other articles and women profiled.  There's a lot of neat stuff.

Wednesday, June 20, 2012

How Important is Gameplay for Educational Games, Anyway?

Gameplay — interacting with a game via its mechanics to influence the outcome of a game challenge — is part of the essence of what a game is.  That players enjoy mastering game play is something I've taken for granted, but a recent article has forced me to take another look, particularly in the context of educational games.

Yotsuba & Wii
Yotsuba & Wii / kelvin255

Richard Terrell of Critical-Gaming Network argues that modern gamers aren't really into game play.  His argument spans several linked articles and is worth the read on its own, but his bottom line is this:
Complexities are a necessary to achieve a wide range of gameplay experiences; such complexities must be learned by the player to build skills in order to have control or influence over the usually increasingly difficult gameplay outcomes; and learning is a slow, self reflective, and often repetitive process. These premises make up the argument that states, the core of what makes video games unique and interesting (complexity, gameplay, interactivity, and agency) are at odds with what many people find fun and entertaining.
My understanding is that he is saying learning is slow and difficult, so players would probably rather avoid having to do too much of it.

But, wait, what about Raph Koster's theory of fun? He says we humans are built to look for patterns and actually enjoy learning new ones.  All games are like edutainment, because we are always learning when we play them.  Even if it's just aiming and shooting things, or exploration, or spatial relationships, people find learning, and therefore games, fun.  However, once we know the patterns, the thrill is gone.  With mastery comes boredom.

So, according to Koster's theory, we need games that have more ways to learn for them to keep being fun.  But Terrell says that learning can be long and hard, and that many players aren't actually into that.

I'm not sure what to think of this disparity yet, but more thought may help us understand why so many educational games just aren't very good.

Wednesday, June 13, 2012

How Grad School Prepared Me For Looking After a Baby

Odd as it may seem, there are some things that grad school has done well to prepare me for surviving my maternity leave.

Here are a few:
  • I'm used to being home alone all day because I worked from home often as a student.  This is good, because it can certainly get lonely when you don't have as much contact with other adults.
  • I have learned to understand what at first seems like a whole new language (cries and babbling from the baby, new ways of thinking in papers from a new field).
  • I'm pretty good at having no structure forced on me and somehow managing to get things done.
  • I'm also an expert at being interrupted by more important things. Students suddenly needing help, baby crying...practically the same thing, right? :)
  • I have learned patience.  Lots and lots of patience.  In grad school it has been especially needed for that one paper I've tried to publish going on three times now.  I think it's obvious how it's useful with a 6 month old.
  • Good things can take time (sometimes an awful lot of it), but it's all worth it in the end.
Do you have any others?

Friday, June 8, 2012

When to Use Math Problems for Teaching Programming

Last time I talked about Dan Meyer's work, I pondered how his ideas about perplexing problems applied to educational games.  He recently did an Ignite talk that gives the rationale behind his 101questions website, which is essentially designed to collect good problem contexts.  It got me thinking about when we should and should not use math problems when teaching programming.

I've seen many times that math problems aren't the best choice for contexts when learning how to program.  This seems to be especially true for women.  As discussed in one publication (Interventions and Solutions in Gender and IT):
Research has also shown that another factor affecting the retention of IT students is the type of assignments given in CS classes. For example, female students prefer to work on real-world applications, while males prefer to work on game problems. Yet, current textbooks continue to provide a large percentage of math problems.
But could math problems for programming work when you get a compelling context that leaves you with a burning question? Something that is most easily answered using code? Or should this approach be confined to math classes and not be used to teach programming?

Monday, June 4, 2012

The Confusion Between Computer Science and Computer Programming

Are we getting mixed up between computer science and computer programming? Are degrees in the former trying to train more people for the latter? Is any of this a problem? Jason Gormon thinks so, and I think it's worth looking at his argument, even if I don't entirely agree with it.

Crazy Kitten? // Nikkor 50mm 1.4
Crazy Kitten? // Nikkor 50mm 1.4 by Merlijn Hoek

Gormon starts with a comparison between music and computer science.  In music, he says, you don't need to know much (if any) theory to play music.  Many popular musicians learned to play by ear on their own.
The generation of software developers created by the 80's home computing boom are largely self-taught, and are largely "programming by ear" even today. Some will have gone off and studied computer science, but most of us didn't (because, frankly, yawn!)
(Yawn? Good way to start - insult those of us who actually like computer science and turn off those who might also have liked it...)  Insult aside, his point is that you can learn programming on your own, and as he discusses later, if you are passionate about it you will also take the initiative to learn the CS you need.

I'm sure there are those who have both the initiative and the ability to learn about data structures, algorithms, languages, and more from a CS perspective, but there are many who don't.  The question is whether it matters.  According to Gormon:
I'm not going to suggest that there aren't times when it pays to know how a hash map works, or to be able to design a small domain-specific language. But such times are few and far between (if you're not working on compilers or core programming frameworks, which most of us aren't and don't need to be), and for that we have Google (the search engine, not the company). 
I have to disagree.  If you don't know what you don't know, Google is not helpful.  Having at least a basic knowledge of how multiple data structures and algorithms and languages work will make it that much easier to know what the right tool for the job is.  Or how to debug a language that uses unusual constructs that you happen to understand the implementation of conceptually.  Or why that algorithm that seemed reasonable takes forever to finish and what a better alternative might be.

It's possible that Gormon, a self proclaimed enthusiast of 20+ years, much of this came from experience.  But the world is a different place than it was when he started.  I'm not sure the systems being built today can afford to rely on developers to build this experience and knowledge fast enough on their own.

And this is where I think he's got it spot on: we need to offer a mix of computer science and practical experience.
So I propose that the right course would be a 5+ year apprenticeship with part-time degree study - CS in the classroom 1 day a week, software development in the office the other 4.
In my case, five solid co-op work terms provided me with the experience I needed, and the courses I took did happen to teach me about a variety of so-called useful things from automated testing to issues with user interfaces.  Maybe more CS degrees could make these topics available and even mandatory without taking away the theoretical aspects.  Maybe current models for internship experience should be rethought.

Either way, I still think that the best software developers are often those who do know at least computer science, and that it's well worth teaching elementary and high school kids about it.  If computational thinking and high-level knowledge of computer science concepts becomes second nature by the time they graduate, their problem solving abilities will benefit them wherever they go, and those who go into software development are more likely to hit the ground running.

Friday, June 1, 2012

Mini-Course 2012: What Made Them Want to Try Computer Science?

Each year, I like to share some of the results from the surveys I give out at the beginning and end of my mini-course (see also info from 2010 and 2011.).  They help give insight into what the current generation of middle school girls is thinking when it comes to computer science.  In this post, I focus on why the girls wanted to take a course on computer science and games in the first place.

The students answered the question "What made you want to take this course?" on a paper survey the very first day before we started on any of the course material.  Here are their responses:
  • the name of the course caught my eye and science has always been on of my favourite subjects
  • I am interested in science, and I would like to learn about computers.
  • I chose this corse because I enjoy learning about computers and technology.
  • I decided to try this course to better understand how games work because I play a lot of them and I'm amazed at how they work. When I was little, I'd spend hours thinking about inventing my own game and that would be like. Here's my first step.
  • I am good at computer stuff, but I don't want to be in a course with all guys (it has happened before)
  • Taking programming at school and might be interested in making games in the future.
  • I like going on the computer a lot and it's only girls so maybe I will make new friends.
  • An interest in technology, computers, gaming, etc.
  • I am interested in computer science and want to learn more
  • Just for girls, im curious about computer science, how do you make games?
  • I thought it would be fun to learn about (more) the thing that I use so often. Learn about lots more things to do on the computer.
  • I thought it would be fun and a great learning experience.
  • I wanted to take a course that involved some aspect of dealing with computers and different softwares.
  • I find computers interesting and love to explore them. I also thought this would be a great experience.
  • The reason I made this decision because I like to create stuff, and I wanted course that would combined all of my hobbies
  • I wanted to learn more about computers and making video games.
  • I listed this course because it sounded interesting and I wanted to learn more about it.
  • I wanted to take this course because I was one of the students "not placed." This course was the only one that appealed to me and it had space! Yay!
  • My optional course at school is "Exploring Technologies", so I looked at a couple of Tech-related courses (as well as science), and I was placed in this one.
  • I decided to take this course because I've had an interest in video games for a long time.
  • Just for girls, im curious about computer science, how do you make games?
  • It looked interesting.

From the responses, there are a few interesting things I wanted to point out:
  • Many of the girls specifically said they wanted to know more about computer science.  This is the first time so many used this term.
  • There was a lot of mention of using computers and/or playing games often, and thus wanting to learn more about these technologies.  I think this is really great, since so many girls and women are happy just being consumers rather than producers.
  • There were a couple of mentions about the course being just for girls.  One student said she's been in courses where it was all guys, and the other mentioned hoping to make some new friends.  According to the two course surveys (the second of which is done at the end), everyone is glad there are guaranteed to be other girls in class, or even that the course is just for girls.
  • Finally, I'm happy to see how many are simply interested in learning something new.  I wonder if their curious nature typically carries through to the end of high school.
These responses give insight into the fact that games really are a good draw for many girls, but that computer science is really starting to be a draw in itself.  They also suggest (as in other years) that making the course all girls is still worthwhile.  It seems that a 50/50 split might also work well (and has for some of my colleagues), but I do like the ability to freely discuss the issue of women in the industry in the all girls class.