Wednesday, August 27, 2014

Yet More Block Programming Languages

I saw this announcement on Facebook first but I probably just missed seeing it on the email list. At this stage I have to wonder why? Why more of the same? Do we really know that these languages work and if so for what definition of “work?”

From Dr. Jeff Gray at the University of Alabama via the SIGCSE mailing list:

We would like to announce the availability of two new Blockly-based languages that may be of interest to CS educators:

  •  Spherly is a web-based programming environment that allows programs to be written using a block language to control a Sphero robot. Project URL:
  • Pixly provides a block language for exploring topics in media computation; particularly, the manipulation of pixels within an image to support red-eye removal, chroma key, etc.  Project URL:

Both projects can be run from within a browser (Spherly requires a provided server to be executing on a local machine for Bluetooth contact to the Sphero). Each project page has links to a demonstration video, a user manual, a Google Groups users forum, related links, and a “run” link for executing each environment.

For completeness I did add these to my Programming With Blocks post.

Tuesday, August 26, 2014

Rotate the Cell Phones

One of the things I am working hard at this year is making things more clear to students. I want them to understand concepts and why they are important and useful. Of course one issue with teaching computing is that experienced people are used to thinking in the abstract but beginners are not. So tying theory into physical activity can be helpful. And if you can use something students care about even better. I was pleased to discover a new visual aid today that I think worked well.

I was working with a simple project – rotate the values in a series of textboxes.


Take what is is the first box and move it to the second, the second into the third, the third into the fourth and the fourth back into the first.

Experience tells one to save what is in box 4 in a temporary variable so you can copy it later and not lose it. Students sometimes have trouble visualizing this in their heads and I often see projects were a value is lost for each rotation. In the past I have used classes of soda (pop, tonic, soda pop) and asked students about how to swap the contents. Today I didn’t have any of that (poor planning perhaps) and I was talking about more than two items to swap. Fortunately an answer was at hand.

The new school policy this year (let’s ignore if it is a good one or a bad one for now) is for all students to place their phones in a rack in the front of the classroom when they arrive. Teachers can of course tell students to keep and use the phones when educationally appropriate. In any case I had a rack of phones to use. Four phones in the bottom four slots in the rack.PhoneRack How convenient!

I asked a student to come up and show me how he would rotate them though the slots in the rack. Interestingly he tried to explain it to me but I insisted he show me.

This turns out the be an important step because it forced him to think for a second. The answer was there but not clear and solid until he was forced to move physical objects. After a pause he picked up the first phone and moved it out of the way – to an empty slot in the rack. Rotating the rest was easy after that.

Watching the students duplicate my example (from only the running form and explanation) is seemed like students understood the concept of the temporary variable better than usual. We are teaching a visual generation for sure. I wonder if the cell phones were an extra incentive to watch? Regardless this is a visual I plan to use again. When we cover sorting for example.

Monday, August 25, 2014

Interesting Links 25 August 2014

Well I made it though going back to school. Teachers went back Tuesday, we saw our freshmen students briefly on Wednesday and had a full (very full) day of classes on Friday. Today starts the regular routine.

Edutopia says the Computer Science is the Future of Education. Agree?

Abby Fichtner aka @HackerChick who I first met when we both worked at Microsoft writes convincingly on  Why We Need to Teach Kids to Code

Google is giving $1.5 million tosite.site_name organizations that encourage girls and minorities to learn computer science in the Google RISE Awards.  Apply now

I found yet another robot startup designed to get kids interesting in computing on twitter at @start_robo I don’t know much about them yet but their web site looks interesting

Bing's Developer Assistant for Visual Studio promises to make coding a little bit easier via @neowinfeed I’ve been using it a bit as I write some small projects. It’s helpful but you still need to know a) what you are looking for and b) how to recognize when what you have found will or will not solve your problem.

Computer Science and "Makered" on the @csteachersa blog by Laura Blankenship @lblanken  The maker movement in education and computer science are natural fits.

Friday, August 22, 2014


Time flies when you’re having fun. It seems like just yesterday I got home from this summer’s CSTA conference. But it has actually been a while. And then yesterday I saw the call for proposals for the Annual CSTA conference. Are you doing something interesting that you are willing to share with other computer science teachers? Seriously think about making a proposal.

The Computer Science Teachers Association (CSTA) invites you to participate in the 15th Annual CSTA Conference. This event will be held July 13-14, 2015, in Grapevine, Texas (Dallas/Fort Worth area).

The CSTA 2015 Program Committee seeks proposal submissions related to the practice of teaching and learning computer science and information technology in K–12. This year, the conference is seeking 3-hour workshops and 1-hour sessions, and 20-minute mini-sessions that focus on pedagogy and best teaching practices.  Proposals for all three session types must include:

  • the names and contact information for all presenters
  • an overview of the session
  • a description of the intended audience (level, knowledge, …)
  • a description of session activity (in sufficient detail for an informed decision)
  • presenter background and presentation experience

Proposal must also include an expanded description (to be submitted as a PDF attachment) that provides the following information:

  • background for the topic to be presented
  • description of the information to be covered
  • description of why this information is relevant/useful to K-12 computer science and information technology teachers
  • description of what the attendees will learn from this presentation, and
  • description of any handouts

Presenters will have the use of a computer projector and screen. If additional equipment or facilities are required, this should be clearly requested in the proposal; it may be possible to accommodate such requests but this cannot be guaranteed. Presenters will be required to pay for their conference registration.

All proposals will be submitted through the online symposium submission system that can be found at If you encounter a problem with the submission system, please contact Duncan Buell at

The deadline for proposals is midnight on October 6, 2014. Review of proposals will occur shortly thereafter and notification of a decision will be made around November 15, 2014.  All submission will be evaluated on the following criteria:

  • technical quality
  • writing and presentation
  • relevance to CSTA (focus on K-12 computer science)

Successful proposers should expect to be asked to submit a draft copy of their presentation by May 15, 2015. Draft presentations will be posted on the website for attendee reference and note-taking. All final presentations will be gathered by room proctors at the end of each session. Some sessions may be selected for videotaping, which will be shared online post conference. All workshops and sessions will be photographed.

Why present at CSTA 2015? The CSTA annual conference is the only CS conference specifically dedicated to meeting the needs of K-12 computer science educators. Come network with your peers, present your great ideas, and learn best practices. Here is what some 2014 conference attendees had to say about the conference:

  • “Best session and workshops I’ve ever attended at CSTA conference”
  • “First year as CS teacher, and I’ve heard a number of good ideas that I’m excited to research further and implement, via CSTA”
  • “Very welcoming presenters, participants and volunteers”
  • “Excellent conference! Very informative and exciting!”

Additional conference details can be found at

We look forward to receiving your proposals and to your attendance at the symposium.

The 2015 Annual Conference Planning Committee

Wednesday, August 20, 2014

Hacking Away at Little Problems

We have a fairly nice system for student information and the like. It is not perfect but then what system is? For example, our student management system will output class rosters as PDF, Word or Excel files. The problem with the excel output is that there is way too much information in it to be easily used for many of the things teachers want to use it for.

If it were just a matter of extra columns it wouldn't be too bad but there are also extra rows. It is tedious to strip things out. I’ve done it before but it’s just not fun. Writing code on the other hand is fun. Well for me anyway.

So of course I wrote some code. I saved the Excel file as a CSV, ran it through my program which output a new CSV file with just the information I want. That CSV was opened in Excel, nicely formatted and saved for future use.

Honestly I think it took less time to write than it would have to manually clean the data. It was something under 30 lines of code and a bunch of that was just variable definitions and other setup.

As a bonus, now I have the code for next semester. It's not fancy and it is not bulletproof - I'd really worry about supporting it for use by others - but it works for me. Just one edge programmers have over people who are not comfortable writing code. I did this in Visual Basic. Others would use other languages or tools and I am sure some UNIX/Linux person will jump in without how they would do it as a shell script using utilities. But the point doesn’t change that knowing these things can be useful.

I think lots of people run into simple problems that can be solved with what we like to call “a small matter of programming.” One doesn’t have to be an expert or a professional to write many simple programs to solve simple problems. Nothing is my code is beyond what I teach my beginning students for example. In fact my honors programming students will have a similar, but involving more complicated string manipulation project, later this semester.

In today’s world should basic coding be part of more people’s skill set? I think so.

New Widget–CS Teaching Tips

I added a new widget to my blog last night. It is connected to CS Teaching tips which is a webpage and Twitter account – @CSTeachingTips. imageThe widget provides a different teaching tip when ever this blog is opened in a web browser. It looks like it could be a useful addition. You can of course also go to the CS Teaching tips website and search for specific types of tips.

Some information from the website’s About Page where you can learn more about the people involved.

Project Summary

Problem: CS pedagogical content knowledge (CS PCK) – i.e., knowledge of how to teach computer science – is mostly undocumented.
Project Goal: Develop a set of CS teaching tips to help teachers anticipate students’ difficulties and build upon students’ strengths.
Status: Beginning the project in October of 2013, we are currently recruiting CS teachers who have insights into student learning.
Funding: This material is based upon work supported by the National Science Foundation under Grant No. 1339404. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Tuesday, August 19, 2014

Why AP

Sometimes you miss something by reading a blog post too early. Such is the case with a recent post by Mark Guzdial - Python is the most popular intro language: But what about CS Principles? There have been some 37 comments worth of interesting discussion since I read the initial post. I wouldn’t have known about it if not for a post by Laura Blankenship. The comments discuss the future of the new CS Principles course as an AP course. A lot of the discussion is about why students take AP exams. There are two main reasons:

  • To get college/university credit
  • To improve their chances of getting into the college/university of their choice

A lot of the discussion on Mark’s blog post focuses on the possibilities for students getting credit at the university level. Most of the people commenting are in fact teaching at the university level and there is some skepticism as about the number of universities that will teach an equivalent course and give credit or placement for the AP CS Principles exam. If students can’t get credit will they take the course?

Some point to the perceived value of AP courses on high school transcripts towards college admissions. With additional weighting at many school and with admissions officers looking at AP courses as evidence of students being able to handle post secondary workloads this is a big incentive for many students to take these courses.

Are these what we really want in a high school course though? Should it be all about university credit or acceptance or something else? Do we worry too much about the post secondary aspect/goals and not enough about both shorter and longer term benefits?

I think we are looking at AP courses, at least in CS, as the only way or perhaps the best (for some definition of best) way to get CS into the curriculum. It may be true but it is also sad.

Monday, August 18, 2014

Interesting Links–18 August 2014

Seems like I spent all my time last week doing last minute tasks before school starts. Getting cars inspected and reregistered for example. And a haircut that my wife insisted, correctly, was overdue. Teachers at my school report back tomorrow. I’ll see students on Wednesday!  I spent hardly any time on line last week. That showed in a shortage of my own posts last week and a brief set of links today.

Favorite quote found on Facebook this week. “Without requirements or design, programming is the art of adding bugs to an empty text file.” -- Louis Srygley

Ray Chambers has a nice blog post about Multi-Dimensional Data Structure – Example

Mike Zamansky wrote over the weekend about the crew (the teachers) of his summer CS program. The Crew

One problem we have getting more computer science in schools is reports like this. Ofcom: six-year-olds understand digital technology better than adults via @guardian Even if we agreed (which I do not) that six-year olds understand digital technology better than adults that is not the same as agreeing that they know enough about technology. Ever CS and ICT teacher I talk to has stories of digital technology knowledge that is just a thin veneer

Someone sent me to a link to an interesting infographic and set of information about The Raspberry Pi: The Tiny Computer That Could

Friday, August 15, 2014

Learning By Doing Works for Adults Too

Over the last year or so I have had a number of meetings and conversations with school leaders about using social media. One of my first questions is always “who has a Facebook account?” Invariably I get answers like “I created an account to look at but haven’t used it” or “Not me.” Occasionally I get a person who shyly admits that they have an account. Most of what most administrators know about social media is what they read in the mainstream media. Unfortunately that tends to be bad news – scary tales of things going viral that most administrators would rather no one knows about. Is it any wonder they are afraid of the possibilities more than excited by them?

Educators worry about social media for some very good reasons. People have lost their jobs and reputations by doing stupid things on social media. Or even for doing things that would be acceptable for most others but which are detrimental to educators because of the extra scrutiny people in those roles are subject to. On the other hand there are very good reasons why educators should, arguably must, understand these new communication paths.

Teachers and administrators are role models. We try to set good examples every day at school. We work to exemplify life long learning. We watch carefully how we treat others and how we act in front of students. We try to teach what we know and share our excitement at our subject matter. And yet somehow we often feel content to talk to students about social media without really understanding it ourselves. That is not a recipe for success.

Students today are communicating and learning about the world though social media. Facebook, twitter, snap chat, and many more online tools are part and parcel to the way they interact with the world around them. Can we as educators afford to be ignorant of them? Can we really understand those tools without using them?

Can you imagine a shop teacher who has never used a saw? Or a chemistry teacher who has never mixed chemicals and watched the reaction? Or an English teacher who doesn’t read books? Or a math teacher who reads about calculators but doesn’t use them herself? Of course not. And yet we trust administrators to make rules about social media that they only know about from reading about them. Or teachers to talk about online social behavior who get their information from watching movies like “The Social Network.”

Now I am not suggesting that people start living their whole life on line. Or even that some social media should be required. But it should not be banned either. And people who hope to understand social media should at least use it to some extent. Facebook can be very useful for keeping in touch with friends but it is also a good way to keep informed on the latest social media memes – not all of which are bad. Arguably the ALS Ice Bucket Challenge which has seen donations to find a cure for this horrible illness skyrocket is a powerful force for good.

Twitter is an amazing tool for professional development as well as communicating about the good things that happen in a classroom, a school or a school district. It can be hard to see the value without experience however.

Educators need to fearlessly experience the modern online world. Not carelessly or thoughtlessly of course. But knowledge and understanding are vastly improved by hands on learning. The end result is highly likely to be better policies, better communication, and even better understanding of the world our students live in. Most of all perhaps, it is a chance to lead by example.


This post is a contribution to Scott McLeod's Leadership Day 2014 project.

Monday, August 11, 2014

Interesting Links 11 August 2014

One more week until I return to school for the new year. I’ve been spending a lot of time planning and thinking about how to teach things better this year than last. You many have seen some of my posts on projects lately. A lot more to be done but I feel good about the year. How about you? Are you back already or starting soon? Either way I have links to share.

The Hottest Ticket in Tech for Companies Struggling With the Gender Gap via @BloombergNews They are talking about the Grace Hopper Celebration of Women in Computing. A must attend for women in computing from all I’ve heard. Attending one day is on my bucket list.

It was interesting reading about the Founding of the Grace Hopper Conference via @anitasquilt as well.

40 Down, 1 To Go: What is this? A teacher friend is documenting his 41st and last year of teaching. I’m looking forward to reading what he has to say.

Apparently I am not the only one thinking about new projects. Take a look at Always a new idea for a project by Garth Flint and don't miss the discussion in the comments. Plus this follow up post by Garth - Silly little programs

School has started for many. I love the message here. Smile

Embedded image permalink

Thursday, August 07, 2014

Why You Need Parentheses

A friend posted the following image on Facebook. You’ve probably seen like it. Actually I have posted similar myself.
math puzzle
The result, as you might expect, was people arguing over the answer. Is it 9 or is it 1? Obviously it is. Smile
I wrote some code.
            double x = 6 / 2 * (1 + 2);
            button1.Text = x.ToString();
Actually I wrote it twice. Above in C# and below in Visual Basic. Not that there is a lot of difference or course. And they both probably translate to the same intermediate code (MSIL).

        Dim x As Double
        x = 6 / 2 * (1 + 2)
        Button1.Text = x.ToString()

As I expected, the result showed as 9. The addition happens first because of the parentheses. Next the operations start on the left and move right. So 6 is divided by 2 and that result (3) is multiplied by 3 (the result of 1 + 2). But while the computer thinks that way not all people do.

For many people the obvious next operation after the addition is to multiple that result by the 2 before dividing. And there is some logic to that. One would like to think it didn’t make a difference. But of course it does.

Moving from left to right is common practice and it makes things consistent but there is no law of nature that says it has to be that way. This is the sort of sloppy coding that confuses a lot of people. The question should probably be written ( 6 / 2) * (1 + 2) to remove ambiguity. That would remove the confusion. It is a better coding practice even though it just states what we’d like to think is obvious. In real life what is obvious to one person is not always obvious to another.

When writing code a developer owes it to the people who will later have to work with their code (even if it may be themselves) to remove as much ambiguity as possible. Things should be clear to both the computer and other people.

Tuesday, August 05, 2014

It's Hard To Make Easy Projects

I’ve been working on my lesson plans for this year and one thing I always struggle with is creating projects. Oh I have lots in my tool box but I am always looking for something new and more interesting. In many ways the hardest to create are the ones that are easiest for students to create. Let me put it this way – what sort of project can you design using nothing more than assignment statements? And make it fun and interesting for students?

Not easy is it? There is of course the traditional Hello World program. Yawn. And of course conversion programs. Fahrenheit to centigrade obviously. Last year I was introduced to the Red/Green program. This works very well in Visual Basic or C# where one can easily create buttons on the form and have one button change the color of the form to Red while the other changes it to green. Students actually have some fun when you say “now create more buttons for more colors.”

We’ve also used a program where an image is loaded into one picture box and pressing a button causes it to “move” from one box to another. This has a great feature that lets it be built up and made cooler as more programming features are learned (See this rotating lights project for example) I like projects that can be built upon for later use.

I’m always looking for more ideas though. What do you use for the first or second program?

Monday, August 04, 2014

Interesting Links 4 August 2014

It was both a slow week and a busy week last week. Slow online for the most part. There were a couple of big events that friends of mine were at but I was home. Microsoft had the world wide finals of the Imagine Cup in Redmond last week. A couple of years ago I might well have been there. It is a great event especially for university students – few high school teams make it as far as the world wide event.

Apparently Edutopia had a big event at the Skywalker Ranch in California as well. I expect to read blog posts about that this week. Mostly I have been doing lesson planning with school scheduled to restart in about two weeks. But there are some links to share. announced that the Computer Science Education Act is now the most-supported education bill in Congress! Over 100 co-sponsors. I’ll be a bit more excited if Congress actually passes it though.

Congress CS

The Scratch Team at MIT @scratchteam announced that ScratchJr (for ages 5-7) is now available as a free iPad app. And claims that “coding is the new literacy!” See for more information. Ages 5-7? I’m interested in how that plays out.

The Anita Borg Institute posted a link to 20 TED Talks by Women in Computer Science which I really need to spend some time watching. Maybe I’ll find one for use with my students.

Mike Zamansky continues his series on building a High School CS Summer program with SHIP - the Toolset Once he is done I plan to post an index if he doesn’t. A lot of good stuff going on. I think his model is reproducible if the right people, teachers and students, with a good culture can be found. Culture is under appreciated by many programs but not at Stuyvesant where Mike teaches.