Friday, October 11, 2019

What Time Is 30 Minutes From Now?

Got the proctor guide for the PSAT that I have to proctor next week. There is a chart to help proctors determine stop times that are 25, 35, 50, and 60 minutes from a time after the start time hour.

Wait! What? Someone needs a chart to tell them that if the start time is 5 minutes after the hour that 60 minutes later will be 5 minutes after the hour? Apparently someone does. Or someone thinks some one does.

Some of my students, when being told to return to class in a half hour, ask me what time that will be. I blame the analog clock. That and laziness.

So obviously I am wondering, should there be an app for that? Yep, I found a new coding project. Now I just have to decide which class to use it in.

Thursday, October 10, 2019

Michael Backus Alaska Middle School Computer Science Teacher

Every so often I run into a computer science teacher’s work online and ask myself “how have I never heard of this person before?” This week I listened to a podcast by Vicki Davis with a middle school CS teacher from Alaska by the name of Michael Bachus. (How to Make Programming Easier) This guy is doing some cool stuff with middle school students. Robots, artificial intelligence, hardware  and software, and helping a lot of teachers do the same.

Michael Backus teaches computer literacy and computer science at Teeland Middle School in Wasilla, Alaska. As the creator of the, he has shared many projects that he has developed over the years, the most famous being his Artificial Intelligence with Arduinos curriculum.

Vicki Davis has a lot of great interviews as part of her daily 10 Minute Teacher podcast. She’s had me on a couple of times as well.

In any case, listen to this podcase and check out Michael Backus’ resources. Curriculum, videos, projects, and it looks like a lot more.

Someone needs to get him to CSTA to present some time.

Wednesday, October 02, 2019

ACM/CSTA 2020 Cutler-Bell Prize in High School Computing

Applications for the ACM/CSTA 2020 Cutler-Bell Prize in High School Computing are now open. The deadline is 12 January 2020.

The Award

The ACM/CSTA Cutler-Bell Prize in High School Computing is a prize designed to recognize talented high school students intending to continue their higher education in the areas of computer science or technology. The program seeks to promote and encourage the field of computer science, as well as to empower young and aspiring learners to pursue computing challenges outside of the traditional classroom environment. The prize is a made available through a $1 million endowment established by David Cutler and Gordon Bell. Dr. Cutler is a software engineer, designer and developer of several operating systems including Windows NT at Microsoft and RSX-11M, VMS and VAXELN at Digital Equipment Corporation. He is Senior Technical Fellow at Microsoft. Dr. Bell is an electrical engineer and an early employee of Digital Equipment Corporation where he led the development of VAX. He is now a researcher emeritus at Microsoft Research. Up to four winners will be selected annually and each will be awarded a $10,000 prize which will be administered through the financial aid department at the university the student will attend.


To apply for the Cutler-Bell Prize, you must be a graduating high school senior residing and attending school in the U.S. Challenges for the award will focus on developing an artifact that engages modern computing technology and computer science. Judges will look for submissions that demonstrate ingenuity, complexity, relevancy, originality, and a desire to further computer science as a discipline.

Tuesday, October 01, 2019

2019 Champions of Computer Science Awards

Know a student or teacher or administrator who has achieved something this year to increase access and quality of CS education. I can think of a number of people who should be nominated. Maybe you can think of someone as well? Don’t assume they will nominate themselves! Deadline is midnight Pacific Time October 21, 2019.

2019 Champions of Computer Science Awards

The Award

Tell us about a student, educator, administrator, or organization that has achieved something in computer science this past year for the opportunity to be recognized as a 2019 Champion of Computer Science. These awards are a collaboration between CSTA and

The Champions of Computer Science Awards identify and promote students, teachers, administrators, and organizations who have made a significant impact to improve access to and the quality of CS education.


Any K-12 student, teacher, or administrator may be nominated for the Champions of CS Awards. Organizations that work directly to improve access to and the quality of CS education may also be nominated (examples: afterschool coding clubs, local CSTA chapters, regional or national nonprofits, etc.).


Award winners and a guest of choice will receive an all-expenses paid trip (travel and hotel) to attend the CSEdWeek event on December 9th (location to be confirmed). This opportunity is only available for US submissions.

This form closes Monday, October 21, 2019 at midnight PT. Email if you have questions.

Monday, September 30, 2019

The Problem Of Cheating on Programming Projects

This seems to be the year a lot of people are really getting concerned about cheating on computer science programming projects. There has been some discussion of the issue on one of the mailing lists I am on. Garth Flint blogged about it at Finding cool projects for programming classes. And I caught a student searching for exercise solutions for Code.Org’s AP CS Principles course work.

Of course cheating on programming projects is nothing new. I know that people shared punch cards back in the early days. Yeah, I’ve been around a while. I have also caught students sharing code via Google Docs. With the tools we have today, cheating has never been easier. Solutions to popular coding projects are easily available on the Internet and found using search engines.

It’s amazing that students don’t think teachers can recognize and then find solutions that a student copied from the network. We can and we do.

One common refrain I hear is that professionals get code off the Internet. And they do. GitHub is all about sharing and reusing code. StackOverflow and sites like it are were professional and amateurs find solutions to their problems and use them. It is considered good practice to use these tools. But school is different.

School is about learning and projects are assigned both to provide practice and to evaluate what students have learned. Students have a tendency to grab code they don’t understand and try to shoehorn it into a project. Or to copy a while project and turn it in as their own. Interviews can usually determine is a student understands what they used or not.

Ideally though, students would only hand in their own individual work. That is better than catching them and docking them points. Today’s students have more pressure to get good grades and (apparently) less understanding of the correlation between knowledge of the material and those good grades.

Garth wrote in his blog about trying to come up with unique projects that don’t have solutions on the Internet already. That’s hard. It seems like a lot of us teachers think of the same projects. Or we get them from third party curriculum and textbooks. Once a project is in wide use solutions will appear on the Internet pretty quickly.  Even if a teacher does come up with a project that can’t be found on the Internet, if you have one really bright student who is willing to share their solution you can have cheating.

The only thing I can think of is making the issue part of a discussion of ethics and the meaning of school. Using code from the Internet correctly requires that students actually understand what they are using.  Students who cheat their way through are going to find themselves in a bind eventually. If not in post secondary school than in their careers.  Somehow we need to make them understand that.

Wednesday, September 25, 2019

If Statement Programming Projects

Over the years I have used a number of projects to give students practice using if statements – especially those that involved nesting or checking lots of values. Currently I am using:

  • Hurricanes – user enters a wind speed and the program reports the storm category
  • Voting – User enters an age, and checks boxes to indicate citizenship and registration
  • Pizza pricing – Base pizza prices plus add-ons for veggies, meats, or different cheeses.
  • Movie theatre pricing – a bit easy as there is only ages to check but ranges require some thought.
  • Ski tickets – prizes based on age and whether or not they are staying at the resort. I could add holiday/weekend of midweek as well.
  • Jumanji – If the random number generator “rolls” two dice whose totals are a 5 or and 8 let the player out of the jungle.

These all work fairly well. Students relate to most of those. Voting gets kids thinking about their future so that is a plus. Obviously decision structures show up in other projects all semester long but these have that as a special focus.

I’m trying to think of some new ones. Projects that are relatable and that are complicated enough to make students think but not so hard that they get frustrated easily. What are you using? What works well with your students?

Tuesday, September 17, 2019

Book Review: "Tools and Weapons"

"Tools and Weapons" by Brad Smith and Carol Ann Browne is a look at some important computing issues through a Microsoft lens. It is a pretty revealing look as the authors write seriously about the thinking behind Microsoft’s dealing with issues like the Snowden leaks, suits against the government about over reaching subpoenas, protection of users data, transparency, cyber security, and more.

I really like this line from the introduction "When your technology changes the world, you have a responsibility to help address the world you helped create."

There were several threads moving through the book. One was the need for building guiding principles for looking at technology and its uses. An other was the need for diversity among people developing technology and the guiding principles. There is frank talk about embedded bias in algorithms and how diversity is essential to fixing that problem. Responsibility for what technology does is another key thread. Without using these words, the book suggests that “should we” is as important if not more so than “can we.”

The chapters on Artificial Intelligence and facial recognition are the best look at the pros and cons I have read so far. Many people seem to have a doomsday view of AI but Smith and Browne have a more nuanced look; one that is not apocalyptic but more practical and near term. There is a lot to think about in these chapters but the picture painted is more about how we need to think about issues going forward than that we should either panic or be unconcerned.

I found the chapter on China very interesting. It was clearly written carefully to outline cultural and political differences without appearing to attack anyone. I might have preferred a stronger stance but I’m not the president of a global company.

One clear takeaway for me is that today’s Microsoft is not the same Microsoft as it was under Ballmer or Gates. Satya Nadella is a different sort of leader altogether and ethics and principles of a company are set at the top. Where Gates was naïve in some ways and Ballmer was focused on the bottom line Nadella, while not losing sight of the bottom line and still naïve in some ways (remember his gaffs about women getting ahead) looks at things differently, listens better, and is interested in the better good.

His decision to release Windows XP patches for the WannaCry virus for free is one I have to wonder if Ballmer would have made the same way. Maybe he would have but that I have to wonder is telling.

The book is not a difficult read. The language is non technical and technology is explained in layman’s terms. That is not to say that the book is only for non-technical people. I think technical people should read it. So should policy makers in both government and the private sector. It would make a great supplemental reading for an ethics course, especially for an ethics course for technical people.

One last interesting thought from the book. No one graduates from a US military academy without taking an ethics course but many people graduate with technical degrees without taking an ethics course. Maybe that should change.