Thursday, October 18, 2018

Professional Development Is Expensive–Who Should Pay For It?

I first started to appreciate the cost of professional development when I was working with and for Microsoft. Microsoft at the time was working hard to promote the use of Visual Studio as a programming teaching tool. Part of that effort was through professional development for teachers. I took part in some of these as a student and some of them as presenter. I could go into details but I think is is safe to say that when says they spend thousands of dollars per teacher for professional development events (Moving towards sustainability of computer science in schools) I don’t doubt it for a second.

Still over the last bunch of years a lot of CS education professional development has been paid for by a combination of universities and industry (lots of that industry money was direct from Google to universities and a lot by a number of companies though This is not really a sustainable/scalable model. Well, it’s not sustainable if we are going to have enough CS teachers for every school to offer (and present) CS education to all students.

As Mark Guzdial points out in his recent post at CACM (Changing who pays for CS professional development in the US and who controls it: It has to be local ) it is not how other subjects do it either.
I have been hearing teachers say for years that industry should pay more to support CS education. And I have tended to agree. On the other side of the issue, many complain about an undue influence industry have on CS curriculum. Too many strings attached to the money. How much you worry about that often depends on how you feel about the company donating the money of course. Either way, is it fair to demand that the tech industry fund CS PD? Do other industries fund PD in their areas of interest?

Actually, yes they do. There is a reason that most math classes are taught with Texas Instruments calculators!  But, mostly you find industry funding for  career/tech programs in career/tech schools which tends not to get the public attention it deserves.
Is CS education a career training course or a core academic course? The answer is, of course, yes. If we want to really prepare students for either an academic or an industry future we have to focus on concepts and not on specific tools or platforms. This can be harder at times with industry funded training.

In the long run we really need two things. One is more pre-service training for teachers who will teach computer science. That has to be folded into existing teacher training programs. While that seems to be happening some it is slow progress. The other thing we need is professional development for in service teachers. That training has to be paid for and prioritized locally.

These days the PD for CS teachers I hear about most strongly supported in Advanced Placement Summer Institutes. That’s great and a lot of teachers benefit from it. My school paid my way to one a couple of years ago and I got a lot out of it. Training for teachers in K-8 and for courses that come prior to AP courses do not appear to have the same number of local options for teachers.

That is changing especially with the work that is doing with their local affiliates. Many of those programs will, I hope, grow and expand to reach more teachers. That will only happen as schools and school districts start encouraging (by funding) teachers to attend these courses.

There is a less tangible, measurable reason we need local funding of CS PD.  Organizations, and individuals, send a strong message by what they are willing to spend money on. Spending money of CS ED PD shows that CS education is important, that it is valued, and that the people teaching it are valued. Making it clear that CS education is important enough to spend money on training for teachers is an important message. I tend to believe spending money of PD will help retaining teachers and that is going to be really important.

Wednesday, October 17, 2018

ACM to Host Twitter Chat on Ethics in Computing October 18

On Thursday, October 18, ACM will host a Twitter chat on ethics in computing beginning at 11:00 a.m. EDT (15:00 UTC). During the chat, ACM will post discussion questions from the Twitter handle, @TheOfficialACM. We are inviting the computing community on Twitter to join the discussion using the hashtag #ACMCodeOfEthics.

Catherine Flick, Michael Kirpatrick, and Marty Wolf (members of the ACM Committee on Professional Ethics, which spearheaded the ACM Code of Ethics and Professional Conduct update) will take part in the discussion.

Join the #CSK8 Twitter Chat 17 October 2018

These are great chats with a lot of wonderful people sharing ideas about computer science in grades K through 8.

Join us for #csk8 chat on Wed, 10/17, at 5pm PT/6pm MT/7pm CT/8pm ET for the 3rd in our series of chats about the cross curricular integration of CS for 5-14 year olds. We will be talking about The Integration of Computer Science & Math in K-8. #CSforAll

Tuesday, October 16, 2018

Lossy Text Compression Project

My motto has long been "steal from the best" at least when it comes to teaching resources. Today I found a good project from I'm using their Advanced Placement Computer Science Principles curriculum and we are currently learning about data compression. image

Code has created a Lossy Text Compression app (See image or visit link). that students can try out. The code is also available which is very nice.

The algorithm is to keep the first letter of every word and then remove all the vowels to create a new, compressed message.

Now the app is really nice and because  the code is available several students modified it to try different things out. One of them just changed the message to report 100% compression. No surprise there of course.

I am thinking that I may have some of my coding students (in my classes that are not AP CS P) write their own versions. It is a fairly easy string manipulation exercise which makes it good for beginners. Parsing of text is a good thing to learn anyway. It also lets me bring data compression into the class discussion and I see that as a big plus.

Besides, I just really like string manipulation projects.

Saturday, October 13, 2018

Origin–Dan Brown Takes on Artificial Intelligence

I avoided buying Origin by Dan Brown for about a year.While I really liked The Davinci Code, I have been disappointed with his other books. Recently I saw that it was available for Kindle and in a moment of weakness I bought it. I’m glad I did. It was a better book than others of his that I have read but the big interest for me was one particular character. Winston is an artificial intelligence executing on a quantum super computer. He (it?) has a key role in the plot.

Now both the computer and the AI software involved are far beyond what we have today. Of course part of the plot is that the eccentric, brilliant atheist who created Winston has achieved a huge advance beyond the rest of the computer science world. Naturally.

Winston, our AI with a British accent, helps our hero, Robert Langdon, and the beautiful (naturally) Ambra Vidal as they navigate the dangers involved in solving the mystery.

The questions I have been thinking about though come at the very end of the book. There are some surprises and some interesting and important questions. Now many will focus on the obvious science vs religion question that threads through the whole book but for me the interesting questions are the future of AI.

A lot of us grew up with science fiction AI governed by Asimov’s Three Laws of robotics. You may have noticed that people building artificial intelligence today in real life don’t seem to be programming Asimov’s laws in to their software. Brown’s Winston doesn’t appear to have those laws incorporated either.

I don’t want to give any spoilers but I will say that comparing Winston’s actions to how one of Asimov’s robots would have acted might be an interesting exercise. And topic for debate.

Where is AI going? What rules of ethics or behavior will be programmed in to it? Or will we let it develop its own laws and ideals of ethics? And what will it all mean for the future of mankind? These are the questions this story brought to my mind. Have you read the book? What questions did it bring to your mind?

Friday, October 12, 2018

What Does My Phone Number Spell?

Project ideas are everywhere. Today a friend apparently spent some time figuring out what words his phone number spelled. It turns out that there are several web sites that will do this for you.

The one I tried was and it works pretty well. My area code has a zero in it so that is a problem. My number also has some 1s in it and there are no letters for that either. Still it can be a fun thing to try.

I was thinking this might make a good programming task for beginners though. Some fun with loops and arrays perhaps. How many combinations are there? Can we verify actual words with a dictionary look up?

How about going the other way, translating seven or ten letter words/phrases into phone numbers?

Anyone tried something like this? I think I may take advantage of my sick day today to play around with the idea some more. Any suggestions?

Sunday, October 07, 2018

What Qualifies You to Teach Computer Science?

Several years ago a parent at an open house asked me the question in the title of this post. He seemed happy with the response. My resume is pretty good I think and better now than it was then. These days we are getting a lot of people teaching computer science who are new to the subject. Sometimes they are very new. That’s a concern.

I suspect it will be a special concern for parents. They are after all used to looking to see evidence that a teacher is “highly qualified” in other subjects. Computer Science has been exempt from this requirement for most states as it was not defined as a core course. That is starting to change in perception even more than in fact.

So will parents ask the question? And will they be happy with the answers? Personally, while I’d like CS teachers to all have a solid CS background and a major in the field that’s not happening soon for enough teachers. Most are going to get thrust into the role of CS teacher with a couple of workshops (a week or three maybe) and some on going learning as they go.

I’ve been thinking about this a lot lately. Earlier tonight I came across and old blog post on the Channel 9 website that I wrote about 11 years ago called Why passion is important for teachers
I think passion for the subject is what I want most in a teacher of any subject. Passion is what spurs interest and learning in students. Students almost never care about a subject as much let alone more than their teachers. And passion fuels a drive in a teacher to learn, to experiment, to continue to grow as a teacher and as a subject expert.  Forcing the unwilling to take a workshop and then teach a CS course is likely to be a complete failure not matter how good the teacher is.

But take a person and help them find a passion for the subject and the long term outlook is strong. In fact I suspect that passion shown by a teacher is the single best predictor of  success. I’m not a researcher and I don’t have objective proof but my observations tells me I’m right. Hopefully the people recruiting teachers are looking for and growing that passion. It’s our best hope is CS for All becoming a reality.

Thursday, October 04, 2018

If you are using global variables you are doing it wrong

One of the hard things for students to learn is simplicity. Beginners tend to over complicate things. In part this is because they lack the full toolbox early in their learning. Another part though is that they tend to see new tools as the answer to problems they are not intended to handle. They really want to show that they can use the tool.

My students are learning about methods and I assigned a project that requires two specific methods be written. I recently had the following conversation.

Student: I may have 5 too many variables for this project.

Teacher: Yes, if you have 5 variables you have too many variables.

Student: I have many more than 5 variables. I have these up here for example [Student shows global variables]

Teacher: If you're using global variables you are doing it wrong.

[time passes]

Student: you are right. It is a lot simpler without global variables.

As part of our discussion of methods we talked about scope of variables. This introduced global variables for the first time. I suspect I did not discuss them enough so that is something I have to fix before I do this again next semester. But that aside, the worst thing is that the student missed one of the reasons we use methods – data hiding.

Students see things differently than experienced programmers see things. They also get excited about using new ideas which can get in the way of them using them appropriately.  “But it works” they say ignoring the fact that other solutions are better and that there are flaws in the way they are using the new tool.

This is one of the reasons I am skeptical of automatic grading programs that only compare inputs and outputs.  It’s not always whether or not your program generates the right answer but that you got there the right way. Helping students find the right path, or at least different paths, means reading their code.

Friday, September 28, 2018

Girls in APCS Research

Are you an Advanced Placement Computer Science teacher?

Are you concerned about increasing the number of women in computing? 

Are you willing to help out a fellow teacher with a research project?

If so, please find the time to help Derek Miller. There is a link after the introduction to Derek and his project.Thanks.

Derek Miller is a computer science teacher from the suburbs of Chicago and has been an AP grader for five years. He is currently working on his dissertation and needs as many AP Computer Science teachers as possible to take a 20-minute survey. The results of the survey and follow-up interviews with a handful of participants will hopefully generate some ideas to help recruit and retain more girls in computer science classes. All participants will receive the research results so hopefully everyone will learn something by taking the survey. If you have any questions, please let Derek know by emailing him at

Girls in AP CS Survey Link

Thursday, September 27, 2018

Progressive Code Demonstration Programs

One of my goals this year is to improve my demonstration code. As part of that I want some demos that build on top of one another. A lot of things beginners code is complicated because they don’t have all the tools they should have. I find that a student who has seen or done something the hard way often really jumps on a new concept that makes things easier.

My current demo starts with various string library methods. For example, we are using the ToUpper, and ToLower methods to format data. We are using SubString to extract parts of a string, IndexOf to search for substrings, and Length to control a lot of what we are doing.

In the form below, a label shows the input string after the first character was set to uppercase and the rest of the string to lowercase. The list box shows each word in the input string one at a time. You’ll notice those words are not reformatted. We’ll get to that.


Very soon we will start some serious discussion about writing our own methods. At that time I will use the same base program but write a method that formats a string to first character uppercase and the rest lowercase. We’ll plug that in to the existing code so that students see how easy that makes things.

Later we will get serious about arrays. That will also be a good time to introduce the Split method which breaks a string apart based on a search character and puts the resulting substrings into an array. We’ll see a much easier way to split a string without writing our own loop and other code that can get tricky quickly. And we’ll see how much easier processing from an array can be.

That’s the plan so far. We’ll see how it works in practice but I have high hopes. Do your do demos or projects like this?

I know that some people teach with a large project that builds over the course of a semester as students learn new things. That sounds like a great idea as well. I struggle to think of the ideal project for that so I’m open to suggestions.

Tuesday, September 25, 2018

Doug Bergman–Amazing Computer Science Educator Revisited

About five years ago I interviewed Doug Bergman for my occasional series of interviews with computer science teachers.  Doug is constantly doing new things so I thought it was time to interview him again.

How would you describe the changes in CS education in general and at your school in particular in the last five years?

We are seeing CS find it's way into schools where is simply did not exist before. Certainly that presents challenges, such as how do we find teachers, but what an AWESOME problem to have, right?!. And supply and demand usually drives the market, so I would think that "if we build it, they will come" (name the movie?).  We are already seeing the numbers of new teachers in CS increase dramatically.

Our program has always tried to keep at the leading edge of technology and CS education. And for many years, we were far out, but over the last 5 years we have seen other CS programs really start to make traction, even entire schools and school districts and even entire states (AK due to the incredible leadership by Anthony Owen et all). So, it has pushed us to continue to innovate and try to stay ahead of the curve.

This year with the addition to David Renton to our department, we are adding in Virtual Reality development into our curriculum. In fact we have started exploring that with our 12th graders and are excited to see what projects they propose. Other areas we are aggressively exploring are A.I., cloud based computing, cybersecurity, and IoT.

You always seem to have the latest state of the art hardware at your school. Be it Kinect, robots, or Virtual Reality headsets.  How do you get that stuff?

So, this has happened through a variety of avenues. We have had several grants that we applied for. Early on, we actually went out into the community and actually asked for seed money to get things started.  We are a private school, so we have to distinguish ourselves from our competition (public and private), so once our program started to get traction and our enrollment numbers started increasing, it started to become something the school can use as a tool of recruitment, so there was good reason to support a budget. We don't really use textbooks, so while other departments spend thousands of dollars on textbooks, we use that textbook money for technology. Then we use that technology for years afterwards, so it spreads out the cost.

Our school also has a couple programs where we can apply for money for special projects, and we take advantage of those.  But one line item in my budget is just an exploration item. We need money to explore new technologies. And the school supports our efforts.  I'll sometimes speak to the board at their meetings, and I also like to invite board members/administrators to our events, so they can see what we are doing.

Our school does a lot of marketing , so I make sure we are part of that as often as possible. We usually have several NCWIT award winners, so I make sure the newspaper and TV and gov't leaders are aware of the awesomeness coming out of SC (and also PG). Whenever I present at a conference or have some type of public "something", I make sure our school name is front and center, giving them credit.

Speaking of those hardware options, what do they add to your program in terms of student engagement and student learning?

Students needs to be comfortable working with a variety of technologies that have non-traditional inputs and outputs. Everyone can code with keyboard and mouse and output to a screen, but we want our students to go beyond that.  Inputs such as voice, touch, light, infrared, proximity, thought, temperature, footpad, game/hand controller, steering wheel, or sound---  and outputs such a VR goggles, tablets, robot motors or lights or sounds, a webpage, database, or message.

Each ones requires a different way to interact and most likely a different language. I want students to have that experience, so when they go into whatever industry with whatever technologies, they will be comfortable figuring things out.  Students get used to failure and exploration and experimentation, but also how to use different technologies to address things that matter to them.

How does including (arguably) fancy equipment change how you teach?

I would be teaching the same style with whatever technology. Having access to it just helps be at the forefront of what is out there. It keeps class relevant to the them...and to me. I gotta admit, I get to play with, take apart, and program cool toys all day every day.

Porter-Gaud added a CS teacher this year – David Renton. (Loved the interview with you both ) Is that because of growth in numbers of students taking CS? If so, how do you account for that growth?

Yes, we are bursting at the seams. Our numbers are increasing every year, along with that our percentage of females is also increasing!! (woohoo, it's one of the goals of our program. We are at 40%). We have borrowed people from math dept, I.T. dept and taught overloads. Then this years, we brought 5th grade up to middle school, so Bob Irving (also doing amazing things in MS) who was teaching some 9th grade classes for me had to go teach the entire 5th grade as well. So we officially just needed someone.

We were very aggressive in what we were looking for. I needed someone who can come in and hit the ground running with skills we don't already have. We needed someone who explores and experiments every day, but also sees project-based learning as the most effective tools for the CS classroom.  David had already mentored several of our students over the years, (via Skype, email, and FB) even though he was in Scotland.

You are currently a member of the Board of the Computer Science Teachers Association (CSTA). What are your goals in that position?

I love being on the board right now. Our new Executive Director, Jake Baskin, has taken us to the next level in just his first few months on the job. We are now the national (international?) organization that the world has been looking to. Great things to come, and I want to be right in the middle of that.

Another big thing you have done since my last interview is to publish a book - Computer Science K-12: Imagining the possibilities! What is the book about and who is the target audience?

As CS becomes more and more a part of what schools offer, we have chance to do things differently than some of the other more traditional disciplines have done. I don't think lectures, worksheets, and textbooks are the best way to design a meaningful, relevant, and innovative Computer Science class,whether it is a beginner level or advanced. The technologies that are part of CS are engaging and interactive and dynamic -- our CS classes should be like that as well.

My book offers a different way of teaching Computer Science.

Over the years, I have found ways to design projects where the learning is all student-driven and active learning...students choose the topics of those projects, so the projects mean something to them. They are more likely to put in extra work, extra thought, and extra effort if they are creating something that was their own idea; we see that over and over every year in all our classes. 

Teachers can setup their project proposal documents in such as way that students propose a project with complexity and focus enough to include all content/programming-language skills/constructs/vocabulary that is the focus of the project.

My book talks about things you can think about to design a class or program that is truly student-centric. There are lots of examples of projects, rubrics, assignments, and specific student examples, even examples from other teachers.  So for that CS teacher looking to up the ante on their class, perhaps to increase enrollment or change direction, there are lots of ideas in there.

For the CS teacher who is brand new to the field and does not really have anything to go on, it can be a great resource full of links to help get get his/her class off the ground, plus get involved in CS education and community.

And the other group that I think might find good value is that politician, board member, community leader, or principal that doesn't really know what Computer Science is and how it fits into schools. The first part of the book just looks at CS in the world and gives an example in every industry, and then looks at how they might translate into schools.

I can't even think of an industry that is not not heavily dependent upon technology. So, those students that understand, can interact with, can control, can program and reprogram that technology to address and solve the problems of that industry are the future leaders.

Friday, September 21, 2018

What Makes A Great High School Computer Science Program

Not long ago someone asked on Facebook for great HS CS programs to visit. Three schools came up quickly and repeatedly. Two are large magnet high schools and one was an impressive private high school. I know something about all three schools and they are doing really good things. They all have an edge though. Some selectivity in students for one thing. The public schools are large with multiple computer science teachers. These are not always things that are possible. Many schools are small, underfunded, take anyone, and have other limitations. So what is the hope for them?

What is a great computer science program? How do we define it?  Can it exist in a smaller school?  Does it require lots of courses and lots of students? Is Advanced Placement a requirement for a great HS CS program? It all boils down, in my thinking, to what result does a great HS CS program show.
Perhaps I should start with my idea of what great outputs are. I think the best programs turn out students who a) really want to study more computer science and b) are well prepared for learn with a solid base of understanding.

Not that all students go on to take more CS. No, I don’t want everyone to take CS. There are a lot of other interesting and important things to study. But if some students decide to take more CS that’s a great thing. If we give them a head start with knowledge that is probably the difference between an adequate CS program and a good CS program.

Great? Hum, what more is there? Perhaps a great program give students the opportunity to learn and produce outside the box if the standard curriculum.

How do you get there? The more I think about it the more I think that the difference between adequate and good and on to great is the teacher. What is a great CS teacher? I think there are several factors. I think domain expertise is very important. I think teachers who are great teachers can get very good results without great subject matter expertise but I’m not sure they can have a really great program. Not until they learn more themselves. Yes, this is a problem. But a workable one.

I think great teachers are willing to admit that they don’t know everything. I know that seems contradictory with the last paragraph but it is not. Computer Science is too big for one person to know it all. A poor teacher, confronted with a question they can’t answer, says “we’re not going to get into that.” A good teacher says “let’s learn about that together.” or “Here are some resources. Come back and teach me.”

A good teacher may teach the same, solid way every year or every semester.  A very good teacher changes what they are doing constantly. Seeing what works and refining it and tossing what doesn’t work. And they don’t count on just their own expertise. They seek out professional development, they read blogs and research papers, and they participate in the larger CS education community.

What about curriculum? I have mixed feelings about the Advanced Placement curriculum. Some days I love the range of topics in AP CS Principles. Other days I wish I could go far deeper into specific areas.  AP CS A, well, let’s just say I am not a fan. At the same time I am realist enough to know that the AP designation plays well with parents, students, and administrators. It is the only way some schools will ever get an advanced CS course.

Can an AP course be part of a great HS CS program? Probably. A lot of people define at great HS CS program as one where a lot of students get 4s or 5s on the AP exams. I find this a narrow definition but I also think that teachers can do some creative things even with the nature of the AP program. It’s just harder.

Career Technical schools often don’t offer AP courses. On the other hand they also have students for 2 or even three solid years with the flexibility to cover things their own ways. Students come out of these programs ready for, if not jobs, paid internships. They also have good preparation for the CS part of higher education and strong motivation. Like the magnet schools I wrote about above they are largely self-selecting though. I think teachers in comprehensive schools can learn from these programs though.

At Career/Technical schools there is a clear purpose, a practical purpose, for what students learn – a job. We don’t often “sell” the reasons for what we teach in CS in comprehensive schools. “It will help you in college” is a bit abstract sometimes.

A great HS CS program helps students find their own motivations. This means projects that are meaningful to students. Students have some agency in selecting their projects, the concepts they are learning, and the tools for that learning. This too takes some courage on the part of teachers. I think it also takes some willingness on the part of administrators to allow for some courses that are atypical. Perhaps even dropping AP CS! Great CS programs will know about the boxes but be willing to move outside of the boxes when it is appropriate. Or to expand the size of the boxes they live in.

How do you define a great HS CS program? Are you part of a great CS program? If you are part of a program that is good or just OK, what do you think you need to make the program great?

Tuesday, September 18, 2018

Deciding What To Include in High School Computer Science

The more I talk to people about what should be included in high school computer science the more I thing of the Indian story of the blind men and the elephant.

blind men and the elephant

I attended an industry advisory meeting for a local career technical school last night. I attend several of these at several schools every year. I hope I provide some value to them from my time in industry and my education experience. I know for sure I get a lot out of these meetings. Industry attendees always have suggestions of what should be included in the curriculum. Usually their suggestions relate to their particular business needs. Hence the elephant story. Computer science is huge as a discipline but the parts we interact with regularly are the parts we think of as important.

When it comes to high school computer science curriculum we do have some standards. The CSTA Standards are really good. In a way though I see them as the floor - the minimum. Even the AP CS courses are not far beyond these standards. They practically read as the AP CS Principles curriculum though one could meet them without the AP CSP course. But what if you want to do more?

The standards are also about concepts and not implementation. That is also great. That is how it should be. It leaves us open to the question of how to implement the teaching of these concepts. This is where the things industry wants us to teach, which is often more about tools than concepts, can be influential. If we want it to be. We don't always want to take those suggestions too far as our students are not ready for everything industry would like us to teach.

What I have been thinking about lately from conversations with industry people are four things:

  • Cloud computing
  • Virtual Reality/Augmented Reality
  • Artificial intelligence
  • Internet of Things

Whoa! That's a lot. And they are all more and more intertwined. It is hard to implement IoT without cloud computing. AI is an important part of VR/AR and the cloud is where a lot of AI is executed. AI, Cloud Computing, and IoT combine for a lot of image recognition. I could go on but if you are a regular reader of this blog you probably know a lot of this.

Which of these is the most important? I think we could get arguments for any of the four as well as various combinations. And while we might like to think we can include a little of each, let’s face it, any of these could be a year long course by itself with bits and pieces of the others to support the main emphasis. So what is a teacher to do? Personally I have totally decided. Actually, just about every day I totally decide on a different one of those four things. Not helpful. Sigh.

Cloud computing looks pretty exciting. Amazon Web Services (AWS) and Microsoft’s Azure both have programs for educators. AWS Educate from Amazon and free Student Azure accounts from Microsoft. Which to choose? I need to spend some serious time looking into both of them I guess. Anyone using either of them in high school want to help me out?

Virtual reality/augmented reality is quite “sexy” and I can see it attracting lots of student interest. David Renton is having his students program VR which is cool. But at $200 a head set funding a classroom set seems daunting.  Still it is cool. And one can teach a lot of concepts to students who are highly motivated to create something awesome.

Where do I start with artificial intelligence?   Microsoft AI School looks like a good place to start learning and using some of their AI tools. OK I’m overwhelmed. I need a face to face course. Somethings are just too much for my old brain.

Internet of Things may be the item that interests me the most. It is a mix of hardware and software and my gut tells me that is as much key to the future of computing as anything. Mix in a little cloud computing for hosting. Perhaps an existing AI took for analysis. Maybe even a little visualization. Not quite VR/AR but interesting non the less. That could be a great course. Now all I need is curriculum or a year of free time to learn it on my own enough to develop curriculum. Sigh (again)

What I’d really like to do is have a class where the students figure all these things out themselves. Have them design and build a major project involving one or more of these technologies while doing the research, experimentation, and learning while I coach. Perhaps connect them with people and documents and videos and the like. Then they can teach me. Now wouldn’t that be great!

Monday, September 17, 2018

The Multiple Natures of Computer Science Education

There was a lot of good CS education activity on Twitter this past weekend. I know I missed a lot of it but some things did stand out for me. One of these was this Tweet from Hadi Partovi, co-founder and show runner at Code.Org:


This is not really new of course. But it does highlight the fact that we can’t look at CS as all analytical and miss out of the creativity inherent in it. If everyone in the class turns in a project that looks identical do we really know if they understand the concepts or are they just good at following directions? Does everyone come up with the same solution? Or do you, the educator, see solutions that are different from what you would come up with? Letting students getting creative makes things more interesting and motivating.

Likewise CS is not just for the college bound or for the career bound. Comprehensive high schools and vocational high schools do tend to look at CS education very differently. We have to be careful that we achieve some balance here. We can’t ignore the tools completely and keep it all theoretical. Nor can we get so deep into the tools that we ignore the concepts that drive the tools.

We have to avoid being the blind men judging the elephant only one what is in reach. We have to share more of the elephant with our students so they become whole people and not limited by too much focus.

Sunday, September 16, 2018

Preparing Students to Ask Questions

I drove behind a Google Maps Street view car for a couple of miles today. Things I wondered about:

  • Will my car show up on Street View?
  • What is it like to be one of those drivers?
  • What sort of meta data are they collecting?

That last question is key. I thought of that because I know something about computer science. I also know that there has be controversy about this in the past. I think I would have wondered about the meta data anyway though.

What is the meta data? What is it used for? Who has access to the data? Lots of questions of the sort we, society, need people to ask. Not just computer scientists but all sorts of people. How are they going to know to ask if they don’t understand what meta data is or how it can be used?

Getting people a basis of knowledge so that they know to ask questions is every bit as important as the “answers” we make them show on exams and quizzes. This is why we need computer science for everyone.

Monday, September 10, 2018

Do We Really Need CS Focused High Schools?

Last week Bill Gates visited the Academy for Software Engineering, a computer science focused high school in New York City. and wrote about his visit. At first reading I was thinking the visit was a good thing. I still think it is – for the most part. Mike Zamansky had an interesting take on the visit (That Time Bill Gates Visited AFSE) that got me thinking.  Basically I like what AFSE is doing but after reading what Mike wrote, I wonder if we really need CS focused schools or could we just do all that stuff at “regular” high schools?

The design class that Gates writes about is a lot like the one my wife teaches at a small, semi-rural high school in New Hampshire. It’s not a CS focused school at all. In fact, their CS offerings in general are pretty limited. But that doesn’t mean that CS concepts can’t be included in other courses or introduced in middle school exploratory courses.  What is takes is administrative support and a trained and motivated teacher. And CS is growing there!

Also last week, Porter-Gaud, a private school in South Carolina, released a video about their two high school CS teachers (Doug Bergman and David Renton – both friends of mine who I admire greatly) and some of that they are doing with their students. Among other things they have their seniors writing software for virtual reality headsets. (Do check out the video of The CS Dymanic Duo )

Porter-Gaud is a college preparatory school not a CS focused school. And yet they have an absolutely amazing computer science program. Again, what they have that many other schools do not have is an administration that is willing to support teachers who are creative, motivated, and willing to learn on their own or (even better) with their students.

We know from several recent surveys that parents want more computer science education.  It is tempting to think that specialized schools are the answer. A lot of people think that CS is not for everyone. Wrongly as evidence strongly suggests. We are also faced with a shortage of teachers with the background to teach more advanced CS and that makes sending them to specialized schools attractive.

If we focus too much on special schools I worry that we perpetuate the idea that not everyone is cut out for CS or that not everyone needs to learn CS. A school like AFSE is trying a lot of things to merge CS into other subjects. That’s a great thing but it will be even greater and more influential if the things they learn about integrated curriculum is shared with comprehensive high schools.

In the long run we as a society will benefit more from things learned in CS focused schools migrating to the wider population of schools than we ever will from the small number of students who pass through these schools.

Wednesday, September 05, 2018

NCWIT Award for Aspirations in Computing–Recognize Girls in Tech

Recipients of the NCWIT Award for Aspirations in Computing receive engraved awards, scholarship and internship opportunities, entry to a peer-network of technical women in the NCWIT AiC Community, various prizes, and more. // Share this status with women in grades 9-12 who should apply!

Several of the girls in my school have received this award in the past and it has been impactful for them. Highly recommended.


Tuesday, September 04, 2018

Why Teach Binary in Computer Science Classes

Sometime when I was around age 11 or 12 I learned about different number systems. I was fascinated with the concepts involved. I literally spent hours experimenting with them. This stood me well when I started studying computer science. We were using Binary, Octal, and Hexadecimal. Octal and Hex are useful for grouping Binary into groups of three (octal) of 4 (hexadecimal). I worked on computers back when one could, and did, toggle code in Binary using switches on the front of the computer. It was awesome.

I’m still fascinated with these systems. I have a Binary clock on my desk and six sided Binary dice in my desk drawer. And of course I try to teach Binary in particular and number systems in general. I’m still surprised that students don’t enter high school knowing this stuff but I guess priorities in education change.

In any case, if you do an internet search for “teaching Binary” you will find a lot of resources and discussions about the how to teach. (My own list is at Resources For Teaching Binary Numbers FWIW) What I don’t find a lot, at least not easily, is justification for why we should teach Binary numbers. It’s obvious to us old-timers. It’s in the curriculum and standards for new teachers. That’s good enough for most of us. For students? Well, students want to know why it is important to learn something.

I asked teachers on Twitter what they said to justify teaching binary. I got some good answers.






There are more reasons as well. Binary explains the limits around the values different data types can hold. That is a key one to me.

Now I want to organize my thoughts and figure out how to present things to my students when I next cover Binary and number systems. Letting students know the importance and having context is bound to help students see the value to what  I am teaching.

So, how do you explain the importance of learning Binary in computer science?

Wednesday, August 29, 2018

Teaching Programming with Blocks vs. Teaching with Text-based Languages

Blocks or text? Which should I use with beginners? On one hand, I read research backed articles like Mark Guzdial’s High school students learning programming do better with block-based languages, and the impact is greatest for female and minority students which strongly suggest I should be using Block based programming languages. Well, at least in the first course. On the other hand, I had programming in block-based programming languages.

a-collection-of-quotes-from-w-edwards-deming-4-638Sure it should be an easy choice – go with the research. Sometimes I hate data. What happened to when we could all just go with our guts?

Seriously, it is hard to argue with peer reviewed data and I am rethinking a lot of things. I currently teach four different courses and each one uses a different programming language. Advanced Placement uses a combination of block-based programming that migrates to text-based JavaScript. That’s ok I think. Most of these students have had previous programming in either or both blocks or text languages.

My mobile application programming course does use a block based programming language (currently AppInventor) and it works well there. Most of these students have had very little if any previous programming experience. The pace is slower than my honors or AP courses and students seem to like it. I need better assessment tools to really understand how solid of a foundation they have for future computer science and programming. That is something I am working on.

My Honors Programming course uses C#. These are students who, for the most part, are highly motivated, have a good base to build on, and want to be challenged. I think C# is a good language for them. Opinion I admit.

Where I am really having to think hard is with our freshmen class. We currently introduce programming with Visual Basic. Should we be using a block language? Maybe. Unlike the other courses I teach I am not the only teacher. I teach two sections out of a total of 11 or 12 sections. Three other teachers also teach sections and the department chair teaches more of them anyone else. So it is not just my call. At least not for everyone.

What I am currently thinking about is doing a pilot with my sections. What I need to do first is come up with some sort of way for use to assess the difference (if any) in results. Since I teach the second course for many of these students I could look at who takes more programming and how they do with the next course but that takes a lot of time. And how do I know if the language used influences (and in what direction) if students do or do not take more programming?

I guess I have research to do. On the other hand, if there are some of you who have made this sort of change and would like to share what they have learned I’d love to know about it.

Saturday, August 18, 2018

Programming FUNdamentals Books

Most programming textbooks just are not what I am looking for. They are too long. They are too dull. And they are written for teachers to use not for students to reference. Last winter I decided to write some thing for my students to use. Actually, two books for my students to use. II took some short suggesting papers I had written, used my PowerPoint lecture presentations for some details, and basically wrote what I teach.

I teach some Visual Basic programming to freshmen and C# with my Honors Programming classes. That’s why two books.

These are not typical textbooks. They are short, to the point, and, I hope, will not put students to sleep. There are few exercises and no end of chapter questions to assign. They are intended more for students to use as a reference. Students tend not to take good notes so these may fill that need for some. They also want to learn things that are not generally looked on as serious computer science but which make for more interesting programming projects. So there is a section on how to do fun things with timers, images, and other language/library features that I get asked about regularly.

They’re probably not for everyone but the drafts worked well with my students last year. Take a look and if you like what you see buy one (or a classroom set). They’re priced low at $9.95. If they suck, send me an email. I’ll try to do better in a second edition.

Thus ends my commercial

Fun books

Wednesday, August 08, 2018

Computer Science Education Progress in New Hampshire

Things have been moving right along in New Hampshire. First we developed CS teacher certification (a joint effort with the department of education and a team of computer science educators). Now we have CS included in the legal definition of an adequate education as of earlier this summer. A set of CS standards, based on the CSTA Standards and K12 CS Framework have been adopted officially this week. Implementation plans are in the works. The latest announcement I received follows:

On June 18, 2018, NH House Bill 1674 was signed into law.

This bill renames our "ICT Literacy" program to "Digital Literacy," and adds Computer Science (CS) as a core K-12 subject area.

The NH Department of Education is currently working on the program rules (ED306) that will implement this law, as well as a timeline for developing CS programs.

We are looking at a two-year implementation timeline, with a target date in 2020 for districts to have programs in place.

There will be additional opportunities for educators and the broader public to provide feedback, with information posted on this group and on the Department website.

Additionally, the NH State Board of education today (August 8, 2018), voted unanimously to adopt the NH Computer Science academic standards.  Part 1 of these standards, "Context and Guidance,"  provides additional clarification about the relationship between digital literacy and computer science, how CS relates to STEM and other disciplines, and recommendations for developing or strengthening programs.  Part 2 is the grade-band standards.

The standards, and additional resources, are available here:

The policy tour slides provide a concise overview of our computer science policy efforts.

The Department of Education will continue to support implementation of these policies through federal and state grant programs, partnerships, and guidance and support.

Sunday, August 05, 2018

Computer Science and Farming

One of the things I tell students is that computer science is relevant to a lot of careers that they may not think of at first. An announcement I read last week and a visit to a farm reminded me of that this past week.

The article was about a joint effort between Microsoft and the Futures Farmers of America. (Future Farmers of America, Microsoft to develop tech-based agricultural curriculum) The FFA is an amazing group that does a lot to help prepared young people for careers in farming. Modern farming is a lot more than sticking seeds in the ground and waiting for plants to be harvested. Actually it has always been a lot more than that but technology has long had an expanding role in making farming for efficient and productive.

As I said, I also visited a farm last week. The owners are friends of mine and they are working other jobs as they build up the farm. Technology is a big part of how they manage things at the farm while not living there full time. Obviously there is we-fi available throughout the a farm. There are remotely accessed cameras and a very nice weather reporting system for starters. As I toured the farm we talked about future efforts.

One thing under consideration is RFID tags on each of the trees in their apple orchards. This would allow notes to be easily taken and recorded on the condition of individual trees. Other thoughts include computer (and remotely) controlled irrigation. Being able to pay more and better attention to individual plants or parts of a farm - precision agriculture – is something that computerization makes practical.

I’ve been reading about using computers to plan grazing patterns that make for more productive pastures, robots that scan and treat individual plants at high speed, and artificial intelligence analysis of aerial photographs of crops. I think we’re on the verge of a big jump in technology use in farming with a jump in productivity and efficacy in farming. Pretty darn cool!

Friday, August 03, 2018

School is Getting Close and Teachers Are Getting Ready

Two weeks from today I return to school for teacher orientation. Students come in the next week. summerThings are getting real. While I have been thinking about school a lot ever since the end of the last school year there is a renewed sense of urgency kicking in.

I’d like to report that I have solidly worked my plan (School Year is Over, Time to Get Ready for Next Year)  but that would be an overstatement. The start of a new school year seems so far away when one school year ends. It sneaks up on you.

The other day I got access to the learning management system with my classes enabled. I uploaded a lot of the resources that I have been preparing. That helps me feel like I am closer to being ready. I’m a little behind where I wanted to be but ahead of where I was this time last summer.

So the crunch is on! I’m working on the details for the first couple of weeks of classes. I’m outlining some things I will need later. I’m used to doing some things “on the fly” by which I mean adapting projects to the interests of the particular class. It is always amazing how much difference there is from one section and another in the same year or from one year to another. I don’t want to straightjacket myself. I don’t want to be totally without plans and options though.

I should get to it. I should also prioritize school prep over blogging. See you later.

Thursday, August 02, 2018

Encourage US High School Students to Apply for 2018-2019 ACM/CSTA Cutler-Bell Prize

Do you know a student working on an amazing computer science project? Maybe they need some recognition to take them to the next level. The Cutler-Bell Prize may be just what they need.

Every year, the ACM/CSTA Cutler-Bell Prize in High School Computing recognizes talented high school students in computer science. The intent of the program is 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 application process involves a Challenge that focuses on having the student develop an artifact that engages modern computing technology and computer science. Judges will be looking for submissions that demonstrate ingenuity, complexity, relevancy, originality, and a desire to further computer science as a discipline. The application period closes January 5, 2019.

Up to four winners will be selected 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. The prizes are funded by a $1 million endowment established by David Cutler and Gordon Bell.

Detailed information, including the link to the online application, is available on the ACM/CSTA Cutler-Bell Prize in High School Computing website. Winners of the 2018-2019 Cutler-Bell Prize will be notified via email in February 2019.

Thursday, July 26, 2018

Ethics, Accessibility, and Security–Condiment or Ingredient

Too often people think of ethics, accessibility, and security as condiments; something to add at the end rather than ingredients essential from the beginning.

Last night was the latest #EthicalCS Twitter chat and as usual it got me thinking. A pretty common occurrence during those chats BTW. The discussion was of course about ethics but I was thinking that people see ethics as an add on – something to tag in as a filler in a course or a later thought in a project. The same seems to be true about some other things like system security and accessibility.

These are all related in some ways. An ethical system is accessible and secure for example. More importantly, though they have to be baked into the system. They have to be considerations from the start if they are really going to be the best they can be for the most number of people.

As educators I think we have to make sure that our students learn that. Learn it by example, by discussion, and by plan.

Wednesday, July 18, 2018

Updated ACM Code of Ethics Released

ethics ACMThe ACM has released the latest update for the ACM Code of Ethics. It’s an interesting and important document. I wonder how many computing professionals know about and try to follow it though.

Clearly, as computing becomes more and more a part of daily life ethical practices become more and more important. As an educator I see it as my responsibility to make sure my students know about it though. The word “ethics” appears 100 times in the CS 2013 Curriculum report with specific mention of the ACM code of ethics listed as a reference and resource.

As I plan for the new school year I am thinking about how to incorporate more ethics discussion into the curriculum. I really want students to think, and think hard, about ethical issues.

Monday, July 16, 2018

Is This The Future?

Narrator: Alfred Thompson, you’ve just attended an amazing CSTA Conference. Now what?

Alfred: I’m going to Disney World!

magic bandAnd so I did. I just got home from about 5 days at DisneyWorld with my family. It was a great time  and I spent a lot less time online than usual. That doesn’t mean I wasn’t thinking about technology though. At DisneyWorld technology is everywhere. For most visitors this wrist band is the center of much of the activity.

It’s called a Magic Band and basically it is a cool container for an RFID chip. This band serves as the key to ones hotel room, a charge card, admissions to the various parks, and more. It’s not the only RFID chip one will run into though.

Fall-2015-Disney-World-Refillable-Resort-Rapid-Fill-Mugs-5-453x600Even the beverage containers also have RFID chips attached. The most obvious to may people are the refillable mugs. These mugs allow unlimited refills for a specific period of time. The dispensers only work if they read a valid RFID chip. Yes, in case you are wondering, even the paper cups have chips in them. The chips in the paper cups allow for a specific number of refills. I wish I had brought one of them home to play with. Anyone want to send me one (or more?) I really want to experiment with RFID.

So this is cool technology. The question really is, is the a utopian future or a dystopian future?

Disney uses this information to make the guest experience better. Well, that’s the theory and I suspect it is largely the case. I’m sure it helps them make money as well. No doubt it is useful to know how many refills people take. Tracking visits to the parks tells them a lot about guests interests and routines. Who knows what else they know about.

But what about outsiders using the data? Other companies? The government? What information can or does Disney provide to law enforcement and under what circumstances?

There is also the question of people with malicious intent stealing information. Not just from Disney RFID chips either. More and more credit cards and other ID cards are using RFID chips. My newest wallet is advertised as blocking RFID signals so apparently a lot of people are concerned about this sort of thing. With good reason I think.

The potential uses of RFID are both good and bad. We can use them for many things but should we? Good stuff to talk about with students. I think they need to understand this technology, how it works, and what its risks and benefits are.

Thursday, July 12, 2018

Microsoft Makes Large Commitment to CSTA

One of the big announcements at the recent Computer Science Teachers Association conference was that Microsoft is donating two million dollars to CSTA over the next three years.

This is obviously a big deal. This money is first off a huge help towards building a strong financial base for CSTA to grow and to do more. It will allow more professional development, more help to local chapters for new programs, and generally make some long desired programs to happen. It is also a great vote of confidence in CSTA and its leadership.

I was able to chat with Mary Snapp, Corporate Vice President and Lead for Microsoft Philanthropies, who announced this grant at the conference. She told me that Microsoft strongly believes that CSTA is going to be able to expand and scale operations in a big way over the next few years.

A number of companies I talked to at CSTA told me they are interested in helping build computer science education. They all really need people who understand computing. Not just to hire (though there is some of that) but also the companies they partner with and sell to need more people. And of course a society where people understand computing is a benefit to us all.

So thank you Microsoft. And thank you to the other companies supporting CSTA in various ways.

Wednesday, July 11, 2018

Taking the Microsoft Technology Associate (MTA) Exam

Contrary to popular opinion I did not do it for the free t-shirt. Certaport was offering teachers at the CSTA Conference the opportunity to take a MTA exam (or exams) for free. If you passed you also got a t-shirt with your certificate. I had other reasons to take it though.

Yes, I wanted to test myself a bit. I had not studied for any of them and I hadn’t planned on taking any exams. When several of my friends took exams (and passed of course) I decided maybe I should try. I chose the Block Based Programming exam because I teach some block based programming. The exam is currently based around TouchDevelop which has been discontinued but the exam will be rewritten for the blocks in soon. In any case, I know some TouchDevelop so it seemed a good choice.

More importantly I was curious as to how the tests were given. What sort of questions where asked? How are they presented to the test taker? And more process sorts of questions.

It turns out that questions are asked several ways. There are a few ordinary multiple choice questions. There are a few questions where you have to read and understand code. There are also questions where a problem is explained and code is shown with “holes” that you have to fill from drop down lists. There are also Parsons Problems types of questions. In these you are presented with a problem, 6 to 8 lines or blocks of code and asked to place the right blocks in the correct order to solve the problem. There are usually extra blocks of code. It’s harder than you might think. There were also questions I would categorize as software design or software engineering questions.

In fact, the whole test is harder than you might think. You really do have to think and I was concerned about the 60 minute time limit for the 39 questions. My friend, Doug Bergman took the Java certification and told me he thought it was Advanced Placement CS level of hard. I feel pretty confident in saying that these are rigorous (especially for first level certifications) exams.

I wish I had a system like that to give quizzes and exams to my students. Especially the Parsons Problems style of questions.

Oh, yes, I did pass and I did get my free t-shirt.

Tuesday, July 10, 2018

Reflecting on #CSTA2018

I feel like I have really fallen behind on reporting on the CSTA Conference in Omaha. Part of the problem is being a bit overwhelmed. Usually I write blog posts in boring sessions. I didn’t attend any boring sessions.  I have to absorb some of it and I will write a more detailed post soon. I hope.

Right now I am sitting in an airport waiting for a delayed flight and not up to gathering all my notes. Who am I kidding. What I have for notes are tweets I have posted with the #CSTA2018 hashtag. A lot of people tweeted a lot of good stuff and others have already posted summaries on blogs.

This conference was a bit different for me. I wasn’t there as a presenter, a CSTA board member, or representing a company. Just me – teacher from New Hampshire. In some ways that was freeing but it felt different. The size of the conference is different as well. Back when there were 50 or 60 of us at the conference I knew almost everyone. At 700 attendees there was an amazing number of new faces. First time attendees. People brand new to teaching Computer Science and people in district roles that didn’t exist a few years ago.

That’s not a bad thing at all. It’s a great thing. When we were so small a group we risked too much group think. Now we have lots and lots of views. Having people with so many backgrounds and experiences is an amazing opportunity. So while I loved spending time with people I have known for years and years it was wonderful to meet and talk to so many new people.

A lot of people told me they read this blog or follow me on Twitter (@AlfredTwo) which was very encouraging. Like many who post to social media I don’t always know if there is anyone out there or if I am yelling in a vacuum. Speaking of Twitter. I talked about that already but it was humming. Lots more teachers are tweeting these days. It really is a good way to share information.

The exhibit hall was a lot larger this year,. I blogged about that the other day (Pictures From #CSTA2018) and I really appreciate the companies and organizations (three universities for example) who show up to talk to teachers. Even at 700 attendees, CSTA has an atmosphere that is a lot more conducive to real conversations with exhibitors than a conference like ISTE or TCEA (as great as those conferences are in their own ways.)

There were a lot of people who were at CSTA because of company funded scholarships. Rolls Royce funded about 25 people (including me). Oracle Academy provided grants and goodie bags to a bunch of people. Google provided money for CSTA Chapter leaders to come for two days of special training and the conference. This is real support of teacher development. These companies understand the need for teachers who actually know what they are doing and are willing to put some money behind their talk.

If you were there and we didn’t connect I am sorry. 700 people can make that harder than we might like. I hope though that you had some great conversations with others and learned as much as I did.

Next year CSTA will be in Phoenix, Arizona from July 7th to 10th, 2019. It’s going to be even better. I just know it.

Monday, July 09, 2018

Computer Science Teachers Association announces CSTA+

One of the big announcements at CSTA today was a new premium level of membership in CSTA. There is and will continue to be a free membership. This new premium membership offers some additional benefits and will also provide money for local chapters. Half of the CSTA+ dues will go to local chapters to enable them to expand their program.

This is something that has been under discussion for several years. My local ISTE affiliate, NHSTE has had a similar two levels of membership for some years and I have benefited from that paid level. I expect this CSTA+ membership to be well worth the money. Yes, I’ve signed up!

Find out more at There you can find some additional benefits and sign up.


Sunday, July 08, 2018

Pictures From #CSTA2018

Before I get into some pictures of the exhibit hall let me tell you that there are a lot of people here. This was lunch on Sunday.WP_20180708_12_35_44_Pro

Arkansas is in the house. A large and visible group from Arkansas. And they brought flags and pins and lots of personality. Arkansas is doing great things with developing CS for AllWP_20180708_12_36_49_Pro

The exhibit hall is much larger than in previous years and it really looks like a real exhibit hall. I went around while they were still setting up and took a few pictures. This is just a taste of who was there. I may post more pictures tomorrow but this gives you some ideas.

CoderZ showing off their virtual robots.


Amazon Web Services are here. No not selling books but sharing some of there tools and options for teachers to teach cloud computing. I will be looking closer at this for my AP CS Principles class among other things.


Birdbrain always has an interesting table. Physical computing is big again this year at CSTA.


Is this the largest Micro:bit in the world? Firia Labs has some interesting things on display. I need to spend more time there tomorrow.


CodeHS has a big booth and a large team here. A great opportunity to talk to them about their offerings – free and paid. I used some of their free materials last year with my AP CS Principles students.


 Vernier had some great sensor projects. Some even programmed in Scratch. I have to get their catalogue. I want to make some of those projects myself.


TEALS was here with a good crew. Very exciting program that places industry professionals in the classroom to co-teach with (and train) classroom teachers teaching computer science.


IBM is at CSTA for the first time. They are talking about heir Master the Mainframe contest, IBM Activity Kits, and other offerings. Surprisingly mainframes are a growing business for IBM and there are jobs for people who understand them. I’ve heard from others that kids learn a lot from that competition.


And it begins–#CSTA2018

Yesterday opened the CSTA Conference with afternoon workshops. And there was a nice reception put on by Google. For me it was a travel day and a getting settled day for the most part. Thant and a lot of opportunities to have conversations. I didn’t take any of the workshops so I can’t report on them first hand but from Twitter it seems like they went very well.

chibiThe conference bag had some real treats in it though. The big surprise was this Chibi chip starter kit.  There is a microchip and accessories with a book. I expect a lot of people will have some fun with that.

I’m helping out at the registration booth for a while this morning. Volunteering is a great way to meet people as well as to help the conference run smoothly. I’m glad I had time in my schedule to do so.

After lunch the exhibit hall opens. There are a lot more exhibitors this year and I am really excited about that. My next blog will be a report on that.

Friday, July 06, 2018

Thoughts Before #CSTA2018

My bags are packed. Normally I pack the night before a trip but my suitcase has been packed for days for my trip to the annual CSTA Conference. I even got a haircut this morning. I cleaned out my computer backpack and loaded my Kindle with books for the plane rides. I’ve been to just about every one of these conferences dating back to before there was a CSTA and it was the CS & IT Conference. Somehow this year feels different. My level of excitement is higher.

Sure there are more workshops than ever before and the sessions next week look awesome. But there is more to it than that. There is real energy in the computer science education community these days. We’re making progress in getting computer science moved into the mainstream of education. Here in New Hampshire, teaching computer science is defined in law as being part of an adequate education. Similar things are happening across the country.

We’re seeing tremendous growth in students taking computer science courses. Advanced Placement Computer Science numbers are seeing amazing upticks.

Teachers are more and more involved in conversations in social media. Twitter, Facebook, blogs, and anywhere else teachers communicate online. The ISTE conference has more CS every year as well.

But for most of us in K-12 computer science the CSTA conference is the place to meet in real life. Besides sessions and workshops the hallway conversations look to me amazing. Informal gatherings of all sorts are being planned and more will happen spontaneously. They’ll happen in the exhibit hall. (Can I say I love that the companies and organizations who come to exhibit really see to understand our community?) They will happen in hallways, lobbies, nearby food and drink establishments, bus rides to receptions, and anywhere two or more CS teachers bump into each other.

I already know there will be conversations about pedagogy training rather than just content. I know there will be talk about training for more advanced teachers who have a solid content knowledge already. And this is besides the scheduled birds of a feature sessions.

I can’t wait. Hope to see many of you there. I’ll be wearing my hat so come find me.

Wednesday, June 27, 2018

Teach Me How to Teach NOT What to Teach

Today is the last day of ISTE and I’m not there. I am following a lot of conversation from there on Twitter though. One thing that is coming up is that a lot of the computer science related professional development there is for beginners and/or for K-8 teachers. Now this is wonderful but it is not what I need.

Sarah Judd had a couple of wonderful tweets that sum things up for me.



Some of us have a lot of content knowledge. This is especially true for career changers from industry such as myself. It is equally true for many teachers who have been teaching for some number of years. What many of us need is more about how to teach. In a word pedagogy.

I don’t mean “here is this robot and here are some example projects and code” and that sort of thing. I mean that is nice and all but it is usually a lot more about the tool and not the pedagogy. We are finally seeing some real research in how to teach computer science better. I’ve personally learned a lot from papers submitted to the SIGCSE conference and I’d really like to attend in person again.

The problem with SIGCSE for a lot of teachers is it at a tough time to get away for a lot of us. And there is that whole perception (not 100% wrong) that it is for higher education educators.

ISTE is going to be highly focused on beginners for some time to come. I don’t have a problem with that. I think ISTE can have a large impact on generating awareness among school administrators and technology integrators and teachers who are really serious about preparing students for a modern world that includes computers.

CSTA is the group I think should really increase their focus on training teachers how to teach. I would love to see a pedagogy track at the 2019 conference. 

Let’s hear about people using Parsons Problems, sub goal labeling, and other techniques. (BTW maybe take a look at How To Teach Computer Science where I talk about some of this) How about some case studies of project based learning? Not with a focus on the projects but with a focus on evaluation, maintaining student progress, and what does and doesn’t work about them?

I am reminded of a conversation with a peer when I was an undergraduate. Someone asked him why he was a business major when he grew up on a farm and planned to stay in the family business. Why not agriculture? He replied that he knew how to farm. Modern farming is also a business and that is the peace he didn’t learn growing up. Those of us who “grew up” in the computer science field know about computer science. Now we need help becoming bettor teachers.

Tuesday, June 26, 2018

Facial Recognition, Augmented Reality, and Teaching

Summer is a time of reflection and learning for me. I really want to be a better teacher and summer give me a chance to read more and to think more. This week I have been thinking a lot about facial recognition and augmented reality. One of the things that I know from experience and from research is that knowing students, especially their names, is a powerful thing for a teacher. Faces are hard for me. I don’t know if it is the way my brain is wired (there is a thing called prosopagnosia or face blindness that I would like to blame) or if I am just not working hard enough at it (as my son who knows every student in his elementary school – he’s the principal – suggests) but I would really love augmented reality that would let me know each student’s name.

I also think “wouldn’t if be nice if a computer scanned the class room and took attendance for me?” On the other hand if we take that to a (perhaps) logical conclusion were get computers that track every student’s face to see who is paying attention. They are trying that in China (link below) and that scares me. It especially scares me if it gets tied into a ‘social credit’ ranking system like China is setting up. (Link below or search for China social credit) Oh boy! I can’t see a lot of students liking that one! Below you will find a link to an article about the CEO of a company that develops facial recognition who warns about how ready it is – or is not! Are we really ready to have it judge people? I think I’d rather see people doing the evaluations.

BTW, there are schools experimenting with tracking students with RFID chips. Does using facial recognition take this to a new level or is it just a logical next step? Do we really want to normalize this level of tracking? I’m a little uneasy with the idea. Maybe more than a little.

But to keep this positive and closer to education and making teaching better, Vicki Davis is seeing a lot of artificial reality and augmented reality at the ISTE conference (link to her recent post below) and seeing some positive things. As well as some risks. Could artificial intelligence replace teachers? Maybe the bad ones but what about the good ones? She doesn’t talk about the costs of teachers vs AI though. You and I know that some people would rather have poor to average “teacher” who are inexpensive than spend more money for the best.

I see artificial reality and augmented reality as being very different. Later this week I am getting a demo of the VR system my wife’s school has installed. I may blog about that after. But for now, augmented reality.

Things that lead to more and better interaction between students and teachers is a good thing. Imagine if every teacher in the school could address every student by name the first time they saw them. My gut tells me that is a good thing. Students want to be known and a name is a powerful part of that.

What if a student showed up at my desk and asked me what they got on the recent test? They do that you know. Somehow they think you remember every grade for every one of their students. A AR system could pop that information up for a teacher. That would be good. Right? Potential for abuse? Sure. There is a fine line between deciding to call or not call on a student based on their grades as a good thing or a bad thing. A reminder that a student is on a concussion protocol might be a good thing though.

So both risk and benefit to facial recognition and AR. How we balance that determines if we use it to improve education and learning or just become control freaks who limit student options. Do we use it to build relationships or to hand off everything to computers? Do we use it to share excitement and new ideas or do we just use it to make education inexpensive at the cost of quality?

So much to think about!

Recommended reading

Thursday, June 21, 2018

Autonomy, Motivation, and Teaching Computer Science

Of the several courses I teach, my favorite course is call Honors Programming. Its a one semester course that is the first real programing course for my students. Its my favorite course because it is the one I have the most autonomy teaching and because I am very prepared to teach it. I extend this autonomy to my students as much as possible. I find that the end of year semester wrap up project is the best learning experience of the course. In large part that is because the students select their own projects and seem very motivated to learn what ever they need (and somehow missed during the semester) to get their projects to work.

My biggest frustration with the course is that students get a solid base, do one pretty interesting proj3ect and then they are done. At least for a while. Many take Advanced Placement CS (some AP CS A and some AP CS Principles) but both of those courses tend to be pretty constrained. They don't really allow for really big projects that as self selected.

What I really want to do is teach a follow on course that is purely project based. I want students to pick a major project that they are really interested in and commit to learning, on their own, the things they need to know to complete it. Yes, I want a whole classroom full of students learning different things and working on different projects. I've seen amazing projects come out of classrooms run this way over the years. I am tired of grading simple easy to create programs that are only mildly challenging.

I'm working on a proposal for this sort of course. My friend Doug Bergman runs some serious project based courses and is partly the inspiration for this. As are a couple of other teachers I have learned from over the years. It seems that students really get motivated to work on big projects, even scary projects, when those projects are meaningful to them. A motivated student will really put in a lot of work. They also pay attention when a teacher points them in a direction.

One plus about Doug is that he has written the book on this sort of thing. I'm learning a lot from Computer Science K-12: Imagining the possibilities!: Bringing creative and innovative Computer Science to your school  It really has me excited. (I recommend Doug's book BTW for anyone looking to create or expand a computer science program. Lots of good stuff there.

I'm looking for more ideas as well. Grading is a concern especially for administrators and parents. Doug has some stuff on that in his book but I'm always open to more ideas. I know that giving students too much autonomy scares some people. Keeping them on task and making steady progress can be an issue. Students often think they can goof off now or change priorities for what they think will be temporary needs and still get everything done at the end. They often guess incorrectly so keeping track is important.

In the long run, I think that this sort of opportunity with motivated and interested students can result in a lot of learning. It can also help build interest in computer science, help students learn to learn, and result in benefits for all concerned.

BTW, earlier today I heard an interesting, and I think related, report on NPR. A Lost Secret: How To Get Kids To Pay Attention

One key quote.

“Many studies have shown that when teachers foster autonomy, it stimulates kids' motivation to learn, tackle challenges and pay attention, Deci says. “

That’s what I am talking about!