Monday, August 31, 2015

Interesting Links 31 August 2015

Well school is back for real now. I had students in class most of last week so we’re completely live. I have great students. My Honors Programming class has a bunch of self-starters who have learned a lot before they got to me. Challenging them is going to keep things interesting. Speaking of interesting, here are this weeks links to share.
Why I’m Not Looking to Hire Computer-Science Majors is an opinion piece in the New York Times last week. There was a bunch of discussion on Facebook about it.  Hadi Partovi has one of the best replies which he posted on Quopra some time ago at Does college make you a better coder? This issue keeps coming up. I thought about writing a whole blog post on it but Hadi says a lot very well. The advice I give students is to not limit themselves to what we cover in class.
Leigh Ann DeLyser doesn’t blog often enough in my opinion but when she does post her posts are worth reading. For example Jumping Back In – Academic Papers all CS Teachers Should Read
More cyber security professionals needed, but few CS grads available—especially women. The article on CNBC is The growing need for more women cyber sleuths
Using Cortana to interact with your customers (10 by 10) some useful information about adding Cortana, Microsoft’s personal assistant that is not available on Windows 10 as well as Windows phone. I need to get my IT person to upgrade my lab.
Apple retail chief Ahrendts thinks covert Apple Watch use in the classroom is a good idea None of the teachers I know agree with him. I think deliberate use is a fine thing. I have students look up answers to questions that come up in class discussion all the time. Using devices for cheating is not something I’d advocate for. 
MobileFusion: Research project turns regular mobile phone into 3D scanner – So far this is still a research project at Microsoft Research but I can see lots of great educational uses for this.

Tuesday, August 25, 2015

Are You Ever Really Ready?

Last year I changed (improved I hope) every PowerPoint deck I used based on how the presentation when and how I realized I could make things more clear. Over the summer I revisited many of them and improved them some more. This morning and afternoon I revisited and updated the presentations I plan on for the first few days of school. Nothing is ever done.

Tomorrow (Wednesday) is “Show Time” – the first real day with students. I’ve been though my scope and sequence documents over and over again. Each time hoping to make them better – more natural, more efficient, more able to help students learn. No doubt I’ll change it all again over the course of the semester.

I’m excited about new projection equipment which should make demos better. I’ve got ideas about making the class more interactive and student driven. So much good coming together this year. Time to rock and roll!

Monday, August 24, 2015

Interesting Links 24 August 2015

I meet my freshmen today! Yeah! I am excited. I’m pretty sure I’m ready. I’ve even got a new LCD projector. Although as someone pointed out it is a little sad that I am excited about getting the kind of equipment that just about every industry meeting room has had for a while. And they have even more tools as well. But I’m glad to have it anyway. And now a few links to share.

Searching for Computer Science: A Google-Gallup Research Report was all over my social feed this week. You can read the full report Searching for Computer Science: Access and Barriers in U.S. K-12 Education online. Some 91% of parents want more CS in schools. Only 7% of principals think there is a demand for more CS in schools and only 25% of principals say they have programming/coding/CS courses. I think many of those 25% are wrong. I wonder if principals and superintendents are reading this report.

Embedded image permalink

So you think you want to be a computer science teacher? Part 2. this by Garth Flint a personal hero of mine A lot of CS teachers will relate to this post by him. Especially if you are, like many are, the IT department as well as the CS teacher. I bunch of problems here we have to solve to make CS work in our schools.

Scottish siblings win global coding competition I met these two over the summer. Good kids with parents who are dedicated educators.

New video from @codeorg on the Impact of (Computing on) Innovation It’s a good one! 

Assistive Context-Aware Toolkit (The open source app used by Professor Stephen Hawking)  is now available as an open source project via @ch9 I took a look and as you might expect it’s pretty involved. I may show it to students as an example of a complex program.

CodeSpells  mixes magic and coding in a game to teach programming via @codespells The video intro A Video Game That Teaches You How To Code is on @YouTube

Speaking of programming games. I spotted "It's the assembly language programming game you never asked for!" More at their web site: Zachtronics TS-100

The @codeVirginia Teachers Lounge blog has a great list of Competitions/Awards for Computer Science Students They were missing the ACM/CSTA Cutler-Bell Prize but it is still about the best such list I have seen. Check it out. 

ICER 2015 Report: Blocks win--Programming Language Design == UI Design via Mark @guzdial talks about some recently released research comparing block programming to text programming as teaching tools. Makes for interesting reading.

Friday, August 21, 2015

How I Spent My Summer Break From School

I'm in school today - first day back for teachers. I guess that means that summer is over for me. Every fall and through the year I always tell myself that I’m going to spend the summer doing what my friend Lou Zulli calls “retirement practice.” And every summer I pretty much fail to do this. This summer was no exception. Oh I did get out to the golf course during the week a couple of times but no where near what I thought  I’d do. Rather I spent a lot of time on professional development. I might even have over done it.

Image from SimpleK12’s Facebook page

First was ISTE in Philadelphia. My wife who is a library media specialist really loves this conference. I like it as well. Not as much CS as I’d like but more than there used to be. So I learned some things for sure.

Next was the CSTA Annual Conference followed by the CSTA board meeting. I love this conference. I learned quite a bit both at sessions and informal conversations. If you teach computer science and only do one PD event a year THIS is the one to do.

I was home over night and left for an unconference in Charleston SC. This one was small but everyone there could (and many have) speak at ISTE or CSTA. Most attendees were Microsoft Innovative Educators including some people who have gotten national and international awards for their innovation in the classroom. Inspiring only begins to capture it.

The last big event was a two day teacher boot camp at Harvard regarding their adapting of CS50 for the AP CS Principles course. That was pretty cool and I learned a few things I will be using in class this year.

Like most teachers I spent a lot of time working on my curriculum. Every year I try to take what I have learned from teaching the previous year and use it to improve. I think I’m ready. Well close anyway.

In case you are interested in more about any of these events I did blog about them over the summer.



Charleston Mini-Conference

CS50 AP Teacher Boot Camp

Tuesday, August 18, 2015

So You Think You Want To Be A Computer Science Teacher?

Recently I was asked an interesting question: “if a foresighted student asked how to prepare to be a CS teacher, what advice would you give him or her?”

My initial reaction was that I would first ask if they were interested in teaching first and CS as the subject to teach or if their interest was computer science but they didn’t want to work in a traditional CS career (ie. writing code for a living)? In the first case I thought I would recommend an education major and a CS minor. In the second a CS major and an education minor.

In the first case one would really want to go deep into education but one also needs a solid grounding in computer science. In the second case, one may find themselves looking outside of teaching at some point and the deeper and broader knowledge in CS would come in handy then.

But I’m not so sure those are the best recommendations. I have some experience with curriculum for a computer science major. I was on the ACM/IEEE 2013 task force after all. But I don’t know much at all about education programs. I got into teaching through a back door more or less.

I think my ideal answer would be to attend a program in computer science education so that one could learn both the CS and the specifics of how to  learn CS at the same time. Good luck trying to find an undergraduate program like that!

There are some people who think it is easier to teach a teacher the computer science they need to teach those courses than to teach a computer science person how to teach. I’m skeptical of that idea. I think it can be done either way and I’ve seen it work well both ways. But too often I think that a “repurposed teacher” learns enough to stay a lesson (or a week) ahead of their students that first year and is tempted to stay at that level. After all there is a lot of work involved in getting deeper into computer science.

Most high school computer programs don’t get much deeper than the first two or maybe three courses a computer science major in a university would take. So why bother learning more? I think we’d have a problem if a physics, math or English teacher only took the first two or three courses in that subject while in higher education. Sure there are people who make it but is that the way to bet your child's education? I don’t think so. We really want teachers to be subject matter experts.

We don’t see summer programs that promise to turn art teachers into English teachers in two weeks. Or English teachers into French teachers in 5 face to face sessions and Google Hangouts during the school year. Why are we so ready to accept that sort of thing in computer science?

Monday, August 17, 2015

Interesting Links 17 August 2015

My summer break is almost over. Many of you are back already. Where does the time fly? Last week was interesting and I started (finally) to work on my course outlines for the coming year. Making some changes. Also Google announced a reorganization under the banner Alphabet with the website Someone, everyone suspects Microsoft, registered the domain which takes on to Geek humor!
A number of things that came my way last week resulted in blog posts of their own. If you missed them or haven't read the comments people left for me please go back and read them. Greater wisdom in the comments than my posts. Even still  I have a few individual links to share.
I know that some of my readers have jobs in tech that pay more than a teacher’s pay. You may want to think about Helping create a Saturday Hacking Space for kids  Mike Zamansky runs some good programs in NYC. Lien Diaz@Lien_Diaz from the College Board posted “Need ideas for back to school? Check out these nifty activities from #APCSP teachers: “ I've added vizwik and Actimator to my blog's list of drag and drop programming tools at the same time I complain about the number of them. Google for Education: Making it easier to engage and learn with Google Computer Science Education   via @googleforedu

Friday, August 14, 2015

The Problem With Group Projects

I haven’t been at the ICER Conference but a lot of my friends are there and between their tweets and other tweets using the #icer2015 hash tag I almost feel like I’m there. In any case a lot of interesting things have come through the twitter stream including this image.

Group projects are not always this bad. Well I hope they are not but they do have a bad rap for sure. Figuring out how to solve this problem is our job as teachers.
Part of it is going to be regular check ins with groups. Also making sure that our students have worked out an equitable sharing of work and that team members are accountable for their deadlines. We have to make sure that groups work the way they are supposed to work. We can’t be passive and observe only the end results.
I do ask students in a group to evaluate their peers but I find that often they will cover for each other. That helps no one. I’m always looking for more ways to make group projects work better. I think the things we want group projects to teach are important soft skills that students really need.

Thursday, August 13, 2015

Drag and Drop Programming–Some Opinions

Seriously now! Just how many drag and drop programming languages/environments do we really need? Differences between them are small. The list I have (Drag and drop programming languages) is getting longer all the time. As I write this there are 23 entries on the list. How many do we really need?
There is a lot of overlap and while there are differences they are often small and hardly seem to justify the need for a new tool. I’m getting tired of looking at new platforms that seem like clones of what is already available. I’ve looked at most of those examples. Many of them are designed for younger students than I teach and so I haven’t gotten very deep into many of them.
 Most of the ones for younger children are cute and fun but very limited. That’s probably fine for elementary school but I teach high school. Many people are having success with Alice, Scratch, App Inventor and Snap! at the high school level. And they are fine tools in their way.
I have chosen not to use them though for a number of reasons. I’ve been using TouchDevelop instead. One reason is that there is a clear path from block based languages to text based languages in TouchDevelop. In the same IDE one can move from colorful simple blocks to more traditional looking syntax. That can be helpful. imageimage
  Moving on to phone apps. TouchDevelop lets users create apps for a variety of phones. Windows Phones, Android phones and even iPhones and iPads. That means that no matter what smart phone a student has they can run their apps on it. Or even develop their apps.  I’ve had students all pull out their own devices to learn how to code when the computer lab systems were having issues.

It’s more than just phones though. TouchDevelop is one of the development platforms for the BBC MicroBit for example. TouchDevelop lets students  write programs for embedded devices such as the Arduino, ARM embed boards, or node.js running on Raspberry Pi. That’s a lot of options with one simple programming language.

Last but not least I love being able to demonstrate my app and my development environment in random places. I’ve worked on my apps or showed them off on buses, in cars, on the train, sitting on line for various things and occasionally at a restaurant talking with friends. I think that is an advantage for students as well. I like that they can show off their apps on their phones or other devices.

Wednesday, August 12, 2015

Projects and Recipes in Computer Science Classes

Chris Lehmann is principal of the Science Leadership Academy. “SLA is an inquiry-driven, project-based high school focused on 21st century learning “ So when I read something like this from him it makes me think.


A lot of students are used to recipes. They expect step by step instruction on how to do something. In fact many of them are too used to it. They expect that for every assignment. Now I do use recipes from time to time. Both in class and in cooking.

A cooking recipe is safe. It is a way to get something the same every time. Not it not bad but it’s not especially creative. The real interesting things happen when one diverts from the recipe. You add an extra spice, try a recipe for chicken with fish or leave something out. In short the fun happens when you make it your own.

The same thing happens with recipes in computing. A class full of students can follow a recipe and all get the same result. They may even learn something. Chances are it will not stick very long though. A project is a lot more personal and students get a lot more invested in their learning when the project is something of their own.

Projects force students to think. Good projects force them to go beyond what is covered in class. They force students to get creative. I think they are wonderful learning tools. Recipes have their place and I wouldn’t suggest getting rid of them completely. Moderation in all things though. Smile  The important thing is to know what you are using, why you are using it, and what you expect from it. So let’s not confuse recipes and projects.

Monday, August 10, 2015

Interesting Links 10 August 2015

Interesting week last week. I spent a couple of days at Harvard (a liberal arts college in Cambridge MA) learning about their plans to adapt their famous CS 50 course to match the new AP CS Principles course. There is a wiki with resources for cs50 AP BTW  And I didn’t blog much. Then again I didn’t have much to say most of the week..

I added some blogs to my Computer Science Education Blog Roll including the following new blogs:

Look Who's Learning Too: 7 Mistakes I made whilst teaching Computing and what I'll do Next year. Great post by William Lou who is new to my RSS feed and CS educator blog roll.

I love Garth Flint’s take on making more of projects at Flipped Programming. A bit more involved look at a traffic light project. More than just code.

Scratch for budding computer scientists a good set of resources from Harvard where they use Scratch with undergrads. 

Things That Men Can Do To Be Real Allies For Women In Computing via blog@CACM and Communications of the ACM good suggestions from Valerie Barr.

I’ll wrap up for today with this thought from Chris Lehmann. Something to keep in mind as we design and grade projects this school year.

Embedded image permalink

Friday, August 07, 2015

CS50 AP–An Advanced Placement Computer Science Course from Harvard

The last few days were spent at Harvard University attending CS50 Boot camp in Cambridge (Videos of most of the talks should be at that link soon.) It was an interesting experience. A learning experience. Originally I planned three posts about it – one for the pre-work and others for each of the two days of the boot camp[. I soon realized that wouldn’t work for me. I needed to noodle on the entirety and write one post. So this may be longer than usual.

What is CS50 AP you may ask. Well the official answer is:

CS50 is Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for students less comfortable and more comfortable alike. CS50 AP is a free adaptation for high schools that satisfies the new AP CS Principles curriculum framework (that officially debuts in Fall 2016).

This boot camp was one of two sponsored by Microsoft that were run this summer. Interestingly no Microsoft technology is used in CS 50. None. Not even Windows. The CS50 appliance that is used to do the computer work is a virtual machine running on VMware. The OS of the VM is Ubuntu. Mind boggling!

That leads me to the pre-work. Attendees were asked to sign up for CS50x via EdX and complete the first three psets (problem sets.) Some teachers watched all the videos and did some or just a couple of the psets. I skipped the lecture videos and just did the psets. I think I made a mistake doing that. I plan to go back and watch the lectures. The early psets are nothing special and I’ve used most of them in one form or another in the past.  I think the real value for me is how lectures and demos are run rather than the psets.

I was not too pleased with the “appliance.” I had some issues with bouncing back and forth between the VM and the regular Windows. It might have been easier if I printed out the instructions and just stayed in the VM. Interestingly enough things went smoother after I upgraded to Windows 10. I delayed the upgrade until I finished to psets and wish I’d done it before.

The other thing about the appliance was that we did our editing with a text editor with limited functionality compared to Visual Studio which I use for most development these days. And then we had to compile and run in the command line. Oh and the programs were in C. Overall it felt like a giant step backwards. On the last day of the boot camp David Malan, who runs CS50, explained his reasoning for using C. His arguments make sense but I am still thinking about the wisdom of it all for beginners.

Regardless of language I am still not sure why Linux and not Windows. I’m sure Microsoft would let them create a Windows VM with Visual Studio to do what they need. They have a bunch of automation tools that probably don’t migrate off of Linux though.  I also suspect though that, like many others, they may think that using the command line is useful in terms of getting closer to the machine. I tend to think that can wait beyond the first course.

There is a web browser based IDE for CS50 coming soon. It avoids the need to install VMware and download a large VM file. It’s still a lot like using the current appliance though.

CS50 seems to be almost as much about culture as curriculum. I like that idea. David Malan is a very charismatic guy and a great presenter. You’d easily cast him to play himself in the movie.He’s also has had a few years and a great support team to pull it all off.  I’m not so charismatic so can I pull of the cultural aspect? An open question.

The materials that are being made available are remarkable. The videos, both major lectures and smaller walkthroughs, are totally p[professional. The quality of the talks is outstanding. The project descriptions are tested and clear as is the grading plan and rubrics they use. I’m definitely planning on adapting their grading methods to my existing programming courses.

I could see using these materials as a flipped classroom. That is to say assign the lecture videos to be watched at home and follow up with discussions in class. Will students watch hour (or longer) videos? That might be hard. Can I show them in class? Probably but the attentions span problem is still there. Another option which I would consider would be to give lectures myself so I could include the engagement exercises that Prof. Malan uses live with my students involved rather than just watching other students in a video.

The shorter walkthroughs, generally 3 to 5 minutes long, students will watch and I can also use them in class so it is not just me talking. I may try some of them this year in my honors programming class (which is in C#) and even my Explorations in Computer Science class (some of the stuff on Binary for example). This will also let me gage how well they hold the attention of younger students who are not Harvard undergrads.

One last thing I find particularly interesting is the intention to build a larger community of teachers teaching with the CS5t0 AP curriculum to help, encourage and support each other. That could be very helpful in the long run.

Right now we don’t offer AP CS Principles at my school. I’m not sure if we can get it in for 2016/2017 either. There are issues with adding a new AP course. And if we do get it in I am not completely sold on the CS50 model. But I’m going to continue to look at the materials as they become more and more available. The community my school attracts from  (New England parents with ivy in their eyes for their children) may be impressed by the Harvard “stamp.” Ultimately though I’ll have to decide what curriculum I can make work best and that is more complex than where the curriculum comes from. I’ve got a lot to think about.

Monday, August 03, 2015

Interesting Links–3 August 2015

I’ve been hearing about teachers headed back to school already. Many more will be starting back over the next month. Almost three more weeks of “summer” for me but the learning never stops. I’ll be at a teacher boot camp at Harvard this week. More on that once it is over. In the mean time last week was a slow one for me only. Just a couple of things to share.

Microsoft Breaks a World Record at Imagine Coding Camps  And a good time was had by all apparently. I wonder how much long term impact these one off events actually make though. Has one of them influenced you or someone you know?

Everyone seems to think their way of programming should be learned by everyoine else. Really? Mark Guzdial takes on the issue at Why should non-CS majors learn functional programming

Up on the CSTA Advocate Blog last week-Board member, Sheena Vaidyanathan discusses "What do students think about coding?

Revenge porn:’ Putting victims back in control – Revenge porn is a big problem for the people effected. I have been thinking it might be worth including in social issues around Internet use. This article about what Microsoft is trying to do to help victims is an interesting read.