Thursday, April 30, 2015


Microsoft announced a new web site yesterday that tries to guess the age of people in images. Well guess is probably not the right word. I’m sure the researchers behind it would prefer calculate or deduce or something like that. It’s still underdevelopment and the results it gives are often not close – though often they are. The site is and you will probably want to try it out yourself.

Plan A is to show this to the students in my Explorations in Computer Science course. Their reactions when they try it with their images will be interesting. Some of the guesses are twice their real age. Some are right on the money though. I anticipate an interesting discussion about the state of the art of face recognition.

It turns out that this page is an example of what imagecan be done with Project Oxford. Project Oxford is “an evolving portfolio of REST APIs and SDKs enabling developers to easily add intelligent services into their solutions to leverage the power of Microsoft’s natural data understanding.” In other words other people can create applications that use these services for face detection and recognition, recognize speech and understand images in various ways. That sounds exciting to me. I can’t fit it into my one semester programming class (boy do I wish I had a post AP CS course to teach. :-))

I’m going to look into it for some personal projects though. Just as soon as I finish what is already on my plate. Famous last words.


Monday, April 27, 2015

Interesting Links 27 April 2015

Here in New Hampshire we are on school vacation this week. Seems like a lot of places were on vacation last week. Like a lot of teachers I will be spending break time catching up both around the house and on school work. Grades mostly. I’m also going to sleep late. :-) It was a busy week last week though and I have collected a good group of links to share.

One thing I did last week was to update my blog post on Robots For Teaching Programming  with more robots thanks to the #CSK8 chat community. If you are interested in computer science education for grades K through 8 the #CSK8 chat is a great thing to take part in.

I saw this interesting weekend activity idea from #makewonder - robot fashion show: It’s designed for their Dash robot (I wrote about Dash and Dot previously) but I think this is an idea that would work for many other robot projects. Students like to make their robots personal.

Check out Professor Colleen Lewis’ online Scratch curriculum for ready-to-use CS classroom activities.

"Your password is too damn short"  is a useful article by Jeff Atwood on the topic of passwords. Most people don’t realize how vulnerable their passwords really are.

Thanks to @PennEngineers there is a 3-day Bootstrap workshop this Aug. 5-7; Open to the public; $150 registration  Bootstrap is a great curriculum merging math and computer science for middle schools.

Interesting new Facebook page patterned after the famous Humans of New York called Women of Silicon Valley   Yes there are women doing cool things in tech! Read about them on Facebook.

Embedded image permalink

Create TouchDevelop games and win $3000 with the Break Into Code contest! This is an easy contest to enter even for beginners. THink Hour of Code with cash prizes. If you have students who took an interest in Hour of Code and are interested in a follow up (or who missed Hour of Code) this many be of interest to them.

CodeVA is currently working with several school districts to develop a semester Middle School Computer Science Course  Check it out if you teach or want to teach middle school CS.

Soon the Senate will vote to change computer science to a "core academic subject." Here's why it's a big deal according to Code.Org 

15 Netiquette Rules for Students  by Mark Burns – All in one infographic.

I saw this last week. I have a principal once tell me that his teachers were “not good with computers.” I asked him if it were acceptable to say “I’m not good with math” as an excuse for not getting grades done.

Embedded image permalink

Friday, April 24, 2015

More With TouchDevelop

The more I use TouchDevelop the more I learn about it. The more I learn about it the more I want to use it. For example, groups. I’ve known about groups for a while. I’ve played with them a bit on my own in the past.  Today I used them with students in a big way for the first time. I created a group for each of my two Explorations in Computer Science sections and had students join the appropriate group.

I was concerned about doing this in the past because they have to log in to use them. This year my school got Google Apps for Education (not my choice – I’m an Office 365 guy myself) so they could easily log in with an account already tied to the school. This meant I didn’t have to ask them to use personal and private information. Plus I knew they all had accounts they could use.

Once they were in the group I could have them share their current project with the group. This lets me easily look at all the projects in one place. That’s pretty useful. I can also subscribe to them easily which means I will get a message when ever they publish something. I’m not sure about that one as I don’t want to get all stalker on them. But if they share assignments with the group that covers most classroom situations I can think of off hand.

An other thing I discovered was status. That gives me the option of seeing how much progress students have made on various tutorials.


Right now I am using it just to see what tutorials they are trying and how they are doing with them. That may give me some insights into what sorts of projects students find interesting. It is probably also the incentive I need to create some tutorials of my own. (Like the TD team has been suggesting I do for a while.) I need to look into what other sorts of data I can get from people taking tutorials I create. Something for this weekend perhaps.

TouchDevelop scripts that are shared for editing with a group can be opened and edited by members of the group at the same time. That is also on my list to experiment with real soon. Soon being after next week’s April vacation. I think there are some interesting possibilities there.

Students love to experiment with TouchDevelop. They are trying things, asking me a lot of “how do I do such and such” questions, and having fun. All good things. I’m thinking a lot about how I can expand use of it next time.

Thursday, April 23, 2015

How To Tell Your 1:1 Program is Going to Fail

I saw this question on Facebook.

My schools going to all iPad next year for the students. Can we do the coding that we need to for AP Computer Science on an iPad?

laptopsMy first reaction, and second reaction, and third reaction was – why is that question even being asked AFTER the decision has been made? Shouldn’t questions like “is their software for my subject available for the device?” be answered BEFORE a decision is made on what devices to adopt? So that is one clue things are not likely to work well.

Another clue is to ask what professional development is going to take place? And will it be subject specific or just tool specific? What do I mean by that? Well a session on “how to use Google Docs” is tool specific. “How to use Google Docs to teach {specific subject}” is more specific to pedagogy. One is generic and unlikely to have any impact on the way something is taught (in which case ask why are we doing it at all?) while the second is geared towards making a difference in how a teacher teaches and students learn.

I’ve been seeing this for 30 years now. When will it end?

Wednesday, April 22, 2015

#CSK8 has been nominated for a Bammy Award in Education

#CSK8 is the Twitter chat community and online discussion that is being run by the CSTA K8 task force. In a short period of time it has built a large community of educators helping each other with ideas and support for teaching computer science in the pre-high school grades. There is a chat taking place tonight (April 22 at 8:00 PM Eastern time BTW) I hope you will join us.

This effort and community has been nominated for a Bammy Education Award. What are the Bammy Awards?

From the About the Bammy page:

The Bammy Awards is a cross-discipline honor that identifies and acknowledges the extraordinary work being done across  the entire education field every day-- from teachers, principals and superintendents, to school nurses, support staff, advocates, researchers, school custodians, early childhood specialists, education journalists,  parents and students.  The Bammy Awards were created to help reverse the negative national narrative that dominates the education field.

To vote you do need to register and log in. No charge and I have not seen spam from this in the past. Just a few brief updates on the process. 

The voting starts at the category page -

Select a category (in this case - Twitter Chat Community  ) Find and click on the nominee you want to vote for.  The #CSK8 nomination may be on the second page depending on how you sort is set on the page.

When you click on the description of the entry you will be taken to a screen with a Vote Now hot link. That will open up a chance to give a rating and write a review to support your vote. Give a high rating (Please!) and write how the CSK8 chat community is a valuable resource for you. We thank you for your support!

Tuesday, April 21, 2015

Trust and Computing

No Cloud I’ve been thinking a lot about the issue of trust in computing lately. It’s actually something I started thinking about almost 40 years ago when I had my first job developing software. At one point in our design work a couple of us started talking about what we call “threat analysis” for the software we were developing. Specifically we talked about ways the software could be compromised or manipulated to steal. We wanted to make sure the software was safe but clearly we were aware of the great power and responsibility we had as software developers.
At the same time another group in the company was working with a clothing manufacturer. During testing when the older manual system and the new computerizes system were running in parallel it became obvious that something was going wrong. The police were called and an undercover operation was set up. Not long after a number of employees were arrested for running a major inside theft ring. The old system had been compromised and only the lack of ability to manipulate the computer system allowed the thefts to be discovered.
Any system can be compromised with the right access. People need to be able to trust other people or the system breaks down. As computers become increasingly integral to our lives the ability to trust our systems and the people who design, create and operate them becomes more important. Can we trust the people who have our data?
The image above is something of an eye opener for many people. The cloud is something of a myth. What we call the cloud is just putting data and/or applications on someone else’s computer. Can we trust the people who run those computers? And if we can how far can we trust them?
Constant news stories about people breaking into corporate data systems and stealing credit card data, login data, and other personally identifying information bring home to importance of those systems being secure. For most of our personal data, email and cloud storage of files and images, we are increasingly trusting third parties, Google, Microsoft, Amazon and others, to store our data for us. It’s easy. It’s cheap. It’s easy to assume they can do it better – what ever that means. We trust them to keep the data safe from malicious agents on the internet. And we trust them, the companies, not to misuse our data. We trust them not to share it with governments without permission or court order. We trust them to not sell the data to others. In short we do a lot of trusting. Should be be trusting them so much? That is a hard question to answer and I think many of us have companies that we trust more or less than others.
The Computer Science Curricula 2013 guidelines (PDF) include recommendations that Professional Ethics, Privacy and Civil Liberties as well as Security Policies, Laws and Computer crimes to be included in a computer science curriculum. In fact while the guidelines talk about teaching many of these issues in a standalone course the committee made a point that these issues must also be discussed in context of different courses. I think this is important. And I think it needs to start young.
Where I teach we talk about many of these issues in our Explorations in Computer Science course. We try to work it in during our other software courses as well. I’m thinking we could do it better though. I think we all want people developing software who have solid ethics and who understand and value the need to be trustworthy. I think we need to be careful when teach teach students to help them understand that not everything that can be done should be done. We need people to consider the consequences, intended and unintended, of the work they do. Our future depends on it.

Disclosure: I was privileged to be a member of the ACM/IEEE Joint Task Force that wrote the CS 2013 recommendations.

Monday, April 20, 2015

Interesting Links 20 April 2015

Daffodils are blooming, golf courses are opening, and buds are appearing on trees and bushes. Looks like we’re going to have spring in New Hampshire after all.  We’re well into the fourth and final quarter at my school. It’s a great time of year. And I have a nice harvest of interesting links to share. Hope you find something you can use here.

imageMicrosoft is usually good about making platforms that can be  developed for so I was pleased but not surprised to see this Developing for the Microsoft Band Link Round-up (Channel 9) If only I could think of an app I wanted to developing I might buy one.

Mark Guzdial on BBC [] giving away 1 million mini computers so kids can learn to code: Prediction — little impact on broadening participation. I put in my two cents at Is the BBC’s ‘Micro Bot’ the Silver Bullet

Code Kingdoms teaches kids JavaScript through a puzzle adventure game: I haven’t played with this yet because it seems to only be available in the United Kingdom. Any one out there have a review for me? 

Ways Men In Tech Are Unintentionally Sexist Some things we need to be aware of in the classroom. Not just we as teachers but also making sure we don’t allow this sort of thing on the part of our students.

I ran into this quote last week. "That's the thing about people who think they hate computers. What they really hate is lousy programmers" - Larry Niven It’s one of those things that makes you really think. What does one mean by a lousy programmer? Is this user interface design? That’s probably part of it. Bug in code? Part of it as well. It’s complicated but something we need to work on both as people who develop code and people who teach people to develop code.

5 Myths Busted About Hackathons and The Maker Community Interesting article. I’m still trying to decide if hackathons are that helpful or not. Opinions?

Great Free Resource to Learn Game Development (Channel 9) Seems like a lot of options are available these days.

As encryption spreads, U.S. grapples with clash between privacy, security This is a topic we have been discussing in some of my classes.

Sheena Vaidyanathan, CSTA Board Rep for K-8, blogs on the CSTA blog about How to prepare educators to teach coding/CS

Saturday, April 18, 2015

Learning From Tic Tac Toe

The other day I created some teams (3 to 4 students per team) and asked them to create a program to play tic tac toe – a human player against the computer.image I have asked students to create a human vs. human version of tic tac toe in the past. It’s a nice little project that requires they use a lot of concepts that they have learned. Adding an AI is a bit more though so that is why the teams. Since I have never coded a tic tac toe AI myself (how did that not happen?)  I decided that I had to write a version myself.

I had a version of human vs. human tic tac toe to use as a base so the first thing I did was modify that so that it would call a module for find a computer move and incorporate that into the game. First learning – this is not as trivial as it sounds. Oh it’s not hard but one really has to think it through or you wind up with weirdness like the computer taking two moves or missing moves. It might have been easier to rewrite some key code rather than munging it up. Next time.

To test the code that allows the computer to move I made a very simple algorithm. I just randomly picked squares until I found an empty one. It worked. It allowed me to test the rest of the program but of course it didn’t play very well. Step two was to check to see if there was a square I could move in to win. A short time later I had a group of 24 if statements that checked every possible winning opportunity.

Then I made a beginner mistake. I copied and pasted that code and changed checking for “O” into checking for “X” to find a place where the computer needed to move to block a win by the human player. It took me a day away from the code to realize that this doubled the chance for me to make an error on this sort of check. I know better than that! So I broke the code out and created a single method that took as a parameter either an “X” or “O”. Much simpler code and it opens the door for me to more easily modify the program so that the computer can play as either “X” or “O”.

Since them I have done a bunch of refactoring and breaking complicated code out into individual, more simple, methods. It should make for good discussion when we talk about these programs as a class.

My students all want to try their hand against my AI.They helped me refine my program by finding things that I missed by not thinking things out enough. Students liked that of course. Now they don’t win anymore. In fact they frequently lose to the AI. That surprised me at first. I watched how they played and it became clear. They were so totally focused on what they could do to win that they missed seeing what the computer could do to win. That’s something else we’ll talk about in class. The computer doesn’t miss those opportunities.

BTW if you want to see a graphical solution of tic tac toe, the cartoon xkcd has a useful diagram.

Friday, April 17, 2015

Self Taught Coders and Ugly Code


I love this cartoon from xkcd. Of course some self taught programmers write really nice looking code. And some formally taught programmers write ugly code.  The message I take away from this is that learning how to write clear well organized code takes some work. Training and the use of standards can help. I’ve written some ugly code in my time. I try to demonstrate clear good looking code to my students though. I want to give them the best start that I can and that involves modeling good practice.

Thursday, April 16, 2015

Sometimes It is How You Look At It

A couple of days ago I saw an interesting program on the Small Basic blog.  The featured program was one that let a beginner write a turtle graphics program. I liked the image it drew but frankly I found the code not as clear as I’d like. Turtle Graphics SBThis is not meant as a criticism of the program, which is actually pretty cool or of the language it implements. I can see real value in both. It’s just not the way I visualize things.

I decided that I would write the example in this image in something else to help me understand what is going on. Lately my Turtle graphics language of choice is TouchDevelop so I opened a web browser and started duplicating the code.

My code looked like this: image

Well that is a lot better. For me anyway. But I was curious. Could it be easier? TouchDevelop has three skill levels – Beginner, Coder and Expert. This example is in Coder which is my favorite unless I need something from the expert feature set.

Just as the sample I was working from was not my cup of tea I thought that my style might also not be for everyone. I’ve had students who really preferred Beginner. So I switched skill level to see that that would look like.

It looks like this:image

Wow! Colorful! And the nesting of the loops is abundantly clear with indentations and color coding. I like it. I can see how a beginner would find that much easier to understand. I still prefer coder for my own work but I can see real value in this Beginner mode.

We have an abundance of coding tools these days. Drag and drop languages, traditional text based languages, tools like TouchDevelop which are sort of in the middle and they all have valid uses. I’m not sure it is fair to pick one or two and say this is the right way to do things. Different people see things differently. I’ve seen students who have been taught multiple drag and drop languages (Alice, Scratch and Kodu for example) and they can all justify their favorite. There is no unanimous agreement on the best one. We visualize things differently. Sometimes the best use of time is experimenting a bit to find the set of tools that fits ones individual learning or visualization mindset.

Of course once one is out of the classroom one often doesn’t have a choice of tools to use. At least once the concepts are learned and internalized learning the new tools becomes easier. And easier still with each new tools. Variety is a good thing.

BTW, this next image is a side by side look at the three skill level views in TouchDevelop. Note that you can easily do some really advanced things in Expert mode.


Tuesday, April 14, 2015

Why Would You Do That?

Students ask interesting questions. One of the more frequent questions they ask is “why would you do that?” Often it comes, not because you didn’t already explain why one would do something, but because the answer doesn’t really register in the abstract. For example we are spending some time on creating methods (subroutines/functions) in our programming class. When I introduced them as a concept I explained multiple reasons why we use them. Simplification, ease of testing, reuse, etc. Then we worked on how they are created and used. As is typical I started with something very simple. Perhaps too simple? In any case what we did was to break out some equations (temperature conversions) and put them in their own methods.

The methods are very simple. Sometime like this:

   1: private double CtoF(double x)
   2: {
   3:     return x * 9.0 / 5.0 + 32;
   4: }

My goal of course is to explain the mechanics of setting up and calling a method. So a method with very simple code in it seemed like a good idea. And then the dreaded question “why would you want to do that?” This actually adds some complexity to the code in some ways. It feels like extra work and it is hard to argue that it is not.

The discussion was now open though and that was a plus. I asked the student if they’d like to write code to replace the ToString method. Of course he said yes and it working on it but most of the class is fine reusing the existing method. Having done some string and char manipulation the students have some ideas about what is involved. Asking them if they would want all that code in their program everywhere they currently call the method makes the value of methods start to sink in.

It will become even more evident when we start writing our own classes in the near future. But I have a feeling that at some point, probably when talking about data hiding and using methods to access class data I will once again hear someone say “why would you do that?” No matter how many times I have already tried to answer the question in advance.

Monday, April 13, 2015

Interesting Links 13 April 2015

Spring may actually be coming. Only of few piles of snow left on my property and I was able to take done the Christmas lights on the tree in front of my house. Usually I can get to them a lot earlier but we had a lot of snow this year. I also filed my taxes. Not my favorite thing but I have to say that modern software makes the job a lot easier than it used to me.

Speaking of leaving things to the last minute – if you are a CSTA member have you voted for the board elections and by-law changes? Please do so. It is a key opportunity to make a difference in your organization.

I spent some time over the weekend checking out the TouchDevelop curriculum by @michaelebraun. Looks pretty interesting. 

I’ve really been seeing a lot of Kinect resources lately so I am really looking forward to the Tuesday session at the annual CSTA Conference called "Out of Your Seat Comp Science: Coding Using the Kinect"  being presented by: Doug Bergman.

Which reminds me that early bird  registration for  CSTA 15 ends 4/15/15 - save $50, register now! There's only a couple of days left for you to take advantage:

Speaking of Kinect, - Kinect to Small Basic is now available. That is pretty exciting I think as it makes Kinect more approachable to more developers.

Scratch Jnr is now available for Android  which seems like a good thing.
Some articles to think about:
Everyone gets excited about these but are they as good as we’d like to think they are? And what do they prove anyway?

Saturday, April 11, 2015

Help expand K-5 computer science education

Saw this item via the CSTA announcements mailing list. is hoping to expand K-5 computer science education by recruiting qualified computer science teachers who will prepare local elementary teachers to teach's elementary courses. If you have a background in computer science or experience hosting professional development, you may be a great candidate! Apply now:

What is the K5 Affiliate Program? has developed an online Computer Science curriculum for Elementary School students comprised of Courses 1, 2 and 3, which are free and publicly available at Our goal is to spread this curricula to tens of thousands of classrooms across the US through the development and implementation of a train-the-trainer model for teacher professional development.  

We implemented this model in September 2014 with 80 affiliates nationwide. So far, approximately 6,000 teachers have participated and have rated our workshops a 4.8 on a 5 point scale. The majority say, "It's the best professional development I've ever attended." We want to expand this program, and we want you to consider becoming an Affiliate.

How do you become a K5 Affiliate?

Become a K-5 Affiliate by attending a two-day, expense-paid workshop in Chicago, Illinois (July 17-19th). will prepare you to deliver your own one-day, in-person workshops to local educators interested in teaching the K-5 curriculum.Apply now:

What does a K-5 Affiliate receive?

For each workshop you host, affiliates will receive supplies to host the workshop (including curriculum guides and swag bags for teachers), a per-teacher stipend to compensate you.

Are you interested? Apply to become a Affiliate and host workshops for K-5 teachers in your region. Link to application:

Friday, April 10, 2015

Augmented Reality and Virtual Reality–the Future of Education?

Recently a friend of mine sent me a link to a YouTube video about an Augmented Reality Sandbox. It was pretty cool. Cool enough that it looks like a lot of people are making them. They all seem to use the Kinect sensor from Microsoft. One professor was quoted as saying something like they could spend $50,000 developing their own device or spend a few hundred on a Kinect.

The way they were able to model geography and topography with the sandbox was pretty amazing. It may not be too long before we see similar setups in high schools. Virtual or augmented reality (similar but not identical technologies) have great potential. In a Twitter chat recently Anthony Salcito – Microsoft VP of Education - , in reply to my question about Kinect and Hololens for virtual tours, said that “This is one of the early scenarios getting attention...hope to see innovative examples here.”

I’d like to see some innovation here as well. I think the hardware is there at this point. Kinect is an outstanding tool and Hololens looks like it it moving out well (soon?). Software is still something of an issue. While a development kit is readily available for Kinect and there are a growing number of sample code examples it is still a little early in the Hololens development process. Even with the Kinect development takes a lot of work from scratch. We don’t yet see apps for creation of media or user friendly tools. There is no 3D Movie Maker for creating virtual reality tours. Dare I hope that I should add “yet” to that statement?

I’ve been trying to think of other uses for augmented reality.tower I just had my students do the marshmallow challenge which involves building a tower from spaghetti.  I wonder what sort of exercises we could do with virtual reality? Towers out of materials that are not available for a classroom? “Flying planes?” Who knows!

Could we “look at” microscopic objects up close and personal in three dimensions? Tours though not only museums and buildings but the inside of car engines or the human body? Wouldn’t that be awesome?

The Hololens imagination videos show a lot of possibilities for showing people how to do things (there is a plumbing example for one) and I can see that being used to help students in academic as well as vocational course work. Imagine annotating what a student is seeing while doing a virtual (or real) frog dissection! Powerful stuff.

It’s easy to get excited about possibilities that never happen but we seem to be getting closer to some of these uses. The future looks interesting for sure. And computing is making it possible!

Tuesday, April 07, 2015

To College or Not To College?

diploma One of the ongoing arguments in computer science is if a university degree or study is necessary in computer science. Basically I think it boils down to “do you need a college degree to be a good programmer.” Of course computer science is more than programming and I don’t think there is too much disagreement that a real computer scientist needs formal training. But a programmer? That is where the debate gets heated. An interviewing manager once told be that he almost didn’t agree with interviewing me because I had studies computer science in college. Yep, having a CS degree (well a degree in Systems with a lot of CS courses) was held against me. Recently I saw a couple of interesting takes on this question.

The first article makes an interesting claim that many hiring managers these days are loath to accept. The second article is a little more accepting of the value of a CS degree – authored by someone with two CS degrees. Key point from Hadi Partovi “My short answer: to be a fantastic software engineer requires a combination of both the education background AND the real-world hacking experience. Neither is a substitute for the other.”

One also has to be careful distinguishing between types of computing degrees. Computer Science is different from Software Engineering which is different from Computer Engineering. The curriculum guidelines for computer science programs from ACM/IEEE are more geared to computer science than just programming or software development for example. If you are planning on writing code for a living then Software Engineering might be a better choice than Computer Science. On the other hand if you want to do really new state of the art things that have never been done before computer science might be a better case than hacking along or Software Engineering.

Generally though I think the ideal is some of both – school learning and learning on your own. Self learning tends to get focused in narrow directions even more so than school learning. I’m talking concepts not applications here. It’s very easy to learn a few tools and see them as solutions to all your problems. School will likely force you to learn new conceptual tools.

These days most school programs encourage students to learn new programming languages and platforms on their own so a good student has to be something of a self educator. I also encourage students to get involved in large projects. If the curriculum doesn’t offer large projects, and most do no, then find a friend or three and create your own large projects. Today’s hiring manager wants to know what you are passionate about and school projects alone will not cut it.

Lastly in my pitch for college is all the things other than coding that you will learn. Communication is one thing that every jumps on and it is very important. But I also think that the liberal arts and other “general education” requirements help make people more well rounded and interesting. There is also the matter of picking up domain specific knowledge and vocabulary that will help anyone understand the world around them.

Monday, April 06, 2015

Interesting Links 6 April 2015

Happy Monday! I hope everyone had a great weekend. For me it was a three day weekend. One of the benefits of teaching at a Catholic school is having Good Friday off. I do worry that some students may think that is the reason it is called “Good Friday” though. Now before I get to this week’s links I want to remind CSTA members that they should have received their voting information for the Board of Directors election. This year there are also a pair of bylaw changes to vote on as well. Please check it all out and don’t forget to vote.

Gov Asa Hutchinson of Arkansas announces group to oversee computer science implementation - Actually includes some teachers including Carl Frank who is the president of the Arkansas CSTA chapter. That makes me hopeful.

I saw this article about a Kinect app called Kinetisense which brings objectivity to range of motion therapy. This makes me even more interested in bring some Kinect development to my classroom. I may have to look at this as well. GesturePak v2 simplifies creation of gesture-controlled apps. And this Kinect 2 Hands On Labs

My post on Robots For Teaching Programming has been updated with links to Codie crowd funding effort.

Video Tutorial: A Simple Python Turtle Graphics Game Now all I need is time to watch it!

Also Mark Guzdial has a new eBook for CS education: The focus is Python and the new CS Principles course.Embedded image permalink

What should we be teaching: programmers or thinkers?  another great post by Garth Flint. It’s not really an either or question but a matter of focus.

String Immutability - APCS A Deep Dive THis is a great post by Rebecca Dovi on a topic that confuses a lot of students.

Friday, April 03, 2015

What’s Your Student’s Problem Solving Strategy?

I ran into this Developer’s problem solving sequence list via twitter yesterday.

  1. Google 
  2. Coworkers
  3. StackOverflow
  4. RTFM
  5. Think

My students seem to use something similar. Although they leave out reading the fine manual and for the most part StackOverflow. It probably looks something like:

  1. Mr. Thompson
  2. Students
  3. Google
  4. Think

I’m really trying to get them to stop always asking me for the answers. That is the easy way out. WP_20150402_001I’d rather they ask their peers or even search the Internet. I want them to learn how to learn. Of course what I really want them to do first is to think. I’ve even got the sign!

Now not all of them think as the last thing. I have a good number of students who are really good thinkers and problem solvers. Several of them are good at asking peers or doing Internet searches. But for every student who figures it out quickly, looks things up, and asks for a direction rather than a complete answer there is usually a student who starts off with “what do I do?” or “where do I start?” Those are the students who really need a teacher.

Some students are great at learning on their own. Some students are great at paying attentions, learning a concept and understanding how to apply it. I suspect many of those students would do just fine with a MOOC or an online tutorial or even a book. Remember books? But some students need more. Some students really need a human teacher.

Some students get to high school having had everything spelled out for them in nice step by step instructions that tested their ability to follow instructions but to how to problem solve or think critically. They are used to having a problem already broken down into predigested pieces. It’s not their fault.

So I spend some time talking to students about the parts. What are they? How can we break them down to smaller parts? And then, and only then, how do we do it in code? If I can get them there I figure that is success.

Thursday, April 02, 2015

Vote Now! -- 2015 CSTA Board of Directors Election

My ballot, or rather the coded link to the online voting system, for the 2015 CSTA Board of Directors Election showed up in my email inbox this morning. So I voted. I urge all CSTA members to look for their ballot, check your spam folder if you need to, and vote. Electing your board of directors and, in this election, voting on by-law changes is one of the best ways to make an impact on how your CSTA is run.

Information on all the candidates is available at CSTA Board candidate statements (PDF) and on the ballot itself. To view the proposed CSTA bylaws changes, including pros and cons, please click here.

Check out the candidates and bylaw changes and vote as soon as you can.

Wednesday, April 01, 2015

CSTA 2015 Board of Directors Elections and Proposed Bylaws Changes

The 2015 CSTA Board of Directors Elections will run from April 2, 2015 to May 4, 2015. In addition to three open positions on the Board, this year's ballot will contain two proposed changes to the CSTA Bylaws. Each CSTA member, including institutional members, should receive an email on April 2 containing a personalized link to the election ballot. This email will originate from, our election service provider, so be sure to look for this email and/or whitelist the sender in your spam filter. If your email address has changed recently, notify with your correct address. 

The three open Board positions in the 2015 election are: 

K-8 Representative (1 position): A classroom teacher who is currently teaching or promoting computer science at the pre-high school level. 

9-12 Representative (1 position): A 9-12 classroom teacher who is currently teaching computer science at the high school level. 

At-Large Representative (1 position): An educator with responsibilities for K-12 CS education. 

The nominees for each of these positions can be viewed here, along with their personal statements and Q&A responses. In addition, members can read nominee blog posts at the CSTA Advocate Blog.

To view the proposed CSTA bylaws changes, including pros and cons, please click here.