Tuesday, December 30, 2014

My Favorite Teaching Tools from 2014

This is the year I got serious about doing things differently in my class. Three tools really helped me out. Yes they are all from Microsoft and part of me really wants to be angry with the company for reasons that are outside the scope of this blog. At the same time I love these tools. In several cases I also know the people behind them and think they are pretty special as well. Did I mention that they are free? Well one is an add-on to software that is not free but it’s still cool. So what are they and why do I like them?

TouchDevelop.

Now I have toyed with TouchDevelop in the past (prior to 2014) but this year I really dug into it. I use TD to introduce my students to programming concepts. It is a great way to show them loops, decision statements and even variables in a nice way similar to drag and drop languages. Syntax is largely removed as a barrier but the results look more like a “real programming language.” This is especially true with the new skill levels recently introduced. The ease of doing graphics with turtles and the creating games with sprite is a huge plus as well. I plan to expand on my use of TD next semester.

I will add that Peli de Halleux from Microsoft Research has been very responsive to my questions. Plus he teaches computer science at a high school local to him in Washington state so he is motivated to help make TD a great learning/teaching tool.

Code Hunt

CodeHunt is a sort of programming game. One is presented with a puzzle and asked to write the code to create the results from generated test data. One writes their answer in either C# or Java. That Java is an option should make it attractive to teachers of APCS. Some of these are hard. The truth is though that my students like the challenge. They want to try these puzzles.

What makes it even cooler for teachers is that one can create their own code puzzles. I have created a few and my plan is to make a whole set of them over time and assign them to my Honors Programming students. Another plus is that Code Hunt works well with my third great tool – Office Mix.

Office Mix

Unlike the others above Office Mix is not just about programming. To the contrary it is a general purpose educational tool that is ideal for flipped classroom work. It is a free add-on to PowerPoint (2013 or Office 365) that lets you record your presentations with voice and ink AND add things like quiz questions and Code Hunt puzzles and more. TouchDevelop works with it as well though I am struggling with that right now. How cool is it? I spent money out of pocket to get Office 365 so I could keep using it after my free trial of PowerPoint 2013 started to get close to running out.

I’ve used this as a review tool for my students in several courses. Students can watch and listen to my go though a PowerPoint and then take review questions to make sure they are getting it in. Some of my Mixes also conclude with Code Hunt puzzles so that students can put the code they have just learned into practice. How cool is that? Oh and it is all online and students can run it on any web browser. No matter what subject you teach it is worth checking out. Also there is a whole gallery of Mixes by others where you may find something useful by other people. Sharing is a good thing! There are sections for Art, Computer Science, Economics and Finance, language arts, math, science, Social Studies and more.

These tools are changing the way I teach. For the better I think. What did you take on this past year that worked for you?

Monday, December 29, 2014

Looking Back on The Blog Posts of 2014

Last week was Christmas and I spent very little time online and did not collect a lot of good links. So with the  end of the year is just around the corner I thought I would take a look back at the last year according to statistics reported on my blog. Now I try not to get too caught up in the numbers largely because they tend to be unreliable. That is especially true of the numbers blogger reports. If I really had as many views as those stats suggest I should have a lot more comments. Google Analytics reports numbers that are much lower but I tend to trust them more. For my old blog I once had statistics from three different sources and they tended to agree. Since one of those was Google Analytics I’ll go with them.

One of the things I did was to look at the top viewed posts over the last 12 months. Five of the top 10 pages were written in 2013 and the most viewed page was initially posed in 2012. Though to be fair it has been updated since.

I’m not sure the ten posts listed below would make a top ten list of my favorite posts. I tend to prefer posts about interesting projects and reviews of interesting teaching tools. So the programming with blocks and Binary number teaching tools would probably rate high with me. Judging by comments here and on Facebook my post/review of the movie Top Secret Rosies was helpful and that rates high with me.

My post about which to teach first – loops or arrays had a bunch of comments and that discussion was helpful to me. Maybe others as well. Conversation is always a sign of a good post I think. My most commented on post was Leave School Now While You Still Know It All with 20 comments!

All in all though I never know what is going to get the attention it does or who (if anyone) will find value with a post. So I post what I want and hope it is useful to others.

Here’s the list for what it is worth.

  • Programming with Blocks By far the most viewed page. I credit search engines with this. Plus I think it is probably the most comprehensive list of drag and drop programming tools around. If I’m missing any let me know.
  •  My main page – Probably not surprising as a lot of people come directly there to read the latest posts.
  • Programming Languages are horrible This one scored bog on Reddit and almost all the traffic it had was on the day it posted. Language wars are always popular link bait. This was one of those posts where I just had something I wanted to say and not something I thought had a lot of educational value.
  • Your GPA Doesn’t Mean Anything Useful Another opinion piece that seemed to attract some attention.
  • Programming Languages for Middle School Students This one I hoped would be useful and judging by the visits I did ok. Written just about a year ago search engines continue to bring traffic to it.
  • Beware the Self-Taught Know It All Self-taught know it alls continue to show up. Smile
  • Lecture, Demo, Project This one is about  my teaching style. I was hoping for more comments on this one.
  • Resources for Teaching Binary Numbers This is another collection of resources that I update as I find things that belong. It appears that a lot of teachers search for these sorts of resources.
  • The More Programming languages Change the More they stay the same. I’m not sure why these language topics continue to draw attention by way of search engines. This is another one that got most of its attention the first few days BTW.
  • Code Hunt I wrote this when I first really discovered Code Hunt. These days I am using it more and more to give my students exercises in programming class.

Sunday, December 28, 2014

Professional Development Online–Is Twitter the Best?

Last week Audrey Watters wrote a blog post that asked Is Twitter the Best Option for Online Professional Development? Now I love Twitter (follow me there @AlfredTwo) and I learn a lot there. But while there is some good conversation going on there at times what I get the most value from on twitter are links to longer writing.

I learn the most online from reading blogs. Especially from the blogs of other computer science teachers. I have a Computer Science Education Blog Roll that I update when I find good blogs. Some of those blogs haven’t been updated in a while though.  I really wish more of you would blog. I have a lot to learn.

Audrey concluded her post with “I wonder if, in fact, "the future of professional development" might be a "return to blogging."” I say some of us never left. For the rest of you, jump in the water (and the learning) is fine.

Friday, December 26, 2014

Geeky Christmas Humor

All you AP CS teachers will want to share this one.

This one is the for math teachers in the crowd.

Merry math Christmas

Thursday, December 25, 2014

Single Finger Programming

Yesterday I was charged with helping my grandson (he’s three months old) get to sleep for a nap. After walking around and speaking softly to him for a while I got him to sleep. On my chest. Now of course I didn’t want to take a chance on him waking up or of getting assigned another task so I didn’t put him down anywhere. I sat quietly on a rocker making sure he was comfortable like any good grandfather would do. After a while though my mind started to wonder to my current programming task. I’m writing a Breakout style game in TouchDevelop

image

Since it is being written in TouchDevelop it will run on anything with a web browser and I have been developing it mostly on my laptop. But you don’t hold a laptop on a lap already occupied with a sleeping grandson. So I took out my phone. I can run TouchDevelop on any smart phone with a good web browser but there is also an app for TouchDevelop that runs on my Windows Phone so I opened that and started in.

It turns out that in some ways it feels easier and more natural to program TouchDevelop using a touch screen on a phone than using a mouse on a laptop. I made great progress trying out some new (to me) features of the language and completely changed (for the better) some aspects of my program.

TouchDevelop is more than just a touch optimized IDE though. The library of commands makes a lot of things, especially related to game creation, pretty easy. Sprites, obstacles, boundaries and more are all clearly defined and easy to implement. And gravity too! There are also methods for handling things like swipes and taps. I can’t imagine getting as much done in this game so easily and quickly in traditional languages.

There is an advantage to domain specific languages. One may give up something in the way of general purpose programming but in return one gets a lot of advantages in the specific domain.  But giving how much we are moving to devices that are in  the domain of what TouchDevelop is made for I think I may be using it more in the future.

Monday, December 22, 2014

Interesting Links 22 December 2014

Christmas vacation for me. I love my students but I sure do need a break right now. Like a lot of teachers I can use the time to catch up with things at home and to get ready for the end of our semester which happens in January. If you’re looking for some things to look into here are some links.

The Role of Tech Firms in Computing Education new at the blog@CACM  by Mark @Guzdial (It’s a response to this article on Politico – Seeking coders, tech titans turn to schools ) I wrote my response recently in Tech Companies and Computer Science Education.

My friend Andrew Parsons who still works for Microsoft did an interesting podcast interview recently.  The topic is Andrew Parsons’ eclectic career. Careers in tech can take a lot of twists. This is a good example of that.

Embedded image permalink

Hack it. Build it. Share it. That is the motto of the latest announcement from iRobot about their Create 2 robot. These robots are remanufactured Roomba robots to be platforms for educational and hobbyist creations.

Embedded image permalink

Microsoft takes action against tech support scammers They are taking legal action against companies who impersonate Microsoft employees in attempts to hack into people’s personal computers.

“Saturday Night Live” brilliantly lampoons lack of diversity in tech This is a great use of humor to show a serious issue.

Join the nation's largest CS competition for middle school girls! Registration closes 2/15/15 via @projectcsgirls

Friday, December 19, 2014

With Super Power Comes Super Responsibility

Earlier today several people told me that my name was referenced on SlashDot. Specifically it was in reference to me calling programming a super power in a post on my old blog back in 2010. The post on SlashDot said that the recent events with regards to Sony demonstrated that software was a super power and ended with the line “remember to always use your coding superpower for good.

One of the things we discuss in my classes is the impact of technology on society. I tell students to remember that just because something can be done doesn’t mean is must or even should be done.

Software is very powerful especially when connected to data. We’re collecting huge, almost unimaginable, amounts of data these days. Some by governments but even more by companies. The Sony break in shows the damage that exposing data can create. I have heard people speculate that this could bring down Sony as a company and that at the minimum it will be terribly harmful in the near term. Clearly many people have been negatively impacted.

It seems like a lot of people are ready to blame the crackers and their technical expertise for the break in. Friends of mine who are in the business of information security are skeptical that all the information was taken without inside help though.  While there is a tendency to blame the technology or poor software for break-ins like this one thing people who have been around for a long time know is that many big break ins take place with inside help – knowingly or unknowingly.

Social engineering is a huge part of the information security situation. That is where someone convinced someone to give them access or information my claiming to be someone they are not. It is how a lot of systems are broken into. It turns out that the ability to program is not the only “super power.” Sometimes just the ability to access data or computer systems comes with a lot of power. Power that not everyone realizes is intrinsic with that access. Power that not everyone guards as closely as they should. No matter how much people talk about firewalls, access codes, viruses, Trojans, Zero Day exploits and other software security issues the weak link in most systems is still the people who have access to them.

That is not something we spend enough time talking to students about. And frankly most companies don’t talk about it or train about it enough either. A company that trains people to look for shoplifters often has more to lose when people are careless with passwords or leave terminals/computers logged in and unattended.

We need to teach more about security. I remind people that increased security training was added to the CS 2013 Undergraduate curriculum recommendations in recognition of how important this issue has become. But in many ways university is too late and computer science majors are a much smaller group of people who needs to understand these issues better. As educators we have the power to improve this condition and I would argue the responsibility as well.

A Look at Computer Science Education Week

Computer Science Week has been around for about seven years now. In the early years I think most of us didn’t really know how to deal with it. There was talk about doing things similar what what other subjects did for special weeks. But while French departments can attract a crowd by serving crapes and the Latin department can show off trebuchets we don’t have quite the same things in computing. A lot of schools brought in special speakers. I gave a bunch of those talks myself. I’m not sure they made much of an impression with most students though.

Two years ago code.org came up with the idea of an Hour of Code for CSEdWeek and that took off. Between code.org’s outstanding marketing and their ability to mobilize industry and famous people Hour of Code became almost synonymous with CSEdWeek. It continues to create a lot of buzz and media attention. All of this attention is great. But one week, let alone one hour, is not enough to really get things going. CSTA and Code.Org (among others) work all year long to improve the state of computer science education. And that is great as well.

Where do we go from here? By we I don’t just mean CSTA and Code.org and other organization but computer science educators as individuals. As much as CS Ed Week is a great thing my biggest fear is that too many people will think that it is enough. I like to think of it as a boost or perhaps a “kick in the pants” to spur action though the rest of the year.

In the new year most schools start registration for classes next fall. Registration time is a good time to talk to all the students who did an Hour of Code and suggest that they might like a whole semester (or year) of it to do more with it. And while most schools have their program of studies set for next year it is really a good time to look at how more CS could be added to the next program of studies.

Perhaps an existing course could be made better and include more real CS. I wrote a bit about how we changed our school’s applications course and made it more of a computer science course in a recent guest post on the Microsoft New England blog. I think more schools (or their administrators) may be open to that these days in part as a result of the CS Ed week and Hour of Code publicity.

Perhaps a school that couldn’t (or wouldn’t) offer the current APCS Course will be willing to support the AP CS Principles course. Or the Exploring Computer Science course that many schools are adopting. Middle schools could think about offering a CS exploratory using some of the simple tools for teaching CS that seem to be sprouting up all the time. (See here and here)

The important thing in my opinion is to act locally, building on the momentum from CS Ed Week and make changes in individual schools. It’s not easy. In some schools it can be very difficult to add courses. But trying is the only way to find out how hard. We have a chicken and egg problem in CS. Not enough teachers in part because there are not enough courses and there are not enough courses because there are not enough teachers. At the same time since there are not enough courses administrators think they don’t need any courses. Inertia is not our friend. But we can overcome it.

Wednesday, December 17, 2014

Too many Arrows in the Quiver?

Last week I saw a tweet complaining to Wonder Workshop about them using Blockly to program their robots when (apparently) the Kickstarter proposal said the would be programmable using Scratch. A conversation ensued as it is likely to do. I thought Blockly and Scratch were similar enough that it shouldn’t matter much. The other person disagreed. He was concerned that teachers should be able to pick a tool and stay with it a while. And I can see that point. On the other hand I love learning new tools and like using different ones with students. A matter of personal taste perhaps.

A third person entered the conversation to say that “diversity and competition drives the quality of tools up, teachers and students benefits” which is a notion that I completely agree with. Admittedly it can be hard on teachers though. Especially if change is mandated. We have a large number of drag and drop programming languages these days. My list of tools for Programming with blocks has been my most viewed blog post for the last month accounting for over a quarter of page views. So clearly there is a lot of interest in the topic. Both for using them and for developing them.

Is this a good thing or a bad thing? Well the obvious answer is yes.

A couple of years ago I did a series of workshop using Kodu for middle and high school students. During the breaks I talked to the students about other tools they had used. Most had used either Scratch or Alice (the big dogs in block programming languages) and many had used both. Their preferences were clear. Some like Scratch better, some Alice and some Kodu. They all had reasons for their preference as well. This is not unexpected. People are different and see things differently. So in one sense the plethora of tools offers the opportunity to meet the needs of more people. And that is good.

On the other hand there are a lot of things for a single teacher to learn. There are 17 tools currently listed on that blog post and I hear about new ones regularly. (Let me know if any are missing.)  Knowing them all is really not practical so some choices have to be made. There is not a lot of real research on any of these tools (though there is probably more on Alice than most and some on Kodu as well) so what is a teacher to do? Don’t look at me to tell you which one to pick! I’ll tell people what I use and why but that is not the right answer for everyone. Possibly not for anyone.

Beyond that there are many traditional languages to teach and more all the time. PASCAL was the last language that seemed to have any concession around it. These days there is Java, C++, C#, Visual Basic, Small Basic, other BASICs, Scheme, Rachet, and growing of late Python. And that scratches the surface.

As I have said time and again There Is No Best Programming Language but should we at least narrow it down a bit? I’m not a fan of that idea (limiting teachers to a small number of options) either. After all I even think we need more operating systems!

So what is a teacher to do? Well I think more teachers need to share what works for them and why. Yes, I think more teachers should blog. I regularly enjoy reading about things that Mike Zamansky and Garth Flint are trying and using for example. Two different teachers in two very different schools in two very different parts of the country. I highly value their perspective. I do wish more people blogged their experiences more often.

And of course there are conferences for sharing. I am planning on attending SIGCSE this March as well as the CSTA Annual conference next summer. I learn a lot from teachers at these events. And not just in formal sessions. That they are expensive and hard to attend for many teachers is why I like the online interactions I get on blogs and even Twitter.

The value of all the amazing tools out there is increased when people try them, use them and share what they have learned. Only then can we pick the right tools for our students and also help make our tools better. So ask yourself – what have I learned and how can I share it with other teachers around the world?

Tuesday, December 16, 2014

The Untold History of Women in Science and Technology

A friend sent me a link to an interesting looking page that the White House set up to tell stories of the history of women in Science and Technology. It is a collection of stores about great women in science and technology. For each person there is a brief intro and picture followed by a recording on a woman on the President’s administration telling the story of a personal hero. Several of the stories are told by U.S. Chief Technology Officer Megan Smith. 

As you might expect there are a number of stories about women in computer science but the women and their fields covers are much broader than that. This may be a site to share with STEM teachers of all disciplines. And with girls you want to inspire to greatness of their own.

They were leaders in building the early foundation of modern programming and unveiled the structure of DNA.
Their work inspired environmental movements and led to the discovery of new genes.
They broke the sound barrier — and gender barriers along the way.
And inspiring more young women to pursue careers in science starts with simply sharing their stories.
Let’s write their stories permanently into history.

Monday, December 15, 2014

Interesting Links 15 December 2014

This week is the last week of school for my school this calendar year. We start our Christmas break with Saturday the 20th and will be off until January. I’m looking forward to the break. Though of course like many teachers I will be using a lot of the time to catch up with school work and with work that I didn’t have time for while school was in session. And maybe catch up on a little sleep.

Last week was Computer Science Education week and there was a lot going on. The President of the United States wrote a line of code. (President Obama writes his first line of Javascript) as did mayors and Senators and all sorts of other people. All in all a great week for getting some attention paid to computer science education.

Embedded image permalink

During CS Ed Week, Microsoft New England used their blog to highlight teachers with guest posts by a number of them from New England – including me. Some good posts and also a recognition that CS Education week can be about more than just an Hour of Code.

Meet our Winners of the Faces of Computing Contest! Check out the winning videos for the contest sponsored by the Equity Committee of the CSTA. Some really great videos that you may want to use for recruiting.

A comment on another post led me to this great comic version of the story of Grace Hopper’s live and career.

It's official!! See the new AP Computer Science Principles Curriculum Framework. This new AP exam starts in the fall of 2016. Time to get started looking at it if you want to get it into your program of studies.

Nominate best Portrayal of a Woman in Tech! NEW Google/EIC/NCWIT SET Award!

Media portrayals are just the tip of the iceberg for making young women’s first impression about technical work count. NCWIT resources can help you to encourage young women to act upon their computing interests and to understand why diversity in computing matters: www.ncwit.org/SETresources. For inspiration on pursuing careers in tech and for opportunities to try out coding, check out Google's Made with Code (www.madewithcode.com) site to learn how the things you love are made with code. It features videos of real-life makers who do amazing things with code. For introductory computer science lessons designed by Googlers, explore our CS First program (www.cs-first.com). There you'll find all the materials you need as a teacher or community volunteer to run after-school, in-school, or summer programs. More resources are available at www.google.com/edu.

Embedded image permalink

Friday, December 12, 2014

Dot and Dash–My New Robots

I got some robots the other night. Dot and Dash come from Wonder Workshop which is a Kickstarter project I backed. That is Dot on the right and Dash on the left in the picture below.

WP_20141212_002

Right now I am programing them using a version of Blockly for iOS. I guess it is a good thing I picked up that iPad a while back. More APIs and a version for Android are promised. There are several apps for iOS available besides Blockly. Blockly seems about right for my students though.

Since I just got them I haven’t fully thought out how I will use them yet. I did demo them for a couple of classes though. We talked about how simple the instructions were especially compared to the process people use for walking around a room. And we talked about limited sensors as well as interpreting data from sensors.

The students like them immediately. Emile RobotsThe girls all think they are cute. The boys are a little more reserved but are also interested in them. I had one student come into the computer lab during his free period. I did a demo and the next thing I knew the iPad was in his hands and he was figuring out Blockly and getting the robot (Dash) to move a round in different ways.

I think that they will attract interest from a lot of students. There are many students who get more excited moving physical objects around than they do moving pixels around on the screen. These robots may be a good way to motivate and interest those students.

Now if only there was a Windows API. Or perhaps a TouchDevelop interface. A guy can dream.

International 3D Game Creation Activity for CSEdWeek

I saw this on the CSTA mailing list this morning. Looks like fun.


A collaboration between the University of Colorado, USA, Tecnológico de Monterrey, Mexico, and the University of Applied Sciences and Arts, Nordwestern Switzerland has created an exciting international CS EdWeek activity featuring tutorials including videos in English, Spanish, German, and Italian (French still in progress). This activity is an extension of the NSF funded Scalable Game Design project.

The activity requires no download or signup and combines 3D authoring with a drag and drop programming web tool. One hour is sufficient to get students started and excited. Participants will receive a link to continue their projects if interested.

About the activity: Make a 3D Frogger-like game or create any game that you can imagine. Design 3D shapes, create 3D worlds, rule your world through programming and share your games with friends. Become 3D Programming unleashed! AgentCubes online, is the world's first 3D web-based programming & modeling tool. No prior programming or 3D modeling experience is required.

More information: http://sgd.cs.colorado.edu/wiki/Computer_Science_Education_Week

Tuesday, December 09, 2014

Tech Companies and Computer Science Education

It’s Computer Science Education week and my social media streams (blogs, Facebook and Twitter) are full of the news. The president was part of an event at the White House yesterday and wrote a line of code for example. Some of this is actually making it to the regular news media which is nice. Apple stores and Microsoft stores are holding events. This is a regular thing for Microsoft but less common for Apple but its still good. Google has been promoting the event as well. So I have been thinking about the relationship between the tech industry and CS Education this week. CS Ed Week is a great thing and I am glad we have it BUT what about the other 51 weeks of the year?
Tech companies have a vested interest in promoting computer science education. While many people, including a lot of tech founders, learn computing on their own that is not a reliable or sufficient way to produce the growing numbers of people in the field that we need. The idea of pushing for more CS education because of jobs is not without controversy. Likewise the idea of the tech (or any) industry influencing curriculum can be contentious. (See this article on Politico – Seeking coders, tech titans turn to schools )
When I was working at Microsoft I often heard concern about the company just being in it to get more people on their platform. And of course that was part of the goal though there was, certainly on my part, a belief that the tools were good and helpful for teaching concepts.
The question becomes complex. Should tech companies be working on helping to promote and expand CS education? If so, how should they do it?
Aside from Google and Microsoft there are not many companies putting a lot of effort into supporting CS Education. Apple’s store events this week are pretty much the first and only thing I have heard from them on the topic. What are they doing?
Arguably Google is doing the most. At least the most that isn't as directly tied in to their products. Their CS4HS program provides grants to “colleges, universities, and non-profits dedicated to providing relevant, high-quality professional development opportunities for computer science teachers.” They've spent a lot of money on that.   And they have other programs for students such as made with code which is specifically aimed at girls in tech.
Google and Microsoft both support the Computer Science Teachers Association and have supported the annual CSTA Conference. Oracle is the third big tech sponsor of the CSTA BTW. Not many others which is a disappointment to me at least.
This week Microsoft announced MSFT Imagine, “for those who love to code & turn creative ideas into reality!” It looks to be mostly for the self-learner and not about CS education in schools. Their YouthSpark program similarly seems more about outside of school though it does include some inside  school programs.
The Microsoft sponsored TEALS program which places software professionals in classrooms is very impressive. I especially like that one of the goals is to prepare full-time teachers to take over teaching CS after working with the s/w professional.
On a personal level I would like to see Microsoft do more. Two years ago I wrote a post -  Advice to Microsoft Education Marketing–Computer Science – none of which do they appear to have taken. In fact one site I recommend there is no longer available in that form. So that gives you an idea of my influence there.
A lot of industry money these days is funneled though code.org. And code.org is doing some wonderful things. They have hired great people (several are personal friends of mine) and they are creating some great resources. They are also training a lot of teachers and we need a lot of training for teachers. They have built upon years of lobbying by CSTA and others and helped get CS recognized in more states in the last several years. I suspect many in the tech field would argue that funding code.org is enough. I’m not sure I would agree.
For one thing CSTA could use more support. The annual CSTA Conference.is so much more than just professional development – workshops and sessions. It is a major networking and sharing event that helps build and empower the community of computer science educators. I wish more people could attend it. Perhaps some company could fund some scholarships to make it easier for first time attendees to get to it. And that is just one way to help CSTA.
There is a saying that people should think globally and act locally. Supporting Code.org or CSTA is definitely thinking globally. But there is a lot that companies could do locally.
There seems to be a lot going on in New York City though the NYC Foundation for Computer Science Education. The venture capitalist Fred Wilson has been a huge part of getting NYC area companies involved in CS education. And companies are involved there with schools and students by supplying mentors, hosting hackathons, field trips and visits to schools.
In Massachusetts the MASSTLC EDUCATION FOUNDATION has been created to encourage computer education in the state. It’s still early but has been having and promoting events and working with non-profits such as MASSCan and CSTA in various ways. Public/private partnerships are going to be especially important until we get more public support for CS education programs.
The important thing in my opinion is for industry to work with educators and not try to dictate or replace educators. Education does not and indeed can not work the same as industry. The knowledge that educators bring to the table about teaching and what has already been tried – successfully or unsuccessfully – is important and has to be respected. Subject area knowledge, which companies often do have in abundance, is not the same as the ability to present it to different types/ages of students. Teamwork is important.

Monday, December 08, 2014

Interesting Links 8 December 2014

It’s Computer Science Education week aka CSEdWeek. A lot of links to Hour of Code resources came though my social media stream last week and I thought about listing most of them but decided that it was a bit late for that for most people.

On the other hand both Apple Stores and Microsoft stores are running events this week and those may be useful for people looking for last minute events to recommend.

If you are in the Boston area the Microsoft New England blog lists a number of local events including those at stores and the Museum of Science #CSEdWeek activities - Boston

Fan Letter to Computer Science Teachers: You are the Coding Heroes - With all the hype about an Hour of Code and a single one week event for CS education I think it is important to remember and thank all the teachers who work on this issue all year long with far too little recognition or credit. Know that in the Computer Science Teachers Association (CSTA) Computer Science Teachers Association (CSTA) you are part of a big family. And we all appreciate each other.

Speaking about the CSTA. We’re looking to do more with teachers before high school. See this post at the CSTA blog. Inviting all “CS in K-8″ Enthusiasts

George Takei: Microsoft's Garage- Eye-Gaze, Skype Translator & Hackathon – an interesting look at a grownup hacker space.

Are you a math teacher teaching CS or a CS teacher teaching Math or a math teacher who would like to make your math more interesting and include a little CS? Checkout Bootstrap. There are two upcoming workshops that I know about.

    Waltham, MA :: February 16th-18th

    We are thrilled to partner with MassCAN and the Massachusetts CSTA, who are sponsoring a 3-day workshop for MA Math and Computer Science teachers! This workshop discuss best practices for math education and programming, and will model the entire curriculum in hands-on activities. Thanks to MassCAN's generous support, this professional development is provided FREE of charge to all MA teachers. Space is limited, and registration is first-come, first-served. Reserve your space today!

    New York City, NY :: February 27th-28th

    We are excited to announce a NYC workshop in conjunction with CS:NYC. The two day workshop will be held Friday, February 27 and Saturday February 28 at the Center for Social Innovation (601 W. 26th Street, NY, NY). The cost of the workshop will be $350/attendee and will include two days of training, all workshop materials, lunch, and a light breakfast. New York City public school teachers are exempt from this fee. Please fill out a teacher application and ask your administrator to complete a support application by January 31st if you would like to attend.

Great post by Rob Miles - Writing a Program is not a Fight

BTW the Microsoft Stores run events for young people fairly regularly. You may want to check them out for that alone.

Embedded image permalink

Sunday, December 07, 2014

There Is No Best Programming Language

Three items from different places on the same topic requires a blog post. Well for me it does. This week’s topic was picking the best programming language. Now you should know that one of the easiest way to get computer scientists, CS educators or software developers into a heated discussion is to start off with “what’s the best programming language?”

The first thing I ran across was “My Computer Language is Better than Yours” by Scott Rosenberg (@scottros) That post is a look at the new languages Go (from Google) and Swift (from Apple) and it is an interesting read.

The next thing I read was The Best Programming Languages Every Beginner Should Learn which is mostly the opinions of Hadi Partovi @hadip of Code.Org. It’s not a bad list but words like “best” and “every” always make me raise an eyebrow at least.

Lastly there has been a discussion about moving from C to Java or perhaps some other language for the first course in a university computer science program on the ACM SIGCSE mailing list. (Not sure the archive is available to non-members)

These are all discussions I find myself reading/following and occasionally taking part in regularly. The question about how many angels can dance on the head of a pin has nothing on the one about first programming languages.

In the case of programming languages I will say “it all depends.” It depends on what age level are you talking about? Grade school students are different from middle school students who are different from high school students who are different from university students who are different from older students. People trying to learn on their own are different from students with teachers. And teachers make those differences more different as well. In short the idea that there is a single language or sequence of languages that all beginners should learn really doesn’t make sense.

I was asked how the curriculum at my school matches with the suggestions that Hadi made. In some ways similar but in other ways dissimilar.

We start a half step above a block language. One teacher with a home-grown Logo tool and me with TouchDevelop. TouchDevelop is sort of like a drag and drop language but it is also closer in appearance to a text based language. I like that it takes a lot of the syntax out of the picture but still looks like real code. Also Block languages start with variables too late in my opinion and the jump to a real language can be a big one.  I also like how easy it is to do fun things. Recently I saw a student on their own showing it off to a visiting student. That tells me good things.

Visual Basic is next and it has many of the advantages of Python (a language growing in popularity) PLUS the ability to easy create real Windows programs without writing a lot of code. It is a friendly and yet powerful language. It gets students motivated.

Our next course is C# which is a very nice language in the C family. It is an easier preparation for Java, which we have to teach for the AP course, than JavaScript I think. If we had another semester course JavaScript would make sense though. We could think about it for our honors programming course I guess. Might not be a bad idea.

Our last course uses Java because we have to teach Java for the AP course. It we didn’t have the AP course JavaScript would make a lot of sense given its multi platform nature.

BTW we also do introduce HTML in our first course. It is important even though it is not strictly speaking a programming language. The web needs it and I like to think it is a good setup for the idea of markup languages and XML.

Is this the best set for everyone? Not hardly but it works for us. But it works primarily because we think about the concepts we want to teach first and pick the tools for it second. That is the way things should be done.

Thursday, December 04, 2014

Computer History–The Importance of Stories

I ran across quiz today (Do you recognize these Obsolete Technologies?) If you know me you are probably not surprised that I recognized all 15 of them. I’ve been around a while. Several of my friends on Facebook did as well. As so other happens the reminiscing started next. Tales of FORTRAN and punch cards and the very first PCs abound. It’s fun for us and probably has the younger people shaking their heads. I started to ask myself if knowing this old stuff helps us or just clutters our brains. Do these stories perhaps help us to explain things to students I wonder?

My students today never had to use punch cards, paper tape and some of them are unfamiliar with floppy disks. Mainframes? Not even a distant memory. The way computing is moving faster and faster does that matter? Maybe not. But maybe it does.

We made a lot of mistakes over the years and knowing them can be valuable. Things that we think of as advanced and modern have their roots in the past. Concerns about privacy and data security in the cloud are not dissimilar at all from the same concerns in the days of mainframe computing with remote terminal access for example.

Web forms are little different from block mode terminals connected to mainframes. Web services are just a new version of server programs for client server applications in timesharing system.  I could go on of course.

We teach students at my school some computer history as part of our freshmen CS course. It’s a little and I often wonder how much sticks beyond the unit test. On the other hand when I am teaching programming I try to weave in some stories from my experience in industry. I think that helps make the usefulness of concepts more real and less theoretical. The book Made to Stick: Why Some Ideas Survive and Others Die talks about the importance of telling a story to make ideas “stick.”

I’m lucky in that regard in that I have real industry experience which means stories. There is something more impressive about telling students who 5 people lost a month (5 man months) of time because they used “magic numbers” rather than named constants then talking about it as theory. Not everyone has first hand stories like that though. Most of us have some second (or third hand) stories but often we don’t have a story to help make the message stick.

We don’t do a good job or recording and sharing these stories though. Computer History MuseumThe Computer History museum does have a nice and growing Computer Science oral history project. How much of that makes it into lectures or textbooks? Probably not a lot. And students have short attention spans and are looking for multi media anyway.

As an undergraduate I ran across a book called “Programming Proverbs” that was very helpful to me. That link BTW is to the index to a series of blog posts I did based on the book almost 8 years ago. I think what I want today is a book on programming stories. I don’t know that such a book exists but I very much wish it did. Maybe even indexed by concept for use by teachers and students teaching themselves.

What do you think? Do you have favorite stories you use to explain things? Is there a book or other reference you go to for such stories? Is this even a good idea?

Monday, December 01, 2014

Interesting Links 1 December 2014

Well it was an interesting week for us last week. You may have heard that much of the east coast of the US was hit by a big snowstorm Wednesday – the night before Thanksgiving. My area was hit pretty good. We never lost power but many of my friends did. Some for days. At least it wasn’t as cold as it could have been. I’m very thankful it was not worse. Several of this week’s links are about Computer Science Education week and the Hour of Code.
But first, Christian Thompson has a new Tic-Tac-Toe in Python (Video Tutorial) That some may be interested in looking at.
Closely related to that last link, Deepak Kumar@bmcdeepak sent me a link to a book chapter of his about artificial intelligence for games like Tic-Tac-Toe (PDF) that is really great.
Microsoft is challenging people to learn coding with hour of code. Here’s how you can get started: Microsoft resources for Hour of Code
Embedded image permalink
What's wrong with this picture? Voice your concern through #CSEdWeek. Sign the petition at http://csedweek.org/promote
Embedded image permalink
Meanwhile, the FBI Says It Can't Find Hackers to Hire Because They All Smoke Pot . Go figure. Smile

Tuesday, November 25, 2014

CSTA Leadership Gets Busy for CS Ed Week!

Did you see this on the CSTA mailing list? When the CSTA Board met recently we started talking about sharing what we were doing in our schools for Computer Science Education week. It’s not all about the Hour of Code – cool as that may be. The result of our conversation was this video recorded during breaks in the meeting 

Watch our latest video to learn what the CSTA Board Members and Task Force Chairs will be doing for CSEdWeek 2014, which coincides with Grace Hopper's birthday. From a Humanitarian Hack-a-Thon to a Birthday Party Open House, these activities will be sure to get you thinking about the engaging and inspiring programs you can host at your school

View the video at http://tiny.cc/CSTA_CSEdWeek

Subscribe to the CSTA YouTube channel at http://tiny.cc/CSTA_YouTube

For additional CSEdWeek ideas, visit the CSTA Advocate, the CSTA CSEdWeek web page, and the CS EdWeek Teacher Site.

Monday, November 24, 2014

Interesting Links 24 November 2014

This will be a short week in school. Thanksgiving is Thursday in the US and my school is off for a five day weekend. I’m looking forward to a bit of a break. I think my students are more ready though. Smile Well let’s share some links.

Weeks of programming can save you hours of planning. This is the most retweeted and favorite tweet I’ve done in a while. Wish it was unique to me but the saying has been around for a while. The other CS teacher at my school has this on his lab wall. It’s going up in mine as well.

Embedded image permalink

Shakespearean Insult Generator - an interesting project in Python by Simon Johnson @clcsimon. I’m working on doing this with my C# students in C# of course.

Seeking study participants: What should BS in CS graduates know about software development? I believe she is looking for people from industry (hiring managers) to reply.

Check out the CS Participation Kit and get inspired -- during CS ED Week, December 8-14, or any time of the year!

The call went out for Computer Science Teachers Association 2015 Board of Directors Nominations. I’m planning on running again. We’re always looking for good candidates though.

How to Not Drive Students Away from CIS my friend Randy Guthrie takes on this tough but important topic.

Little evidence to believe 10x programming productivity gap. Doesn't matter. It's an education problem. Great piece by Mark Guzdial.

Nice article by Pat Yongpradit. Should we teach computer science in elementary school? My vote is pretty clear.

Wednesday, November 19, 2014

TouchDevelop on Student Devices

I have this sort of love/hate relationship with web based applications. I had reason for a bit of both today. I like to introduce students to programming using TouchDevelop which is a web app for most people although there is a really nice Windows Phone app for it as well.
Today, for some reason TouchDevelop would not load properly on the student computers in my lab. I'm not sure why as it loads fine for me on the same computers and it has worked fine in the past. I suspect a network glitch.
Regardless, about half the students pulled out personal laptops, tablets or cell phones and asked if they could use those. Sure, why not?  It was very cool seeing students work on the exercise on all different devices and having success. I think that some of the students enjoyed the experience more using their own devices than they would have on the computers. Sure the computer screens are larger and that makes things easier (for me at least) but this make the exercise more personal.
I may make that the default option (using personal devices) in the future. We’ll see how it goes.
FWIW the web app we created in class today can be found at https://www.touchdevelop.com/nwgf

[Edit: Everything worked just fine the next day. A number of servers were rebooted and that seems to have cleared a number of network issues.]

Tuesday, November 18, 2014

Top Secret Rosies

This week I have been showing the movie "Top Secret Rosies" to my freshmen students. It’s a wonderful story about some long unsung heroes of both World War II and computing. As introduced on the related web page:

In 1942, when computers were human and women were underestimated, a group of female mathematicians were recruited to complete secret research for the US Army. Top Secret Rosies: The Female Computers of WWII is a one hour documentary that shares the little known story of the women and technology that helped win the war and usher in the modern computer age.

I show this movie for several reasons. An obvious one is to show how women have long been involved in computing. Their role has been ignored far to often. The students, not surprisingly the girls especially, notice how women were not given full credit for their work at the time. This is a great starting point for conversation. I want my students to understand though that women have and continue to contribute important things to computing even when men are getting most of the attention.

Another, perhaps less obvious, reason is to help students realize how important the software is to the hardware. When I hear students, mostly male this time, talk about the hardware specifications of computers, tablets and cell phones I realize their don’t really appreciate the importance of the software that makes those devices useful. The movie highlights how important the work of these pioneering women was in making the computer actually useful. I also like how they talk about the women debugging the hardware by knowing the complete system so well.

We often talk about Ada Lovelace and Grace Hopper when we talk about the history of computing and software. These are important people but there are more women we can talk about and show as examples for all of our students.

Banner for the movie Top Secret Rosies

Related post: Teachers and Role Models in CS Education

Monday, November 17, 2014

Interesting Links 17 November 2014

Last week was crazy for me. Professional development day last Monday and Veterans Day on Tuesday just made things start differently. Friday was a travel day as I flew out to Tucson AZ for the CSTA Board meeting. CSTA members you have some great people on the board (and me too). We had a great couple of days worth of meetings.

I spent less time on the internet than usual. You may have noticed blog writing has been less lately. But I do have a few links to share anyway.

Great "Faces of Computing" contest due Nov 20 2014. Still some time to get student entries in.

This Binary number game from CISCO can be addicting. It’s one of the resources listed on my Resources For Teaching Binary Numbers blog post. Someone tweeted about it and set me off playing for a while. So I thought it worth a reminder to others.

Have you been to the Summit? a report on the AP CS Principles summit that was held this past summer.

Computing Is The Safe STEM Career Choice in 2014 is an interesting article at the  blog@CACM | Communications of the ACM.

ACM's Turing Award Prize Raised to $1 Million – This is great news for this award. The Turing Award is the closest thing to a Nobel Prize in computing. Google is putting up money for this which is create. I’ve already seen enhanced news coverage of this award.

Dear Senator Ted Cruz, I'm going to explain to you how Net Neutrality ACTUALLY works  from  The Oatmeal who gets serious for a change. This is an issue I’ve been having my students discuss in class.

Saturday, November 15, 2014

CSEdWeek activities December 8-14, 2014

Blatantly stolen from the CSTA announcement mailing list.


We want to hear from all CS teachers! We are calling on YOU to participate in CSEdWeek activities December 8-14, 2014, and to let us know what you are doing to celebrate. Please take a look at the Participation Kit for CS teachers developed by a team of CS teachers and supportive community folks at www.csedweek.org/csteacher. You can also get to the Participation Kit page from the main page,www.csedweek.org, and clicking on the big red button “Are You a CS Teacher?” These resources are here for teachers looking for various and different ways to celebrate CSEdWeek in addition to Hour of Code.

In addition to resources, there is an event calendar and map for teachers to post what they are doing for CSEdWeek. We want you to participate by going to the event calendar and submitting your activity or event to share with the CS Education community. Click here or on the Tell Us​ button from the website to add your event. There is a searchable calendar of all events across the country. You can search by grade level, type of event, or even geographically. There is an event map where you can see what is going on in your area. Please show your support for CS Education by submitting your event or activity today!

Wednesday, November 12, 2014

Microsoft takes .NET open source and cross-platform

I'm still trying to wrap my head around this.

Microsoft takes .NET open source and cross-platform, adds new development capabilities with Visual Studio 2015, .NET 2015 and Visual Studio Online

Initially this feels good for me. I like Visual Studio and .NET. Specifically Visual Basic and C#. I wonder how this is good for Microsoft though. I also wonder how much development will actually take place on .NET with it being open source. Is this throwing .NET away in reality?

The announcement linked to above says that Visual Studio 2015 is “[b]uilt from the ground up with support for iOS, Android and Windows” And I see that the new Visual Studio has an Android emulator so there is that. There is a lot more to read about this move. And we’ll have to see how soon and how well the promised cross platform software develops and makes it into the wild.

In the mean time I am installing the Visual Studio 2015 Ultimate preview so I can start trying things out.

What does this mean for education? That’s the big thing I want to figure out. Initially it suggests that schools teaching using .NET languages can easily move to mobile development not matter what mobile platform them want to use without having to pick and teach several development tools and languages. And Apple Mac schools can now use Visual basic which I still believe is a wonderful first language for teaching.

What else? Still trying to figure that out. I didn’t get any heads up on this so I have no idea what the message for educators will be.

Monday, November 10, 2014

Interesting Links–10 November 2014

Parent teacher conferences last week made for a couple of long nights. I confess though that I enjoy meeting parents and talking about their children. Some interesting stuff came though my sources last week as well. Here are a few of them.

A self driving car is cool but this project from Microsoft that helps blind people navigate is amazing. It inspired one of the best headlines ever by Tom Warren: "Microsoft had to blindfold me so I could hear the future"

Biddle Bytes: First Grade Impressionist Landscapes This is the sort of thing I’d love to see more of in terms of using technology to teach more subjects. in this case using Paint to teach art.

Ohio Teacher is Teaching Game Design with 3D Printing: Comes up with Incredibly Inventive 3D Tic-Tac-Toe

Open sourcing Twitter emoji for everyone. I’m wondering how I can use that in projects.

I updated my Computer Science Education Blog Roll with a blog by Christian Thompson on Twitter at @tokyoedtech

Speaking of Christian Thompson, he has a series on creating a text based adventure game in Python.

Thursday, November 06, 2014

Office Applications and Computer Science

I love this meme image. When I tweeted it there was a lot of activity on it so I suspect it resonates with a lot of people.

Embedded image permalink

Most people who understand what computer science is will quickly agree that teaching office applications is not teaching computer science. On the other hand one certainly can use some of those applications to teach computer science. Excel comes to mind immediately.

In a comment on Mark Guzdial’s blog recently Shriram Krishnamurthi from Brown University said:

Personally, I think one of the great unexploited opportunities is in the teaching of spreadsheets for computation. In the real world, all sorts of people use it as their primary programming mechanism; I argue that Excel is maybe the world’s most widely-used functional and reactive programming language.

In our Explorations of Computer Science class we use spreadsheets to look at data of various types. We use sorting to help organize the data. We use conditionals as well. We use IF statements, conditional formatting and other forms of decision structures in our processes. These are all computational (even programming) concepts. Students learn about Boolean expressions even if they don’t always realize that is what they are doing.

Of course we also use build in functions. Average, Sum, Min and Max are just a few of the functions that students are introduced to. There are of course many more that we could use. Using these methods introduces parameters, return types and other concepts of using methods and functions. Naming data regions helps understand abstraction

I’ve long advocated the use of computing (with or without programming languages) across the curriculum. Treating all subjects in isolation seems wrong and a poor preparation for life outside of school. With the school day already so full in most schools it would seem that finding ways to use software, like spreadsheets, to teach in other subjects would be a natural idea. Teaching spreadsheets for the sake of teaching spreadsheets is wasteful. Teaching students how to use spreads sheets to solve problems and to better understand the numbers involved in science and social studies on the other hand kills two birds with one stone.

Monday, November 03, 2014

Interesting Links 3 November 2014

Interesting week last week. We finished the first quarter in school. For me a bit of catch up on grading. Not my favorite thing that. I didn’t blog a lot but one of my posts asked the question Is a CS degree harmful for professional developers? and has attracted20 comments so far. Anyone have anything to add.

Calling all CS educators: @codeorg needs your help choosing tutorials for the #HourOfCode. Rate them now. Great chance to get your opinion in on what is good and not as good. Embedded image permalink

"In addition to many thousands of software professionals, we need far more software amateurs." argues Tom Davenport (@tdav) a Distinguished Professor at Babson College.

I found this brief history of programming languages that makes for an interesting read.

Tuesday, October 28, 2014

Leave School Now While You Still Know It All

Interesting questions appear on Twitter all the time. Sometimes addressed to individuals and sometimes addressed to the Twitterverse as a whole. One earlier today has me thinking a lot. And chatting with people on Twitter and Facebook.

This is a tough question if only because it raises many more. What does it mean to be “programming at a high level?” What is the value of a degree? How does one invest their time and money to make the most of their talents?

People regularly ask about moving into a career in software development right from high school. I never hear anyone asking about moving into a professional career in architecture, engineering, medicine, biology, chemistry or the like. If computer science is one of the hardest HS courses students can take (based on how many are afraid to take it) why is is seen as so easy to turn pro at?

In part this is because of the stories we tell. Bill Gates, Mark Zuckerberg and more made billions without finishing their degrees.  But wait, LeBron James makes millions of dollars and he jumped to the NBA right from high school. Being Bill Gates is probably about as much a long shot as being the next LeBron James. but While a lot of high school seniors think they are ready for the NBA and are wrong they at least know they have to be found before they can turn pro. Young software developers have the ability to “turn pro” at very little cost or risk these days. The temptation is great to try because the risk appears so low.

There are many people with very successful careers in software development who don’t have degrees so there is that. Why don’t we see that in other fields? Is it because we don’t do well teaching people professional level skills in high school in those fields or is it because there are artificial barriers to entry in those other fields or is there just too much more to learn? Possibly a bit of all three.

There is also a real anti-degree feeling among some software developers one could point to as well.

This is far from new. In the late 1970s I had a hiring manager tell me he was initially against bringing me in for an interview because I had a university education in computing. It’s hard to imagine another professional field were there are practitioners who see a university education in the field as detrimental.

One thing that makes computing, or perhaps more specifically software development, different from other fields is that it is easier to learn a lot without a formal education. Between MOOCs, freely available software, shared resources, online forums, and more there seems to be a virtual smorgasbord of resources for autodidacts.

One can quickly learn, on their own, enough to start making apps and applications and even make money. Once in the field one can bootstrap their learning though hard work and online resources to keep improving and growing. This is not really possible in many other fields. Not these days. There was a time when doctors and lawyers and other professionals learned on the job though internships and apprenticeships but those days are long gone. They have been replaced by professional degrees.

So to get back to the question that started this epic long post – degree or not? I’m a big fan of the degree. I think that people benefit from a guided learning experience. It forces one to broaden their knowledge and helps them to learn some things they don’t know that they need to know. There are some who can succeed without it but not as many as think they can.

If you are going to skip the degree you need some way of demonstrating that you really know your stuff though. You need significant projects that have been completed that you can show off as samples of your ability. That can be a profitable app for phones or tablets. I suspect that the students who created YikYak for example will have little trouble showing that they understand phone apps and cloud computing. People looking to get into game development need (and I’ve been told this time and again by hiring managers) to have a significant game project under their belts.

A degree, for good or for ill, is validation that you “know something” and if you don’t have that degree you need to be able to convince people you know as much.

One last thought, if a student says he doesn’t need a degree because Bill Gates doesn’t have one remind them that Bill Gates completed two years at Harvard. Then ask them if they can get into Harvard. It may get them to think a bit.

A late thought from someone on Facebook. A good degree includes a lot of courses that are not part of the major but which make for a more well-rounded and complete person. There is some real value in that.

Two States–the Highs and the Lows

I found this image on Facebook last week and it really rang true for me.

Two States

I experienced both sides of this recently. On one hand I wrote a program on the spur of the moment and pushed it out in 20 minutes with no struggle at all. On the other I started a program I thought should have been just as easy and spend a couple of frustrating hours as nothing I did seemed to work. I put part of it aside to come back later when I was calm again. Why does this happen?

The same is true with teaching as one of my friends on Facebook pointed out. One day you thrill to the sight of students “getting it’ and executing projects smoothly and with great pleasure. The next day you hear a lot of “I don’t know where to begin” and “I’m confused.” And you ask yourself, if I explained things so well one day why was my talk a complete failure the next?

Well I expect that some teachers will blame the student for not paying attention or not having what it takes. And of course there are students who don’t pay attention or who are lazy. But I feel some responsibility to be interesting enough for them to want to pay attention as well. Probably we, students and teachers, share some of the responsibility in most cases.

In the case of my frustrating program what I realized is that I was rushing things. I was not thinking things out enough before writing code. This is something I warn students about all the time. I need to sit down and work out the algorithm on paper before I revisit the code. Likewise with my teaching I need to sit back and honestly evaluate how I taught a lesson (or three).

Did I try to cover too much too quickly? Were my examples not as helpful as I’d like? Did I really plan the lesson well or did I rush it out assuming it would be easy or just the same as some other topic that went well? Was I insensitive to the state of the students? Were they paying attention or did I push them to where their eyes glazed over and they stopped listening? Most of all, how can I help them learn what I am trying to teach? I’m never going to become the teacher I want to be if I assume that a failure to learn is all on the students shoulders.

You know, teaching coding makes actually writing code seem REALLY easy some days.

Monday, October 27, 2014

Interesting Links 27 October 2014

What a week. I teach at a private school and one of the things we do is have open houses for prospective students and parents. Last week we had two which meant some extra time at school. Honestly though I really enjoy talking about the school and especially the computer science program. For students who are interested in CS there are not a lot of great options in high schools. I heard last week that New York state is going to let computer science meet a graduation credit. I hope that helps there.

And let’s not forget the lower grades either. Why Teach Computer Science in K-8? I Want Every Kid to Code by @mraspinall

Only a few more days to vote for my lesson on Binary numbers so I can get some computers for my school. http://aka.ms/omvote You can vote once a day so as they say “vote early and often.” I thank you for your support. BTW I have blogged about using the Office Mix tool a couple of times. Well worth checking out.

A couple of competitions for students are wrapping up soon. Check the deadlines and encourage students to enter.

Introducing teens to open source software development with the Google Code-in contest

Know high school girls who love computing? Award for Aspirations in Computing applications are open until Nov. 2nd.

Have your students entered the 2014 We Are the Faces of Computing Contest for students?

A little topical humor to end with. Perhaps the single most terrifying Halloween pumpkin ever carved.

Embedded image permalink

Thursday, October 23, 2014

Instructions and Removing Ambiguity

Recently I found the following image on Facebook. I plan to use it with my students this semester as a starting off point for conversation.

spagetti

This is a perfect description of someone dealing with ambiguous instructions. Context and assumptions come into play as does words that mean different things to different people. To some people “put some spaghetti on the stove” implies a multi-step process that results in cooked spaghetti. Or failing that at least spaghetti that is cooking when the wife gets home. To someone not used to cooking the obvious request is the literal one shown in this picture.

This brings to mind the old programming joke about the need for a “do what I mean” instruction that many of us have wished for from time to time.

When we ask people to do things we have a certain level of expectation that ambiguity and missing steps will be handled by the person we are talking to. Things like shared experience, known training, and common vocabulary and idiom are a big help here. Computers don’t (yet?) have much of this. We have to be very clear about what we want them to do.

BTW one of my friends, I have some geeky friends, suggested on my Facebook posting “Depends on if those were primitive operations or if it was a method call with anticipated output of cooked spaghetti.” A good point which also suggests that the method call could be better named to more clearly indicate what was happening in the method. Smile

All in all I am hoping for an interesting classroom discussion around this image.

Tuesday, October 21, 2014

Picking Good Variable Names

Actually picking any sort of name is important in programming but we can focus on variable names for a bit. The CS Teaching Tips team tweets and posts a lot of great suggestions. Today they send out a tip about variable names.

Avoid using x and y as variable names to prevent students from confusing variable assignments with mathematical expressions.

CS Teaching Tips Logo

I’ve been working on my variable naming for demos and sample code this semester. The x and y confusion is part of it. It’s tough because I learned in an era where short, even one character, names were the rule not the exception. Memory was expensive and long identifiers took up room in memory. Plus there was a certain amount of laziness on many people’s part. Well at least on mine. None of this is true anymore. Well that part about needing to save room with short variable names is no longer true.

Loop control variables in FORTRAN were almost always I, J, K, L, M, and N back in the 1970s. Variable names that started in those letters were automatically integers and so this was easy. Old habits die hard and I still tend to use those variables for FOR loops. I’m trying to get away from that in class.

I find that using “index” as a loop control variable, especially when the loop is iterating through a string or an array, makes things a bit more clear to students. It also helps reinforce the idea that variable names should have meaning. It’s hard to tell students, “yes I am using x, y, and I but you should all use meaningful names.” and be taken seriously. Using meaningful variable names in demos may take a little bit of extra effort but in the long run I think everyone is better off when teachers model the practice they try to teach.

CS Teaching TipsThere are lots more teaching tips at http://csteachingtips.org/ and you can also see tips from there on the side bar of this blog if you read it in a web browser. Follow @CSTeachingTips on Twitter too!

Monday, October 20, 2014

Decision Trees–Possible Interesting Coding Project

I found this interesting flowchart for determining where one should eat Thanksgiving. It’s pretty complete which also means it’s complicated. I guess if you know the answers it is not too bad to follow. If you just want to see the paths it is complicated. As I was wondering though it I thought “I’d rather have a computer program ask me the questions and spit out an answer.” Naturally the next thought was that I should ask students to write such a program.

And maybe I will. Probably not this particular flowchart but if I can think of something more relevant to teens I may just do it. Anyone have any ideas?

thanksgiving_final-1

Interesting Links 19 October 2014

You know those school weeks with lots of interruptions, strange schedules and little normal routine? Yep, had one last week. I also managed to record a good number of Office Mixes on various programming topics. I’ll post a list of them as soon as I have a few more under my belt. One of my earlier Mixes is a finalist for a contest Microsoft is running. The winners are chosen by community voting, so if you are willing to help me get some computers for my school, please vote for my mix at https://mix.office.com/Gallery/Category/vote 

Now for a few links I collected last week. Lets start with a couple of good articles addressing the question of why CS should be in schools.

I backed Notable Women in Computing Card Deck on @Kickstarter I signed up to get a deck of cards and a matching poster showing all 52 cards with information about women in computing. It will go up on the wall in my computer lab when it comes in.

The Null Professor a post by Crista Lopes   via @cristalopes  in which she shares some thoughts on CS education prompted by Mark @guzdial's recent posts.

Creating Surveys using OneDrive is a post by Rob Miles about a tool I’ve also been using a good bit in my classes.

I ran across this Ultimate List of UK Education Blogs last week. A lot of education blogs there that will probably be useful for educators in the United Kingdom and else where.