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?


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


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.


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