More on the CS for All Proposal

I know I should have looked away when I saw this, but I couldn’t help reading a New York Post opinion piece on Bill deBlasio’s proposal to bring CS to NYC’s public schools.  Most criticisms I’ve seen have expressed concern about the implementation, not about whether it should be done at all.  This piece says it’s just a bad idea all the way around.  The first part of the author’s argument is that students aren’t passing the math and reading tests at high enough rates, so surely they can’t do CS.  She’s right about the difficulty of recruiting CS majors to teach.  And much as I hate the idea sometimes of running non-CS majors through a workshop to learn enough CS to teach an intro, that may, in fact, be where we have to start.  And deBlasio didn’t say it had to be at the high school level. It’s an option at the middle school level as well, where I think a well-trained teacher can do a lot with CS concepts.

Her other point of contention is just giving “failing public schools” more money which she thinks will be wasted.  So, in essence, the money could be earmarked for anything and she wouldn’t like it.

Her next argument is that tech CEO’s–really just David Gelernter–has stated that he doesn’t hire CS majors anyway, so what’s the point of creating more of them.  First, he’s one guy.  Second, several people, including Mark Guzdial, a respected CS Education researcher, has pointed out that Gelernter’s suggestion would skew white and male.  Putting CS in high schools, where everyone has the opportunity to learn CS can offset this imbalance.

Finally, she argues that “High school is the time when students are supposed to shore up their reading and writing and math skills so that they can be qualified for college or some other kind of vocational training.”  I would say that high school is a time to explore career options.  And if CS is not taught in high school, the idea of CS being part of one’s career options is off the table.  Yes, there are certain skills we want our students to graduate from high school with, but it’s not just math and reading.  That focus comes from the crazy focus on standardized tests (and arguing against that is another blog post).  Computer Science can actually be used to teach math and reading skills, if that’s what schools want.  It can also teach logic (useful in arguments against journalists), critical thinking, systems thinking, problem solving, creativity, and more, depending on the context in which it’s taught.

Will NYC’s proposal be challenging to implement? No doubt, but I think it’s worth trying, and I’m selfishly rooting for it to succeed.


I am Ahmed

Yesterday, social media exploded with the story of a 9th grader, Ahmed Mohamed, getting arrested for bringing a homemade clock to school.  Ahmed now gets to take trips to Google, Facebook, Twitter, and the White House.  His future is probably set.  Because he made his own clock. So he could learn. Because it was fun.

I’m glad it ended that way.  It could have gone very differently.  And I have to wonder.  If he had been white, would he have been arrested?  I don’t know anything about the school or Ahmed, really, but I’d have to venture a guess that someone at the school knew him, and knew of his interest in electronics and programming.  At least I sure hope so.  Where were they when all this went down?  Why didn’t the principal know?  Adults failed him because adults far too often assume the worst in kids.  It’s what teen shows are made of.

Ahmed’s story to me is one where people were afraid.  They were afraid of the technology.  No one had ever seen a computer board outside of those scary spy and crime shows on tv where they’re hooked to bombs.  They were afraid of who Ahmed was, based on his ethnicity.  First, we need to educate people about technology.  If engineering or CS is offered more broadly, educators would see projects like Ahmed’s more frequently.  They might even be able to look at it closely and understand how it worked.  And more importantly, we need to get away from stereotypes about what techie people look like, and what certain kinds of people are like.

Working Conditions

For the last week, an article from the New York Times about the working conditions at Amazon has been making the rounds on social media.  It’s worth reading the whole thing, but the gist is: Amazon works you to the bone and you can’t take time off even if you’re sick, just had a baby, or your husband died yesterday.  80 hours a week is the low end of expectations.  

I have no way of knowing if the article is true.  The truth probably lies somewhere in between the article’s insistence that Jeff Bezos is a slave driver and Jeff Bezos’s claim that he values his employees immensely and that they’re a caring company.  I suspect that some employees were treated terribly by some managers.  But “some” can add up to a lot at a big company like Amazon.  Even if just 1% of Amazon employees were treated as badly as the article claims, that’s about 1500 people. And that’s just if you’re talking current employees.  The numbers that have left would add to that.

Whatever the truth is, my first thought was, crap, more publicity about how much it sucks to work in tech.  I thought that before I even read the article.  This Slate article I thought was a good response to the kerfuffle; however, it doesn’t completely dispel the idea that working as a programming is grueling.   The author outlines three things that he finds off about the article:

First and foremost, good software engineers are still in high demand. For all the coders out there, writing production-level, high-quality code is still at a premium, given the amount of it that is required at this point. Combine that with the need for engineers to be able to work well with others, not be hopelessly dogmatic, and not get burnt out, and there’s generally a pretty strong argument for not treating your coders like total garbage.

Second, engineer attrition is bad. A new engineer will take months to get up to speed on an existing codebase to perform as well as her predecessor, and that’s assuming she’s as good as her predecessor (which is nearly impossible to predict for a cold hire).

Third, coding speed is highly variable. I saw work that normally would have been assigned to a team of five people given to a single high-speed engineer without incident. Some engineers simply prefer to do a more thorough job without cutting any corners, with the final 5 percent of perfection doubling the working time. Some engineers simply do additional, elective work to make their lives or the lives of their teams and other teams easier. Some engineers simply make more mistakes in the normal course of things and have to spend more time debugging to produce code of sufficiently good quality.

The first two of these, I was glad to see.  Basically that good programmers, who can not only code but work well with others are still in demand and that it sucks for the company to lose one of these good programmers.  The last I guess is about hours worked.  If you have two days to finish something and you’re a slow coder, you might have to work round the clock to get it done.  If you’re fast, you might just work a normal 8-hour day for two days in a row and be done.  I’ve certainly seen that in my experience as well.

Finally, the author makes the point that we shouldn’t be too worried about the software engineers who are forced out of Amazon.  They have in demand skills that can garner them a good salary.  The blue-collar workers that work in the warehouses are much worse off, both from a treatment standpoint, and from an ability to find good work if they leave.  We should be more worried about those conditions.

Best thing that happened in class

This is our last week of classes.  Monday and Tuesday, my students will present their final projects.  We didn’t have quite enough time to do another intense programming project, so I decided to let them do something a little different.  They had to pick a concept they learned in Computer Science and demonstrate it in a multimedia project.  Although I didn’t require any programming, some students have used programming anyway, because that was the medium they wanted to use.  The projects I’ve seen so far have been creative and fun.  And I think some of them will be useful for showing other students why Computer Science is a great thing to do.  One of my favorites so far is a painting by a sophomore:



I love some of the subtle references like the echoes of a circuit board and the icons and the brain.  I can’t wait to frame it and hang it somewhere prominent! I am always trying to get my students to think outside the box, and so far this project seems like it’s pushing them to do that.  I’ll share more as they come in.  Seeing them is the best thing that’s happened this week!


Goal Setting

In our official evaluation calendar, this is the time of year when faculty set goals for next year.  Often these goals get tweaked in the fall, but basically, by now, we start reflecting on how the year went, and how we could improve things for next year.  We’ve received feedback from department chairs and divisions directors, and even students.  Armed with that feedback, we will decide what to prioritize.

Next year, I will have some lofty, school-wide goals.  I am still working on that, but I have some ideas.  I will still be teaching two classes (3 really, 1 year-long, 2 semester classes), so I have been thinking about how to approach them.

Introduction to Computer Science went well this year.   I had 28 students split into 2 sections.  We went a little slower as I spent a lot of time helping people in class.  I really want to find a way to further encourage self-dependence rather than everyone waiting for me.  Honestly, the projects where folks did not get a lot of help turned out better than the ones where I had to hand-hold a lot.   The feedback from the students was that they wanted a few more structured lessons on the concepts.  I agree, but I also think partly they don’t really grasp the concepts when I teach them and then when they’re trying to use them in a project, they realize they didn’t grasp them.  They liked the videos I created, so I think I will do more of those.  I’m not satisfied with any of the textbooks I’ve tried, so it’s all on me, I guess.  I’m thinking about moving the robot stuff to the end of the year and opening up the possibility of building robots instead of or in addition to working with pre-built ones.

CSII kind of worked, but we lost a lot of time to snow.  I also struggled more than usual keeping them on task.  Last year, I had 3 students compared to 10 this year, so that was a very different experience.  I’m considering starting in Python and shifting to Processing for CSII.

Mobile Computing was new.  We used Stencyl, and it worked fairly well.  But I think I’m going to look for something that’s a little less buggy and a little more CS-y.  I’m thinking about TouchDevelop, but I know very little about it, so we’ll see.  The structure of the course worked fairly well, so I will keep that and just change up the language/tool.

Creative Computing was an experiment in the Middle School.  I’ve enjoyed it, and I think the students got a fair amount out of it.  Frankly, I didn’t put enough time into developing this.  It won’t be offered next year as we changed our schedule, but I got to try some new things and got some ideas for other classes.  I learned how to laser cut so that was good.

So there’s work to do over the summer!

Have you thought about goals for next year yet? Reflecting on this year? I think I’ve reached the point where I’m ready to wrap this year up. It’s so close!

Is Making Gendered?

I’m at EduCon today, skipping the opening keynote.  The thing I like about EduCon is that it always makes you think.  On the train ride in yesterday, I checked the Twitter stream fro the #educon hashtag and noticed a link to an article called “I Am Not a Maker”.  As a self-proclaimed maker myself, I had to see it.  I was expecting an argument about rejecting tech for say, meditation, walking in the wilderness or something along those lines.  I could handle that. Making isn’t for everyone, though I would argue it doesn’t have to be all about the tech.  Instead, it was an argument about making as a masculine domain, one that was fairly deliberately hiding the behind the scenes work of primarily women.

Of course making rises from our current culture; it’s not separate from it.  So that means it takes with it the racism, sexism, classism and other -isms inherent in our existing culture.  But claiming to be a maker does not mean that you’re advocating for some kind of return to a 1950s masculine-dominated mindset.  Chachra puts it this way:

Describing oneself as a maker—regardless of what one actually or mostly does—is a way of accruing to oneself the gendered, capitalist benefits of being a person who makes products.

I just don’t think that’s true.  First of all, I would say that makers are not interested in making products.  Most makers I know are interested in the process of making and what they learn from it, and empowering themselves not be beholden to the marketplace.  They want to make stuff for themselves that doesn’t exist in the market.  They want to fix the things they have so they don’t have to buy something.  So, I see makers as running counter to capitalism.  Now, I do think making has been somewhat commodified, but I think many makers are uncomfortable with that.

Just prior to the quote above, Chachra says this:

The cultural primacy of making, especially in tech culture—that it is intrinsically superior to not-making, to repair, analysis, and especially caregiving—is informed by the gendered history of who made things, and in particular, who made things that were shared with the world, not merely for hearth and home.

Making is not a rebel movement, scrappy individuals going up against the system. While the shift might be from the corporate to the individual (supported, mind, by a different set of companies selling a different set of things), it mostly re-inscribes familiar values, in slightly different form: that artifacts are important, and people are not.

Now, yes, I do think we should be critical of the world of making and to be thoughtful about how it does or does not reinscribe cultural norms.  And indeed, there are ways that it does, certainly if Make Magazine is your primary insight into this culture.  And, I think it’s important to have a conversation about that.  I teach Computer Science and I’m always having a conversation about the male domination of the field and how it got there and how it affects the tools we use every day.

And maybe because I’m approaching making from the angle of education, I think making is all about the people; it’s about using the maker process to engender a mindset that is resilient, independent, and thoughtful.   And I also don’t devalue caregiving and other “non-making” activities, but as an educator who teaches “making”, making has to happen in my classroom.  It’s just like a math teacher who might value English as a subject, but they’re not going to include much, if any, in their classes.  Education and learning is about having students be a little uncomfortable and try things they wouldn’t.  If my students leave my class and don’t become “makers”, I’m not only okay with that, I fully support it and often suggest careers and fields to my students that fall into the “non-making” category.  But I do hope that being a maker, or if people prefer, participating in the process of making, for a while in my class has some kind of impact.

I understand Chachra’s discomfort with the maker movement as a cultural phenomenon and especially the connections that have been made with Silicon Valley.  What I don’t understand is her complete rejection of it, instead of pushing for change within it.  Her field, engineering, is extremely skewed gender wise and maybe doesn’t have the hype of the maker movement, but certainly has issues, issues similar to CS.  It’soften unfriendly to females, certainly privileges certain kinds of work over others, and yet, she doesn’t reject it and say, I’m not doing that.  If female scientists had said that science was male-dominated and capitalist and unfriendly to women, so I’m not going to do it, we’d have no female scientists.

The maker movement deserves our critical eye, for sure, but it should be changed and not rejected.  Its focus can’t be on what makes white middle aged men happy–robots, cool gadgets, cars–but we need to point out when this is happening and correct it.  Fix it from within, I say.

Why teaching not coding

Every once in a while someone asks me why I’m not a professional programmer.  I think they wonder why the heck I wouldn’t want to get paid six figures. It’s a long story, of sorts, which makes me have to confess I have no CS degree (which wouldn’t preclude me from being a professional programmer, but always feels weird to say).  I’ve never been a professional programmer.  As I sometimes explain to people, working with technology is how I paid the bills while I pursued my humanities degree.  In all my jobs, I’ve toyed with code, mostly via the command line.  I built one small thing with PHP once before I got the teaching job that I have now.  I honestly don’t know if I’d like being a professional programmer or coder.  I suspect maybe.

But I consider myself a professional teacher.  I’ve been studying and working on my teaching skills as long as I’ve been poking around in a computer (well over 20 years now).  And I get a lot of joy out of teaching.  And, I’ve taught poetry writing, composition, literature, and now computer science, and teaching computer science is by far the most fun.  There is something so cool about watching a student get it for the first time, or make something super cool using code, especially when, as is often the case, they didn’t think they could.  I love finding ways to help students remember and understand complicated ideas.  And I love supporting them as they go beyond the classroom to do even more.  It’s problem solving of a different kind, I guess.

I also like middle and high school teaching way more than college teaching.  These students are so open to learning and discovering new things where many college students have already decided what they’re going to be and that it doesn’t involve you or the thing you’re teaching them.  I may be jaded by the fact that I taught a required course. Those who’ve actually taught CS in college may have a different experience.  I taught a Gender and Technology course once that was a hoot and a half.  I revised that for my high school students, and it was even more fun! Just saying.

So teaching is my thing.  And I do like to code, but given free time, you’re just as likely to find me reading a book about teaching or designing a lesson as you are to find me coding something.  They’re both fun, but the former has more draw for me.


Exams are coming up in just a little over a week.  Before the break, I gave a quiz in CS I over what we’d covered so far, and the range of grades was what you might expect.  A few failed, a few did super well, and a lot were in the middle.  Many of my students are super worried about the exam, based on how they did on the quiz.  What they may or may not know is that whatever they missed on the quiz, they probably understand now.  I went over the quiz in detail, round robin style, having each student  try to answer the question.  We also talked about strategies for eliminating questions and I gave them hints like loops usually reset variables, so if you see a loop without that, it’s probably wrong.

On the one hand, I’m not a fan of tests.  On the other, it is a good way to solidify your recall of certain concepts.  I’m not going to lie.  My test is hard.  It’s on par with the AP Test just in a different language.  I’d say I cover 1/2 to 2/3 of the concepts covered on the AP test and my questions are quite similar.  So a little worry is in order.  However, the bulk of my students’ grades come from the work they do in class: labs and projects.  What I find is that students who are doing well on those, which is most of them, aren’t affected by the exam, even if they do poorly.  Students who struggle on those tend to struggle on the exam and therefore do poorly on the exam.  Which makes sense.  You have to understand the concepts to complete the projects.

I do, however, want to change some of my assessment strategies.  I’ve been reading Specifications Grading, and while it’s geared toward Higher Education, there are some ideas in there that are worth considering and modifying.  My department works on a project-based level, but we do want to make sure we can clearly articulate the skills our students are acquiring, some of which are soft skills like figuring out problems independently and coming up with creative ideas.

I’m going to try a version of this in my Mobile Computing class that starts in a few weeks.  I’ll report here on the process and progress.  I’d love to hear other ideas for assessing longer-term projects and skill mastery.

Computer Science Predictions

Alfred made some interesting predictions for CS in 2015.  I agree with many of them, but as Mike said, it’s hard to know exactly how things will pan out.  There definitely seems to be some momentum behind having CS count and getting it into schools.  But will that momentum hold.  What will CS look like in 5 or 10 years?  Will it really get treated like Math and Science?

States could do weird things with CS, like let applications classes count.  Or they could let it count, but no schools will offer it because teachers are hard to find or in the race to build up test scores, they decide it’s not worth focusing on.  CS is as bound up in the issues with the whole system as anything else.

What that might mean is further bifurcation of CS offerings. Schools with wealthier students might offer CS while schools in disadvantaged areas won’t offer it.  So, you’ll get a further skewing of CS in the white, male direction.

That might be one reason to argue not just for letting CS count, but making it required.  What if, of the 6 or so math and science classes most students are required to take, one of them has to be a CS class?  Will we ever get there?  Some schools already require a CS course — a real CS course, not some information literacy course — but I think most are pretty far away from that.  Even my school, which has generous CS offerings, is not ready to make CS required.  Schedules, teachers, testing, etc. all present obstacles to making CS required.

So, I don’t know what to predict except that it’s going to be an interesting ride for the next few years.

Review: The Imitation Game

Yesterday, Mr. Geeky and I spontaneously decided to go see The Imitation Game, a movie about Alan Turing.  If you’re a CS person, it’s a must see.  If you want to understand something about the power of computation and what that power enabled, and to some extent, the fear it engendered, it is a must see.  It is also a good movie for making crystal clear the damage done by the British government’s treatment of Turing as a criminal for his homosexuality.  Not only did the chemical castration probably damage Turing’s mind, but it likely lead to his suicide a few years later, leaving all of us without his future contributions.

I remember first hearing about Turing’s life and my first thought was what a shame it was we lost him, and how much of a loss to the development of computation it was.  It a frustrating thought, and could be said about any number of people, especially from that violent period.  Mr. Geeky said afterwards that he thought the movie was actually about bullying, and the damage it does to people.  It’s true there are many forms of bullying in the movie.  There’s what Turing was subjected to as a child, and there was the bullying that Turing meted out to his colleagues.  And they, in turn, dish some out to him.  It is overcoming that bullying stance and coming together, that leads to the success of their code-breaking project.  So the movie is also a nod to the need for teamwork.

There are two movies that this film brings to mind: Social Network, and A Beautiful Mind.  We, as a country, have an obsession with looking into the lives of our eccentric geniuses.  John Nash, of course, was subjected to terrible psychological treatment in a similar vein to Alan Turing (with less tragic effects).  Mark Zuckerberg, on the other hand, enjoys the fruits of his labors and the respect of society more generally.  Much has changed in 50 years.

Another movie about the war effort and computing’s contribution to it is Top Secret Rosies.  Watching both movies together would be an interesting conversation starter.  Both “computers” in the movies serve specific purposes rather than the general purposes that Turing proposed and that we ultimately ended up with in our modern day computers.  It is also compelling to consider how these technological advancements came about out of a need to win the war.  Would we have gotten them without the war? Would they have come later?  Both movies also depict the significance the programmers/de-coders feel about the impact they’re having on people’s lives, both good and bad.

Like any fictionalized version of someone’s life, the movie takes some liberties, some of which work better than others.  Even with those, it’s a movie worth seeing.  The acting is superb and the story is compelling.