Recent Reading

Still working out the balance of having a life, a job at Google, and being a blogger. In the interim, here are the things I’ve been reading and key takeaways / thoughts / questions.

Article: The Joy of Teaching CS in the Age of Facebook – “When people see companies like Google and Facebook being founded by relatively young people, they feel empowered and think: I can do that.” The article is an interview with Stanford professor (and ex-Googler) Mehran Sahami.

Thoughts and questions:

Students in today’s CS classes are more aware of the uses of computers in the real world. But are they more aware of the uses of programming and code? The ways that they could use code in day-to-day jobs (that are software engineering jobs)?

What factors hold students back from studying CS? Specifically, what valid and reliable data do we have to support our claims? Lots of people cite the lack of CS education opportunities in K-12 (and I’m inclined to agree), but has anyone actually demonstrated it in any sort of study?

I’ve seen a lot of people say that if we increase the educational opportunities for CS all around, then we will start to close the gender, racial and socioeconomic gaps that we see in CS. I (mostly) agree. But I also think we need to consider how we deliver content. We see gaps based on gender and race in other fields (just take a look at ACT scores, for example, where English and math classes are considered commonplace for students). So, if we just democratize CS education in the same exact fashion as we have other subjects, I think we will reinforce existing gender, racial, and socioeconomic gaps as a result of the system. We have the chance to revolutionize CS education, to define education to be anything we want it to be. Why stop at just making CS ed meet the status quo? I’m thinking that we should take a long, hard look at biases in the field (like Harvey Mudd did) and respond appropriately.

Should everyone take computer science? Probably not – at least not in the sense of CS 101 in most universities today. What should everyone know how to do with respect to CS? Know the following: what a computer does and is capable of, the basics of how it operates, how to write or read a bit of code to solve a small problem relevant to their life, how to learn more if they ever want or need to, and when to ask for help or seek outside guidance.

Article: Philip Guo writes about his NPR interview on silent technical privilege.


Guo expresses discomfort at the interviewer’s use of the phrase “racial profiling.” While I understand the discomfort, I also think it is important to call things what they are. In tech, we have definitely have a culture of implicit stereotype or unconscious bias. I experience it every day, in small ways. When a man at work calls me a “girl” rather than a “woman.” When people assume that I am heterosexual and ask if I have a boyfriend. Guo talks about it in his article and interview when he indicates that he was given tacit approval by his peers in tech.

But when you look at these biases head-on, you see that they actually are sexism, heterosexism, racism. They are small instances of discrimination that are founded on privilege and oppression. Even though we often do not intend them to be hurtful or discriminatory, we cannot deny that they are such.

The interviewer asks Guo about his feelings of guilt around his privilege, almost making it sound as thought the privilege is not his fault (but rather that of a flawed system), and so he should not be concerned about it. I think such a stance is a naive understanding of privilege. If we all assume that our privilege is not something we can work to change, then how will we ever change the system? Incremental changes in each person can accumulate to change the system. I like Guo’s plans for how to engage with minority students he encounters as a professor… And I think we should do some research about the optimal ways to attract and retain minorities in tech. What actually makes a difference – role models, mentorship, a community or working group of similar individuals, etc?

Article: They Can’t Find Us: The Search for Informal CS Education by Betsy DiSalvo, et al, transcribed from Betsy’s talk at SIGCSE 2014 here. An article that looks at terms families commonly use to find online resources to help kids learn about CS. Betsy shows that we accidentally hide our top CS education resources from the under-educated and under-privileged simply by assuming that searchers are well-educated and privileged. In this way, open education resources can actually increase the socioeconomic gap in CS


Yes. Again, like I was saying before in response to the first article – we have the chance to change the game. Right now, finding appropriate resources for kids to learn to program requires a background in CS or IT (or at least connections to someone with that background). Open ed resources are not as accessible to under-resourced families as we want to think they are.

The talk also highlights how silo-ed the ed community is in CS. Since we aren’t (yet) properly established, we are all sort of running our own shows. The K-12 folk don’t talk to the university folk, who don’t talk to the post-graduate folk. The assessment designers don’t talk to the curriculum designers who don’t talk to the people who study content delivery. We need to connect.

Also, thanks to and shoutout for Nick Falkner for blogging the talks at SIGCSE. :)

Lastly, a highlight of some twitter drama that I encountered when tweeting with Karen Brennan in response to remarks that Hadi Partovi (of made during a speech at SIGCSE.



A few thoughts on being an ally

Alfred Thompson writes an awesome blog about CS education in K-12. You should read it, if you don’t already. Recently, he posted “Teachers and Role Models in CS Education.” I wanted to reply to the post with kudos for being an awesome ally and some thoughts about my own experiences on how impactful role models are in CS for me as a queer woman… But my comment turned into a novel, so I’m posting here! Note, it’s still a “comment” written to Alfred, but I think it may be interesting to others in CS education.

Hey Alfred! Thanks for posting this. I’ve been thinking a lot lately about how impactful it is for me to have 2 really amazing female role models for my job at Google. It’s the first time that I’ve ever seen 2 strong, competent, educated, highly-involved, motivated women working on the same project (at manager level). The best part? They don’t always agree. I realized that I don’t think I’ve ever had the chance in CS to see 2 women disagree on a topic. In CS, we so rarely even have 2 women in a classroom / office / on a project. It’s something that is so pervasive in CS that I never even realized I hadn’t seen 2 women have differing opinions on a CS-related topic. Crazy, huh?

But yeah, I totally agree that even (especially?) the white males in the field can make a difference. My professor Titus Brown always believed in me and encouraged me to put myself out there. He taught me to invite myself to events, to speak up when I have an idea, to make myself stand out. That’s not something that comes naturally to me, and I usually would just get bulldozed in meetings otherwise. He also would always invite me to events and introduce me to any female CS contacts that he has (like at PyCon), helping me build a network of people like me who can help me navigate tough situations I face when he perhaps cannot. But most important, I think, is that he kept an open dialogue with me about gender issues in the classroom, in the workplace, and in the field as a whole. He would ask for my thoughts and opinions about situations, take suggestions for how to improve gender representation, and make sure that I knew I could speak up if I ever felt threatened in any way (which actually does happen).

A positive example? At the PyCon Testing Birds of a Feather event last year (which Titus helped host), one of the running jokes was that anyone presenting has to wear a labcoat (size medium, I believe). A lot of the guys at the event (1) had been drinking, (2) were pretty loud because it was an evening event, and (3) were already friends. There were several instances where men got up, tried to put on the labcoat, and found that it wouldn’t fit. A lot of raucous laughter would ensue and people would shout comments about the presenter’s weight. While it was all in good fun between friends, I couldn’t help but think: “I am never, ever going to stand up in front of these men and speak about anything. What if they make fun of me and my weight? What if they shout comments about my appearance? About me being a woman?” Titus and I talked about the event after, and he is working to make sure that the event is generally more welcoming and less intimidating this time around. He is using his influence in the Python community to make me (and the other women I saw at the event) feel safe.

But for every good example of an ally in the community, there are lots of examples of missed opportunities. I didn’t discover my love of CS until I got to college. Partially because I was scared away from my first ever programming class. As a freshman in high school, I signed up for an intro engineering and programming class. It was 30 students, and I was the only girl. Pretty standard, I think, for a lot of schools. During the first day, the guy next to me drew a picture of genitals on my assignment notebook (required to carry with you at all times at my high school). I was pretty stressed/upset, but I just erased the drawing and hoped that it wouldn’t happen again. The next day in class? We had to get up and move around, and when I got back to my school supplies, genitals had been drawn on every page of my assignment notebook, in permanent marker. And 3 guys nearby were laughing, brandishing a variety of permanent markers. I was 14 and mortified. And somehow, ashamed. I can’t explain why I felt shame, but I did. My options, as I saw them, were to (1) continue going to the class and deal with bullying from those guys and cry about it when I went home, (2) confront the guys (which I was way too shy for), or (3) talk to the teacher about it. The teacher was a typical programmer guy. I’m sure he was nice enough. But at 14, how do you start that conversation? “Excuse me, sir, those guys over there are drawing on my stuff and it’s inappropriate and I feel threatened. I want to be in this class, but they make me feel uncomfortable?” I certainly wasn’t that articulate at that age. And even if I had been, I was worried that the teacher would just tell them off and then the students would just target me even more because I was a tattle-tale. So what did I do? I dropped the class and didn’t try programming again for four years.

To this day, I’m not sure what that teacher could have done differently. But I think that opening the option for a dialogue, somehow, is super important. Making it clear that students can talk to you. That everyone should feel welcome and safe in the class, and if they don’t, then they need to speak up about it! We can’t expect our young female (and minority) students to know about impostor syndrome, stereotype threat, unconscious bias, and even outright chauvinism. It’s important to make a safe place for them until they can find enough courage to establish their own place, to stay committed to CS even when facing adversity…

Readings from Thanksgiving Break

I’ve had a few days off of work and that’s given me a bit of a chance to do some general computer science education blog reading. The top posts I’ve read, in no particular order:

  • Teasing apart the issues of women in computing: the impact of Hollywood – TL;DR version is that the NYTimes has recognized that media does not depict women in engineering or computer science roles (as have many other sources) and suggests that Hollywood exposure of women in CS would solve the real-world lack of women in the field.
  • Guzdial disagrees with the NYTimes call for a Hollywood movie about CS-ers and raises a series of important research thoughts and questions in response. He claims that the biggest challenge in CS Ed is getting students and teachers to even consider computer science. I whole-heartedly agree. Based on my experience with Software Carpentry – data scientists do not want to invest the time to learn to program until they realize exactly how much time it will save them. [That said, I’d really love to run a study somewhere that evaluates exactly how much time scientists save themselves by doing scientific computing with programming, version control, and all that jazz.]
  • Why arts and social science need code: testimonials – I seriously need to start collecting examples of people who use code in nonstandard/unexpected ways. These examples tend to be extremely motivating for students that I encounter at the K-12 level. 
  • The Audrey Test: Or, what should every techie know about education? – I think Watters encapsulates a major let’s-just-build-it problem that happens in CS education. Programmers tend to love hacking. So, of course, when faced with the problem of lacking diversity in CS, they want to build new tools to fix the issue. They want to use what they are good at – code – to change the playing field. I understand. I rely on my own skills when tackling new problems as well. But it’s important to orient ourselves in the problem before tackling it. Otherwise, we just build and rebuild similar products
  • In a different vein entirely, I came across this blog post about scientific computing homogenizing in Python. It argues the benefits of migrating all your data science work into Python (rather than a mashup of Python, R, MATLAB, Ruby, etc). The sentiment of the author near the end resonated with me: Rather than considering What’s the best tool for the job that I’m willing to learn and/or tolerate using? he asks himself Is there really no way to do this in Python


Web Accessibility MOOC

Google releases registration opportunity for a MOOC called Introduction to Web Accessibility:

“As the web has continued to evolve, websites have become more interactive and complex, and this has led to a reduction in accessibility for some users. Fortunately, there are some simple techniques you can employ to make your websites more accessible to blind and low-vision users and increase your potential audience. Introduction to Web Accessibility is Google’s online course that helps you do just that.”

Learn what you (as a developer) can do to make your websites more accessible to a variety of users.

The fact is tha…


The fact is that education has already been automated. Tests, quizzes, textbooks, and Powerpoints are all products of a technological way of knowing the world. They are all ways of objectifying knowledge. My enthusiasm for edtech stems from a hope that it will teach us to handle technological ways of knowing more efficiently and interactively, using gadgets and devices. However, this is only an advantage if it means that teachers can get back to what they do best: educating instead of disseminating and assessing.

From “We need more edtech but less educational technology in the classroom” by Jordan Shapiro.

Learning Statistics with R, Part I

For my new job, I need to be doing some data analysis. While I love Python and the IPython Notebook, it is definitely time that I invest some effort in learning how to use R Stats. So, this blog post (maybe even a series?) documents what I am learning and how I believe it applies to learning science reseawrch.

I have started with this book, Learning Statistics with R: A tutorial for psychology students and other beginners. Why? Because it’s free, online, and I like the writing style. Plus, I think I was a cognitive psychologist in a past life (or will be one in a future life!), so I like readings that apply to the cognitive psych domain.

Disclaimer: The learning R part doesn’t start until Part II of the book!


Note: Bolded sections are quotes and ideas from the textbook. Subsequent text includes my commentary / thoughts / reactions / ideas.

Chapter 1: Why do we learn statistics?

  • If I’m a psychologist, why do I have to do statistics? If I wanted to be a statistician, I would be. I am going to trust that you are at the same point I am and know that you need statistics to do your research. If you aren’t there yet, read the introductory chapter!
  • Can’t someone else do the statistics? I’m going to be honest: this question crosses my mind a lot. Wouldn’t a full-time statistician be better trained to do these analyses than I am? The answer is: probably. But being proficient in stats allows me to have a lot more flexibility with my own research design because I know what is possible and what just isn’t. If I need help from a statistician somewhere down the road, then I can seek one out. For now, I’m looking to be decently self-sufficient in stats.

Chapter 2: A Brief Introduction to Research Design

  • Operationalisation is the process of taking a meaningful but somewhat vague concept and turning it into a precise measurement. Advice from the text: (1) be precise, (2) determine how you will measure the concept, (3) determine what the allowable values are that the measurement can take.
    • A theoretical construct is what you are trying to measure. (Example: age, gender, opinion)
    • A measure is a method or tool used to make observations.
    • An operationalisation is the connection between the theoretical construct and the measure.
  • Different scales of measurement let us distinguish between types of variables (actual data):
    • Nominal scale: there is no relationship between different possibilities; none is “bigger” or “better” than another; examples are eye color and gender
    • Ordinal scale: a relationship exists between different possible values the data can take; there is a natural, meaningful order to the possibilities; an example is who finishes first, second, third in a race
    • Interval scale: the differences between possible data values is meaningful; an example is temperature
    • Ratio scale: the possibility “0” actually means zero; division and multiplication of data values is meaningful; an example is response time for students to answer questions
    • Continuous variables: for any two values you can think of, it is possible to have another value in between them
    • Discrete variables: not continuous
    • Likert scale (Strongly Agree – Strongly Disagree) is considered quasi-interval
Screenshot 2013-08-20 at 11.49.48 AM

The relationship between scales of measurement and discrete/continous distinctions

  • Reliability. I already have a blog post about this, so I am going to gloss over it. The chapter briefly explains test-retest, inter-rater, parallel forms, and internal consistency reliability. All good things!
  • Experimental versus non-experimental research. The text discusses that experimental research must be controlled and randomized by the experimenter. In learning science, that is pretty much impossible. Any time you’re working with students, “control” of an educational intervention is pretty difficult to achieve. I like the distinction of quasi-experimental research and case studies as a decent “middle ground” in psych research.
  • Validity. Again, I already have spent some blog time talking about how important validity is. Go read that. :] Or, read this part of the chapter, ’cause it gives a really nice description. It also has a good section on possible threats to validity.
  • Bias. There is a pretty extensive discussion of possible kinds of bias in a research design. They are very important to be aware of, but I am not going to detail them here.

Teaching with Gadgets

Recently I have had the privilege of trying out a series of gadgets designed to facilitate the process of learning programming and computer science. I’ve gotten a chance to use the Finch Programmable Robot, the Sphero Robotic Ball, the Raspberry Pi, Lego Mindstorms, and the Lilypad Arduino.

While I think these gadgets are all very exciting and have a lot of potential for use as teaching tools, I also see some problems with them.

Most of the gadgets are very expensive. The Sphero is $130, the EV3 Mindstorms kit is $350, the Finch robot is $99, and a wearable computing Lilypad starter kit is $60. In large classrooms, purchasing enough gadgetry for all the students just is not affordable. Especially in under-resourced, low socio-economic status schools, the funding for such classroom tools is viewed as peripheral.

Finch Robot

Many of the gadgets do not have direct ties to computational thinking (let alone computer science). The tools discussed in this post all have ways that they can be used to facilitate the teaching of computational thinking and computer science. Unfortunately, those lessons are not necessarily obvious. I cannot just set up a group of students to play with a Sphero and expect them to walk away understanding the principles of abstraction, pattern recognition, algorithmic design, etc. The Mindstorms and Lilypad kits encourage students to spend a lot of time (like, hours) with assembly before they even encounter elements of computing. If these tools are going to be used as a mechanism for teaching CT or CS to youth, they need to be accompanied with lesson plans, classroom integration ideas, possibly even professional development for teachers who may not be familiar with CT and CS. The gadgets themselves are not standalone ways to solve education problems with computer science.


The use of gadgets targets a specific type of student. Now, I do not have data to back up this claim, but I’m working on reading what’s out there in the research world about introducing CS to kids via robotics. All I know is from experience and personal observations. But, it seems to me that the use of robots and gadgets in lessons engages certain types of students, perhaps people who are motivated by engineering, building, creating. Perhaps robots are more engaging to the majority of students than simple lectures are. But, I think that using robotics and gadgets as the only entry-point into CS for young people, or even as the most common entry-point into CS, may deter other types of students.

Raspberry Pi

Gadgets aren’t really what CS is about. To me, computer science and computational thinking are about problem solving; they can actually be divorced entirely from computers in a lot of cases. In contrast, gadgets lead people to think that the tools are the necessary ingredient in computer science – that I can’t do “cool things” without the right tools. I want students to know that their own problem solving process is the essential part in CS, and that their algorithmic thinking and design process have very little to do with the medium they are using and much more to do with how they view the world and how they think outside of the box when solving a new problem.

Lego Mindstorms

Gadgets discourage us from exploring other types of teaching tools. I feel like there is a constant race to invent the next coolest tool in teaching students to program. This focus in engineering education detracts from talented educators and engineers exploring other, more diverse, free ways to introduce CS concepts to young people. Why don’t we think about how computing relates to ballet or rapping or sculpture or social networking? Chris Starr from the College of Charleston says that “computer science is the liberal art of the 21st century,” and I agree with him. So, lets explore other ways to access this art, since computing has now entered almost every aspect of daily life.

Lilypad Arduino

So, those are some of my gripes with using gadgets in the classroom. Don’t get me wrong – I think that gadgets can be great teaching tools when used appropriately and in some sort of larger computational thinking curriculum context. I’m interested to hear other people’s thoughts and experiences in regards to this topic. Leave ideas in the comments, please!