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.