Heidi Newton

A New Female Computer Scientist

When I started my computer science degree, the only reason I knew what computer science and programming even was is because I had some friends in an online game I played who were programmers, and the stuff they talked about sounded really exciting. If it hadn't been for that, I would have had no idea what it was, and there's probably no chance I would have done a computer science degree.

In this blog post, I share my story of getting into Computer Science (quite a few years ago now!)

Entering programs into a Graphing Calculator

The first "programming" I did was on my graphing calculator. This was simply of the form of finding programs for games on the internet. I would print out the program, and then while sitting in class (usually during Physics) I would symbol-by-symbol enter the program in. It took quite awhile, as I had to find every single symbol, and sometimes they were hidden in strange menus. The first game I entered into my calculator was Pong. It might have even been this version I found on tibasicdev just now.

A graphing calculator
:3→A:4→X
:1→S:1→T
:randInt(1,8→Y
:Repeat K=45 or X=1 and A≠Y
:ClrHome
:Output(A,1,"[
:Output(Y,X,"O
:getKey→K
:max(1,min(8,A+(Ans=34)-(Ans=25→A
:T(Y>1 and Y<8)+(Y=1)-(Y=8→T
:S(X>1 and X<16)+(X=1)-(X=16→S
:X+Ans→X:Y+T→Y
:End
:Pause "Game Over!
:ClrHome:"

Now remember that this was the first programming I'd ever done. A few lessons I learnt that surprised me were:

  • If you can't find a particular symbol, then choosing one that looks very similar won't just make the program work. Leaving out a line or 2 doesn't necessarily mean the program will "mostly" work either!
  • Even the tiniest of errors might break the program.
  • Finding where you made a mistake (mistakes can be made even when just entering data!) can be really tedious sometimes.
  • Some of the instructions were easy to understand, others just looked like random symbols.

Back in 2006, it wasn't so easy to find a transfer cable (and the idea of connecting a calculator to the Internet was well beyond the budget of any middle class person in New Zealand!). Entering the programs into the calculator really was the only way to get it working. One of my friends actually played the Pong game on my calculator during class. Apparently she was even border than me during Physics! Other games I entered into my calculator included Tetris and Sudoku. I tried to enter Pacman, but I never did find all the bugs.

The info session

I was still keen on studying computer science by the end of high school, although I was very embarrassed about telling more people this than I had to. I really believed that it was a subject "not really for woman" and as an 18 year old female who had never really fitted in, the last thing I wanted was to be taking a "mans" subject. So, whenever people asked me in High School what I was going to study next year, I just said I didn't know yet, or occasionally I said Statistics.

In the last term of the school year, we had a Year 13's day trip to Lincoln University and then Canterbury University because they were both having open days (why they decided to put them on the same day, I really don't know). I decided to be brave and go to the information session about Computer Science. I was nervous, being female and all.

Something all my friends know about me is that I can't find my way around without getting lost. I still need to ask my partner for directions around our own city. The Canterbury University campus is huge, and I had trouble finding the lecture theatre the information session was at. This meant I was late so couldn't even sneak in through the crowd.

When I walked into the lecture theatre of somewhere between 100 and 200 people, I looked around and the first thing I realised was that I couldn't see another woman in the room. My worst fears had been confirmed. My instincts were right, this course must be men only, and I as a women shouldn't be here. I quickly sat down and grabbed the info sheet out of my bag, trying to see if it said anything about whether or not woman were allowed to take computer science at University of Canterbury. Nothing was said about it.

I then wondered if it was a heavily implied social rule, and therefore they didn't feel the need to write it down. After all, my understanding of social rules was comparable to my ability to find my way around the University campus! I sat quietly and still, probably the quietest and stillest I have ever sat.

I listened to the talk, and it was really interesting, and I figured that if they let me, I could probably do this, but I wasn't sure whether or not it'd be considered as socially acceptable. Near the end, the lecturer took questions. Lots of the guys were putting up their hands and saying stuff like "I've programmed for x years in y, is that enough to do this course?", and all kinds of things like that. They knew everything already! I still remember somebody asking whether the University prefers object oriented programming or functional programming. At that point I thought that the fact I'm a woman wasn't the main issue, but the fact that I had never programmed before must mean I'm not even eligible to enroll, as everybody there seemed to have been a programmer since they were a baby. Perhaps even before they were toilet trained.

By the end of the talk, I decided I just had to figure out once and for all whether or not me being a woman was a barrier to entry, and whether or not my lack of previous experience was a show stopper. So at the end, I waited until most people had left before going up to the lecturer to ask my very important questions.

"I've never programmed before. That means I can't do this course, right?"

And the lecturer just asked me if I liked Math. I told him yes, it's my favourite subject. He smiled and told me I'd fine and that the course doesn't assume any previous programming experience -- it was for complete beginners, just like myself, and the main thing that mattered was my desire to learn and that I enjoyed Math. I was surprised at how kind the lecture seemed, he had a really big smile! I now know his name is Tim Bell, and he's a good friend of mine to this day. I was slightly surprised he hadn't been concerned abut my gender, but at least he said I could take the course.

My first year

I set up my first year so that I could switch majors to either Math or Statistics if the Computer Science didn't work out for me.

At my first Discrete Math lecture, I was again late (again, from getting lost). I was at first worried because there was nowhere to sit -- people like sitting on the ends of the rows, blocking them. Luckily though, a woman my age saw me and then the guy who had been sitting next to her got up, she shuffled along to make space for me, and told me to sit next to her. I was very happy to find out that she was also in my Programming class! I sat next to her often in lectures.

My first lab was one of the toughest moments though. I turned on the computer, and it was a weird operating system I'd never seen before (linux, as I now understand!), and the lab was full of excited males who seemed confident in what they were doing. I was so overwhelmed that I put my head in my hands and started to cry and was wanting to just vanish. One of the male tutors rushed over and asked if I was okay, and I said I was confused by the computer. He started to help me, but then a woman walked into the room and he waved to her. He introduced her to me as being Janina, the top student of her year level, and one of the tutors. Janina told me she found her first lab really scary and upsetting too, for the same reasons.

At last, I was finally convinced that woman were welcome in Computer Science. Janina was the proof I needed.

Early setbacks learning to program

The content of the course was tough. There was a lot to learn every week, and not all of it made sense. By about the 4th week, I was barely understanding. By the 6th, I was clueless. A friend told me that if I wasn't understanding now, it wasn't going to get any easier and I'd probably be better switching to math. That upset me because I'd gone through so much just to be in the class. I ended up spending the 2 week mid-term break going over and over my homework and labs so far. I decided that I was going to make sure I understood absolutely every single bit of them, along with everything in the lecture notes. I used my textbook and lots of Google searches until I understood the whole lot. I was then a lot happier with it, and started working on the big assignment. At first I was confused, but then started with the easier parts and before I knew it I was working on the advanced parts.

I had one more set-back though. After the mid-term break, we had a test on the content so far (exam style, on paper). And it was difficult! There was this one question that required representing a noughts and crosses game, which could be of any size (i.e. not just 3x3) and then taking input and output so that people could play it. It was console based.

But there was a problem -- I had no way of knowing how to represent the board! We had never done arrays, at that point I didn't even know what an array was. Because I was so desperate to at least get some marks, I decided to "invent" some brand new Java syntax just so that I could at least have something to build on top of with the bits I knew. Dynamically generated variable names!

They were something of the form of:

for (int i = 0; i < BOARD_LENGTH; i++) {
    for(int j = 0; j < BOARD_LENGTH; j++) {
      char slot+i+j = null;
    }
}

I knew that the scope was wrong (i.e. my dynamically generated variables were not accessible outside of the loops) but I decided to turn a blind eye to that and just use this bizarre code to then work on all the other bit of the code that I could do, such as the input and output.

I found out afterwards that the trick was to use a String (with some clever math to work out the positions in the string). However, it was widely agreed that this was unreasonable to expect of students at our level, and few people figured it out. The ones who had programmed before used arrays. My solution was a lot like arrays, and it served its purpose of stopping me from completely failing on this question.

The test results were so bad that they had to do some heavy scaling, and the lecturer ran a 1 hour "test post mortem" session where everybody got to basically air their grievances about the test. I found out years later he had been quite nervous about going to that session! Apparently it was his first ever time writing a test for first year students.

I got my assignment result back, it was a really high grade! Overall, I got an A+ in that course. Not bad for somebody that was talking about dropping out in week 6 because they didn't think they'd pass!

The Computer Chicks Club

When I was in 2nd year, Janina started a club for female students in computer science. It was really fun because there was a group of about 20 of us, and we went for fun evening outings such as bowling and rock climbing and dinners.

We even got to run a Computer Science Unplugged session at a local school together!

The reason for the club was to ensure all female students felt supported despite being in such a small minority. It was good knowing that the 1st years in the year after me were not going to be feeling as alone as I did at first.

The rest of my studies

I ended up doing really well in my degree, especially in my programming courses. I got consistent A+'s in programming assignments, finishing my studies with an A- average across all my courses.

During my masters, I tutored first year students. There was a few interesting observations I made.

  • The female students seemed more likely to hand in well written, well commented. Some of the guys did too, but almost all of the females did.
  • Female students tend to be more worried that they did badly on the test. Male students are often confident about it.
  • When getting results back, female students are stressed when they get less than 100%, even if they still get an A. Male students celebrate excessively over a C grade because they passed. It was actually a genuine concern when handing back test papers, because the females would see the males getting excited and then get more stressed about their results.
  • When the final results come in, the top 10 students usually have an even gender ratio despite woman being at most 10% - 15% of the total course. Quite often, the top student is female.

Woman, don't give up. We are just as good as those boys at programming, if not better!

Your thoughts

In order to post, you'll need to log in.