Friday, October 09, 2015

An Inside Look at Being A Computer Science Teacher

Garth Flint is one of my favorite bloggers. Garth teaches computer science in a smallish private Catholic school in Montana. This week he wrote a pair of articles that I REALLY like. In fact I think they are a must read for a lot of people.
If you are the only teacher in a school these articles will help you realize that you are not alone. If you are teacher in a larger school with other CS teachers and a good tech support team you will realize how lucky you are.
Lastly if you don’t know what it is like to be a computer science teacher, don’t understand why and how being a computer science teacher is different from any other teaching job or if you want to understand more about how complicated it is to “create” more computer science teachers you really need to read these articles.
By the way, make sure you read to the last paragraph in the second article. That’s the best part.

Thursday, October 08, 2015

How NOT To Tell If Someone Is Cut Out For Computer Science

Recently “Code School, a Pluralsight company and online learn-to-code destination” released the results of a study of sorts they did to try and determine who were good candidates for a career in computing. The results are, in my opinion, about as useless as is possible. What they did was to survey people currently in the field to see what traits they have. This sounds somewhat useful except that we know that many people who can be good at computing are kept out of the field by the stereotypes this study concludes are indicators.

The problem as I see it is that if we limit ourselves to these so-called indicators we miss out on a lot of potential. We’re already getting the boys who jump into computing young. Just because someone doesn’t start early doesn’t mean they are not cut out for computer science. Many successful people get involved later. Often these later entries, in my opinion, arrive with a level of maturity that helps them be more effective.

This study also suggests to me that missing out on people is hurting us greatly. For example the study reports that “Women were less likely to procrastinate and more likely to turn in work on time with the best quality, while 41 percent of men admitted to waiting until the last minute to do school assignments.”

Speaking as a classroom teacher I’d rather see my students turn in their work with the best quality. I’m pretty sure most managers of development groups also prefer that to people waiting until the last minute to complete work. I’d rather encourage people who plan, who refrain from procrastination and who care about doing their best work than someone who always waits until the last minute to do things.

The results of this study are interesting to a degree but as a source for who to encourage into computing it’s not at all helpful.

Wednesday, October 07, 2015

Want a Job Expanding Computer Science Education?

The TEALS program ( is looking for regional managers to help them expand their program of placing industry professionals in schools to work with teachers developing and growing CS programs and teachers in schools. They are looking for people in San Francisco/Bay Area, LA, New York City, Boston, Virginia/DC, Phoenix, and Seattle. Full job description at

In brief:

TEALS is seeking a candidate with an entrepreneurial spirit who is passionate about computer science education in high schools. Candidates should be interested in helping to grow and scale the program in their region.

The regional manager is responsible for the region specific management and implementation of TEALS including, but not limited to:

  1. Technical recruiting and relationship management
    1. Recruit TEALS volunteer teachers. Speak at companies, conferences.
    2. Build and maintain relationship with tech companies, and grassroots recruitment of engineering volunteers.
    3. Conduct interviews and placement of volunteers within the region as well as management of volunteers.
    4. Understands the technology industry and work environment.
  2. School relationship management
    1. Recruit, vet, and onboard schools.
    2. Maintain relationship with school district administrators, school building principals, counselors, schools, foundation, and in‐service teachers.
    3. Foster the importance of CS education within the region’s school community.
  3. Teacher training and mentoring
    1. Train and mentor volunteers, and work with education partners.
    2. Visit school sites and providing feedback to volunteers.
    3. Conduct local teacher meetups and team check-ins.
    4. Support volunteers during the school year.
  4. Program management and operations
    1. Manage day to day running of region including budgeting and execution of program against regional plan.
    2. Drive excitement for CS education for students, schools, and volunteers with events and incentives.
    3. Build and maintain regional nonprofit relationships.

The ideal candidate will have a background in computer science with either a major or minor. Additionally, the candidate should have some classroom teaching experience and understanding of the school system and ability to navigate it.

Tuesday, October 06, 2015

I get letters

Doug Peterson occasionally writes “replies” to spam comments that are left on his blog. He does it so well that although I love the idea I don’t want to duplicate it. On the other hand I thought I might write about some of the email I get.

One of the types of email I get are requests to write guest posts for me. I them down. I want my blog to be my voice and about issues an products and what not that I care about. One person I turned down replied with an email that started with:

But I'm a professional writer and published number of articles in education related blogs.

Good for you. And good luck with your own blog. Of course they never seem to have a blog. They are looking to promote the web site they work for. It turns out that all of the blogs the most recent person listed as references appear to be commercial sites designed to attract readers for their advertising. In short the sort of site that makes internet searches for real content difficult. I have no desire to contribute to that morass.

Explicit requests to advertise on my blog is another  sort of email I get. Now there is nothing wrong with advertising and I am fine if other people accept advertising. Most teachers (including me) could use a little extra money. It’s just not something I want to deal with right now.

When I worked for Microsoft and blogged on a Microsoft owned blog site I used to get requests to advertise products that competed with Microsoft products. That always surprised me because if showed that people had really not done their homework. Amazingly even when I explained that promoting products against the best interests of my employer (pretty much the definition of biting the hand that feeds you) was not a good idea for me some people persisted in pushing their requests. Amazing really.

The next big email request is to use someone’s infographic. I used to accept some of these when I thought they were appropriate to my audience. I don’t do so as often as I used to. Most of them are basically advertising. The ones I do accept are more likely ones I find on my own and/or from a non profit whose goals I agree with. You are much more likely to see infographics from NCWIT or Code.Org on my blog than from a commercial entity.

Of course I get product and program announcements all the time as well. Those are case by case. If it seems appropriate (a new drag and drop language, a cool teaching robot, or a curriculum resource that has value) it may show up in an interesting links post. If I try it and really like it there may be a full blog post but if there is it is one I write myself (perhaps with some quoted text with a link).

Lastly I get a lot of public relations announcements that have nothing at all to do with what I blog about. I pretty much ignore these unless it is from a company or organization that I know might have things related to what I am interested in and think my readers might be interested to learn about. So not many of them get more than a scan followed by a delete. The cost of sending this sort of thing is so low that many agencies send them very widely hoping one or two will “stick” somewhere. I suppose they report back to the hiring company that they sent the announcement to x number of bloggers.

I never know what is going to show up in my email. Some of it is useful. Much of it is not. It is still interesting to see how things work or at least how people think they should work.

Monday, October 05, 2015

Interesting Links 5 October 2015

School is really rolling along for me. Last week we had our first progress reports due. This was followed up by a number of kids looking to make up missing work. Imagine that! On the outside of school there was a lot of news flowing around the Internet. More than the usual amount of links to share. Something for just about everyone. I’m pleased about the Small Basic with Kinect announcement. I’m going to try that this week. But far to much about me. Here are the links.
The Bottleneck in Increasing Accessibility to CS Education is Producing Enough CS Teachers from the blog@CACM Mark Guzdial writes about the elephant in the middle of the room when it comes to increasing accessibility of computer science education – lack of teachers!
What can I do today to create a more inclusive community in CS? Guest Post on Mark Guzdial’ s blog from Cynthia Lee. Lots of great suggestions!
Now open - THECNOLOchicas @technolochicas - web site for Latinas in technology
Garth Flint talks about what school is like for him this year as he upgrades some school software on a weekend. - I was bored watching an update so I figure I would babel. This is what it is like for a lot of high school computer science teachers who are also the IT support for their school.
Small Basic 1.2 Released with Kinect Support and Bug Fixes Microsoft Small Basic 1.2 includes Kinect for Small Basic, which introduces three new Kinect objects! It also expands the Dictionary object to translate in 7 languages, fixes the Dictionary object bug, and fixes another 7 crash and error bugs. It also features updated UI text for 15 languages! If you're using Windows XP or earlier operating systems, please download Small Basic 1.0 instead. Hey high school students, want to meet the folks who work on @Xbox One, @Windows & @Bing? Apply for Microsoft’s  high school internship: Local to Microsoft Redmond WA only unfortunately. How to tell if your child has a future in computer science Not sure I agree with this. Looks more like a list of what has traditionally been the the path into CS and not a real indication. I think we want to build more paths. What does a company like Microsoft need with the quietest room in the world? Interesting site about how Microsoft has the Guinness World Record for the quietest room in the world. Volkswagen and Cheating Software One of the world’s top security experts weighs in on the recent software to cheat in the news.

Friday, October 02, 2015

BBC Micro:Bit News–Lots Happening

News about the BBC Micro:Bit is probably more microbit3-300x225useful to my United Kingdom readers than those of us in the rest of the world but I think it is interesting to many more. There has been a lot of stuff flying through my feed the last week or so about it. I’m fascinated with some of it.

For example I learned about a tie in between Kodu and the BBC Micro:Bit. Check out this Kodu/Micro:bit feature demo What it is about is that a BBC Micro:Bit connected to a computer can be used as a game controller in some interesting ways. The obvious first way is using the BBC Micro:Bit to control robots in the game. You can also create displays on the BBC Micro:Bit LED set as well. But where I got really interested was when they attached sensors and other devices to transmit information to the game AND have the game control devices outside the computer. Watch the video to the end.

I tend to think that the big win for most students is going to come from attaching external “things” to these devices. I’ve played around with the simulator and doing stuff with the LEDs is fun but could get old quickly even for wearable devices. But maybe that is just me. We’ll see. I personally want to learn more about using sensors and controlling external devices though.

They are running a big roadshow around the UK teaching teachers about the Micro:Bit. Some teachers from these events are posting things they are learning:

You can see some of the resources available and try out the online simulator (programming in TouchDevelop, Microsoft Block Editor (built on Blockly) and now Code Kingdom’s JavaScript) at the MicroBit home page.

On the down side the BBC says Micro:Bit rollout will be delayed. Teachers should see theirs around Christmas but students get theirs later than that. Probably after the first of the year.

Thursday, October 01, 2015

Software Performance–It’s Complicated

One of the things I don’t have near enough time to talk about in a one semester first programming course is performance. Arguably that is much more real computer science than just programming is but one has to prioritize. It doesn’t help that understanding the performance of code is a pretty complicated thing.

My recent post about finding different ways to solve a problem showed this in the comments where several of us went on a bit about performance. Even simple problems can have solutions with very different performances. There was a time when things seemed a lot less complicated.

In the early days some compilers produced assembly language code which was then often hand tuned by experts. One would be able to find some performance bottlenecks more easily that way. Compilers were relatively simple and “stupid” back then. Then we moved on to optimizing compilers. This changed things quite a bit. It really messed up some of the benchmark software that a lot of people used to understand how fast computer hardware was.

For example some test programs had null  loops – loops that iterated many times but did no real work. Before optimizing compilers the loop would run some number of times doing adds and compares and a time would result. An optimizing compiler would examine the code, realize it do no useful work, and just not include it in the running program. Huge performance improvement apparently.

Writing programs that tested the performance of the hardware became much harder. Of course that was a good thing for software development because these compilers allowed average programmers to write very high performing code. Programmers did not have to know as much about how the hardware worked.

That doesn’t mean that people can’t write slow code that the compiler can’t fix. Trust me it can be done. I’ve done it myself and my students are often amazingly good at writing bad code. So it is something we have to think about and teach to some degree. My students who advance to Advanced Placement Computer Science will get a lot more discussion on performance which will be good for them.

I believe one of the benefits of formal computer science education can be a deeper understanding of performance issues. Someone who understands how multi-dimension arrays are stored and processed (yes it can make a big difference) has an advantage over someone who doesn’t. And there are many more possible examples.

There is a lot going on behind the scenes in software. There is often a difference between writing software quickly and writing software that runs quickly. Understanding compilers, hardware, assembly and machine language, and other details about how things work can be very useful.