Sunday, November 29, 2009

Interesting Links and Twitter Lists

Short work week last week. Not a lot of great links showing up in my RSS reader or my email inbox. It seems like a lot of people took the week off completely. I needed a bit of a break and I’m sure many others did as well. I do have a couple of interesting links to share though. Two of them are among my Twitter lists. Twitter recently added a feature that lets one create public and private lists of people’s accounts on Twitter. I’ve created several of them. And several private ones (like family members for example). I’d like to talk about two of the public lists though.

@alfredtwo/education – This is a pretty good sized list – well over 200 people. Who is on it? Technology coordinators, computer teachers of all sorts, English teachers, Librarians, middle school teachers, education consultants, professors of education and related subjects and more. Basically I look for people who are in education and technology in education. This is the list of people I follow to learn about the latest in educational Web 2.0 applications. I look to this list to learn about new ideas in teaching, classroom management, dealing with administrators and tech support people and much more. This is my attempt to keep my finger on the pulse of education as it is shared on the Internet. It’s a pretty interesting bunch of people. One might even say eclectic as well.

@alfredtwo/cs-teachers – This is a pretty short list right now but I really hope it grows. This is the list I use to look at Tweets (Twitter messages) from people I know to be actual computer science teachers. People in the trenches as it were who are teaching programming, serious web development, AP CS and other computer science courses. There aren’t enough of them out there in my opinion but I don’t want to miss anything the ones I know about say. If you know of people who should be on that list please let me know.

You can follow either of those lists or any of my others if you have a Twitter account. Or just follow me @AlfredTwo and see what I find interesting during the week.

Now for some other links.

Karen Lang had a very interesting post at the CSTA blog called Down and Dirty Programming which is a fascinating look into a course she created to prepare students for programming competitions. It is a look into different learning styles, classroom management, and how students learn. This article is well worth the read and I hope you’ll do so and leave some comments over there as well. Join the conversation!

CACM (aka Communications of the ACM) had an interesting article about how schools are making computer science relevant by adding video game development to CS courses. Closely related is a CACM blog post by called Games in Schools--Sugar-coated Learning? The latter is about educational computer games. Frankly I see a close tie between the two topics because I see a lot of interest in having CS students create games that are educational for other students. And perhaps as a way to  teach computer science. See Kodu for example.

Thursday, November 26, 2009

Thoughts on the Edublogger Awards

Earlier in the week I received an email telling me that nomination for this year’s Edublogger Awards are now open. Some really great blogs are nominated every year. Last year my main high school computer science blog was nominated which I thought was really great. I didn’t win which was not as great but honestly I can’t say that I am surprised nor that I felt like I deserved to win. The thing is that these awards are really designed for more general education blogs. What I am trying to do here is to create the very best blog resource that I can for high school computer science teachers. It’s a bit of a niche audience. And while others read and I hope benefit from what I write I don’t ever expect the have the audience of a Vicki Davis or Will Richardson (who is not writing as much as he used to unfortunately) who write about Web 2.0 and education by any stretch. Nor do I expect to reach the likes that Ken Royal, Doug Peterson and Larry Ferlazzo whose posts or articles, information and resource lists are useful to huge numbers of teachers around the world. And honestly I hope I never have a larger readership than Scott McLeod whose Dangerously Irrelevant blog is at the top of my must read list these days. So I don’t expect to ever win any big blogging awards. For a while that bothered me. I have a frail ego, you know, being a man and all. :-)

I’m ok with it though. No really. As I look at what I am trying to do and who I am trying to reach I think I’m going ok. If you know of a blog that is aimed at high school computer science teachers that is doing a better job let me know. I want to follow them and learn from them. And try to do better.

Since today and I’m in a thanking frame of mind what I am focusing on is thanks for the people who read here, who comment here, who share ideas and resources for me to post and share with my readers and most of all for those people who come up to me in real life and say “I get useful things from your blog.” You make it all very worthwhile for me. And I also want to thank the people whose blogs I have listed above for all I learn from them. Keep it up.

Oh and the very best computer science related blog out there is Mark Guzdial’s Computing Education blog. But he and I are trying to do different things so I’m fine with that. Besides that I am grateful for all I am learning from his blog. If you are interested in computing education at any level Mark’s blog is a must read. Thanks Mark!

Tuesday, November 24, 2009

What does it look like?

Every so often someone suggests a project and I ask myself “why wasn’t I clever enough to think of that?” Actually it happen more often than I would probably like to admit. There are a lot of really good out of the box thinkers in education. The other day was just such an example. And I learned about it on Twitter with reinforces to me the value of Twitter for learning. Chris Champion (blog Twitter @ChrisChampion) TwitteredAsking students 2 find images to describe programming terms.” What a great idea. The student finds a picture and places a good definition as a caption. Great memory aid!

Chris went on to say “ROFL when student found an ad: child with lice inspection comb for "Debugging”” Kids are going to surprise you. They are often much more clever than we expect. I suspect that many students coming up with images to describe programming terms are going to come up with humorous ideas. Humor stimulates a lot in the brain so I suspect this is a very good outcome. But even without humor having images has got to be helpful in making ideas stick. And if you are stuck for things to hang on the computer lab wall there you go. :-)

You can see the ad Chris’ student brought in here – Lice as debugging. If you try this with your students I hope you’ll share any particularly interesting results you receive.

By the way I am on Twitter @AlfredTwo. If you’re on Twitter please follow and let me know you are out there.

Monday, November 23, 2009

Interesting Links 23 November 2009

Ever wonder how they get the sound effects for car racing video games? A Tesla gets recorded for Microsoft games. Interesting story really.

Hacking and ethics I was really hoping more people would leave comments and opinions on that post.Especially after a former student of mine left a strongly dissenting view. Is he right? What do you or your students think?

I saw this first on a Tweet from @Microsoft: “Make learning fun: Game Design Challenge -- build mini-games on XNA Game Studio 3.1Games for Learning Institute Announces Design Contest for Microsoft's XNA Game Studio Platform. Looks like an interesting project to get people to think about simple, small games with real educational value.

Interested in Silverlight? Perhaps with an eye to teach it at some point? There is a new 3 Day Deep Dive into Silverlight curriculum at the Microsoft Faculty Connection educational community site.

New on the Microsoft on the Issues blog - Forum Highlights Innovations in Education : Posted by L. Michael Golden Corporate Vice President, Education

There is a new public beta of Office 2010 out now. Are your tech people looking at it? Are you looking at it? I’m loving it but of course I’m biased. Plus the new features in Outlook rock for me.

For all your space science geeks - Be a Martian web site from NASA and Microsoft

Interesting tech ed blog post by Ken Royal @kenroyal last week - 15 Things All Classrooms Should Have PK-12  Has he got it right do you think? Or are things missing or extra? What’s our classroom like these days?

New to Twitter last week is @CSEdWeek to Twitter for all the latest on Computer Science Education week (website opening any day now). What is your school doing that week? CSEdWeek is on Facebook as well.

Tuesday, November 17, 2009

Hacking and Ethics

I get a lot of interesting email. Today I received an email from a student in Japan asking me the question “Do you think that hackers will decrease if we improve Information-ethics-education?” My first thought was yes. My second thought was no. My third thought was maybe. Helpful answers? Perhaps not but it is a complex question.

By hacking I assume, based on context, that me means the breaking into systems sort of hacking rather than the old-fashioned “trying all sorts of things to see what one can learn sort of hacking” that was the more common meaning in “the old days.” And of course many of the people breaking into systems even today claim no malicious intent. They seem oblivious to the feelings of violation that people quite naturally feel from having strangers poking through their computers. If we started some ethics training in young people learning computer science maybe we could help there.

I do think that ethics training is quite necessary and that it will help reduce some forms of hacking by the sorts of people who get formal education in computing and IT. It doesn’t reach or do much with the self-taught learners or the people who are learning informally from people who are already hacking. So the effects of ethics training on hacking or as I would prefer to say “cracking” are perhaps limited. That doesn’t mean it should not be done. I note that it is included as a part of the APCS curriculum.

Also it is most often the people who get formal training who wind up in commercial software development (Though not always of course) and there we may need ethics training even more. Take the case of the two programmers recently arrested as being complacent in the Bernie Madoff Ponzi scheme. Perhaps some more ethics training would have helped there. Maybe not of course as a lot of money can move many people. But one can have hope.

The motivations for cracking are many. Sometimes it is money. Sometimes it really is learning. And sometimes it is people looking for a chance to prove themselves. I think we can help the latter two by a combination of ethics training and increasing the legitimate options for learning and proving ones self.

Frankly that is one of the cool things about the DreamSpark program. If a student can get a legitimate copy of Windows Server 2008, set it up, secure it from Internet endeavors and demonstrate to peers or potential employers that they know what they are doing that is a good thing. That they can do it without cracking some company security is bonus! We can also provide show off opportunities in schools, in contests (see the Imagine Cup for example) and service projects that may help as well. But at the root we have to instill some ethical sense in students from the very early days. School is a good place to start.

BTW as a starting point for discussion there is a link to the ACM Code of Ethics and Professional Conduct.

Monday, November 16, 2009

Interesting Links November 16 2009

Early in the week last week the @tcea Twitter account tweeted (Twittered?)

"They may forget what you said, but they will never forget how you made them feel." Anonymous

That has sort of been my thought for the week. How do we make our students feel? Our peers feel? Other people we interact with? Do we leave them feeling better or worse about themselves, about life, about us, about what we want them to know? It is the sort of thing that makes Twitter a lot more than people saying what they had for breakfast for me.

Interesting article called Educators That Rock!: danah boyd danah impresses me because of how well she approaches young people on the internet with questions rather than preconceived notions. I wish more school administrators and policy makers did the same.

Just What is Computer Science? Perhaps the key question for computer science educators as discussed on the CSTA blog.

One of my friends turned me on to http://wordsmith.org/anagram/index.html for anagrams. It is an interesting look at how a computer can generate anagrams but I think it is also a good way to have a discussion about how it still takes a person to pick out the really interesting or even ironic anagrams after the computer generates them.

Looking for a timely discussion topic? Take a look at Debate: This house believes that the cloud can't be entirely trusted on the web site of the Economist magazine.

Mark @guzdial followings the continuing saga of getting graduation credit for Advanced Placement Computer Science at  Georgia Board of Regents reconsiders APCS decision and will now "count" it. Next, the Department Of Education has to look at the issue again.

From @blogCACM “CSTA Chapter Liaison Fran Trees writes about email etiquette with 20 useful composition tips (plus 1 good joke)”

From @PeterVogel I see that Paint.NET 3.5 has been released in final form. Paint .NET is free software that is widely respected as an alternative to applications such as Photoshop. IF you are looking for a great tool for image editing this may be what you need.

From Liz Davis aka @lizbdavis I see that MIT is hosting a free Intro to Scratch workshop on Saturday, November 21 from 1-3pm at MIT Media Lab.

Microsoft Technology Blueprint for Primary and Secondary Schools

These resources provide guidance to assist educational institutions in fully utilizing their current technology and migrating from their current state to a more efficient and effective institution. Because each school has unique issues, priorities, and resources, no general Technology Blueprint can be expected to address the specific needs of all schools. Although educational institutions have very specialized requirements, many lessons that have been learned in the business world can apply to the needs of educational institutions. Visit the Microsoft Technology Blueprint for Education website to learn more.

Saturday, November 14, 2009

Dealing With Complexity

I had an interesting conversation with two teachers last week. One the chair of the computer science of a large state university and the other a teacher in a career/technical high school. We were talking about how beginning programming students worked on their programs. I said that time and again I’d seen students trying to fix nested loops by adding end loop constructs in random places until they got a clean compile. Then they were often surprised that the code didn’t work as they expected. The others responded that a lot of those sorts of problems came from students trying to write too much code at once rather than working more iteratively.

For example, one teacher is using Alice which is a great tool. But many students start by adding all the characters they think they need all at once and then have trouble getting them to all work the way they want. The college professor related students trying to write all the methods and functions in a project at once and before testing any of them. The end result was code that was all but impossible to debug because finding where there heart of the error was is so difficult.

Students want instant results though. They think that they can keep many more details in their head then they actually can. Perhaps it comes from multi-tasking so much. Perhaps it is just youthful vanity. or perhaps it is because they see others keep large amounts of details in their head (perhaps their teacher) and assume that it is easy. Lots of students assume they are smarter or more knowledgeable than their teachers. Usually they’re wrong. What they fail to realize is that years of practice and experience gives their teachers an edge that only time and practice will let them catch up to.

I  think we all try to get students to break problems down into small pieces. We emphasize modular coding with small methods and functions. We talk a lot about top down design where we break a large problem down in to progressively smaller pieces. I wonder if we don’t always talk enough about getting each small piece to work right before moving on to the next one. Do we talk enough about unit testing? Do we talk enough about keeping it simple?

I think this is a point that goes far beyond programming BTW. In English class I remember being told to start with an outline and then fill in the outline. One didn’t try to write the whole paper as one run-on sentence. Rather one planned out each section and wrote them in order. Well maybe not exactly in order but one typically made sure one section was in good shape before moving on to another section. Or at least that is always what worked for me. Many problems work better if one focuses on one piece of the project at a time. That is the most efficient way to do things.

Software is getting more and more complex all the time. Student projects are generally fairly simple compared to professional software development. that just means that it is more, not less, important that they learn to keep it simple, work in phases, and deal with complexity from the very beginning.

Wednesday, November 11, 2009

Wait while I look that up on the Internet

Recently I have been doing some mock interviews with high school students. I have some business cards with a coded message on the backs with a challenge for students to solve the code. For a number of the mock interviews I handed the student one of these cards and asked them “what’s the first thing you would do to solve this?” The first part of the code looks like “8BF3A13B” and some many students say “that looks like hex. so I’ll convert it to decimal.” Others say they will compare it with a table of ASCII codes. But at least one in four says “I’ll search for it on the Internet.” OK some of them say they will “Google it” which of course lets me asks me ask if they are sure Google is the reference they want to use when interviewing with someone who works for Microsoft. :-) I learn a lot from the answers to that question as well. But I digress from the issue of if searching for answers on the Internet is really problem solving.

Of course the Internet is a great resource for looking for information and finding the answers to all sorts of questions. Watching student search the Internet for years now I have to say that many of them do a very poor job at it. They don’t always know how to ask questions or what questions to ask. Now searching for an example of a coded message is easy. I expect that many students who get these coded cards from me or from others in my group will find this blog post in the future. I will be of almost no help to them at all though. Well at least not with decoding the message. False positives on the Internet are common.

Information is only half the battle though. Problem solving may start with what questions to ask but it moves on to knowing what specific information or algorithm must be use to solve general problems. This is where it gets difficult for many people. I think that learning to move from specific to general is the key important thing in teaching computer science. This is what makes the difference, for example, between teaching the syntax for a loop and having students who can use a loop to solve problems. Or for that matter in math the difference between teaching what the Pythagorean theorem is and having students who can look at a problem and think “I need to use the Pythagorean theorem to solve this one.” Students need to exercise the problem solving muscles.

There is a fine line though between making things too easy and too hard. Finding it is the art of teaching.

BTW a related post is Are Your Students Good Problem Solvers, or Good Mimics? on the CSTA blog. And there is a collection of puzzles in the archive of the Microsoft College Student Puzzle Day event.

Monday, November 09, 2009

Interesting Links November 9 2009

Welcome to this week’s collection of interesting links. Some of these I found on Twitter, some on various blogs, and some came by email from various people. I hope you find something useful here.

The Innovative Teacher Network is now the new Partners in Learning Network, free public/private communities for teachers. Join & get AutoCollage & Songsmith free

We are a global community of educators who value innovative uses of information & communication technology that improve learning outcomes. By joining the Partners In Learning Network, you can:

  • Create or join communities & discussions
  • Find lesson plans and activities, as well as share your own resources
  • Access free tools and learning programs for your classroom and school
  • Collaborate with like-minded colleagues, improve education in your own classroom and community, and ultimately help improve the quality of education globally

Barbara Boucher Owens from ACM SIGCSE has an interesting post on Computer Science Education week. It’s not too early to too late to start thinking about having an event at your school.

On the CSTA blog I found this cool picture of a sign explaining FIFO in every day life.

image002.jpg

Great visual for explaining the concept I think.

MIT BLOSSOMS STEM education initiative - math, engineering, physics and Bio videos for students.

Here is a list of the most lucrative college degrees from Money magazine. Engineering and science degrees are at the top. Why are students not looking at them? Why are guidance counselors pushing students into other areas? I don’t get it.

Are Your Students Good Problem Solvers, or Good Mimics?  Nice post on the CSTA blog. Are we really turning out critical thinkers or jsut students who can regurgitate solutions to known problems?

Liz Davis @lizbdavis has some fine Scratch lesson material assembled. It is 6 45 minute lessons for her 8th grade class. Take a look and see if it fits into what you are trying to do.

Do you or your students know what a really large data center look likes today? Take a peek into one of the new huge data centers Microsoft has been building.

Recently a young "TIME for Kids" Reporter visited Microsoft to Learn About the Future of Education. They interviews Joe Wilson who is one of the senior people in education outreach in Redmond and someone I get to work with from time to time.

Friday, November 06, 2009

Sequencing

Imagine you had a pickup truck that you used for work. One day the person in charge of company vehicles says to you “we’re going to replace your pickup truck with a Prius. We’ll be saving money on gas. Isn’t that great?” You of course reply with something like “But I need the room in the back of a pickup truck to carry things.” And they reply “well you’ll find a way to work it out.” Can you see that happening? Does it sound like a good idea? Of course not. One lays out the needs and starts from what meets the needs and then works in other factors. A Prius is a great car for what it is designed for but it was never intended as a pickup truck replacement.

How about this version? A true story. Several years ago a teacher I know came back from summer vacation to find that all of her Windows PCs had been replaced by Apple Macintoshes. With no warning to her. Now of course none of the applications she had been teaching worked and the textbooks she could not replace were all wrong. But hey, the tech support people said “you have new computers! Isn’t that great?” Crazy? Well it happened.

I hear these stories regularly. Someone decides that they are going to change the hardware and/or software platform for some reason that sounds good to them. But they don’t take the applications that are being used into account. They’ll leave fixing that to the user. Shouldn’t planning for computer use, in industry, at home and at schools, start with the user facing applications software? Select that and then go looking for an operating system and a hardware platform to run it on. Am I wrong?

Most recently I have heard this in the context of people looking for “replacements” for Visual Basic because their school is migrating to some OS other than Windows. Even if I were not heavily biased towards Windows and Visual Basic (you know I am) this would drive me crazy. As it is none of the Visual Basic alternatives I have looked at look anything like a sideways more. A big step backwards is how they look to my (admittedly biased) eyes. But teachers being presented with this situation never seem to push back. Why not? Tech support is there to support  the teacher aren’t they?

I was a high school technology coordinator for several years and I always viewed my job as being an enabler – someone who helped teachers teach. When ever evaluating operating systems, be it a change or an upgrade, the first thing we did was to get a list of all the applications in use. Then we tried to verify which ones worked and which ones didn’t work with the potential platform. I saw it as the technology department's role to make sure that either everything worked or their were viable replacements that the users approved of before making or even suggesting a change. Everything gets tested. Only when it all works is a change implemented.

Of course to me the role of technology support goes beyond just careful evaluation of platform changes. When a teacher wants to use some new software it is tech supports job to research how to make it work not the classroom teacher’s. It drives me crazy when tech support who will not even let a teacher download solutions tells the teacher that they (the teacher) have to present technical solutions for them (tech support) to implement when software doesn’t work right.

Who works for who in educational technology?

 

Note: see also Your technology coordinator works for you, not the other way around by Scott McLeod.

But I Don’t Want to be a Programmer

One of the things I hear pretty regularly is that not everyone needs (or wants) to be a programmer. Some people want or perhaps even need to do some programming or more generally programming like activities but they don’t want to be full time programmers or computer scientists. These people can be a lot more effective and productive if they at least learn the basics at a fairly good level. Mark Guzdial talks about some of this on a recent post called Talk on Meeting Everyone’s Needs for Computing

The “bigger” problem is the number of people who program and who want to learn more computer science, but who do not want to become CS majors or learn to be software engineers.  A paper out of CMU predicts that we’ll have around 3 million software developers in the US in 2012, and about 13 million end-user programmers.

Another term that comes into use is non-professional programmers. In other words these are people who program but do not do it as their career/full-time profession. Non-professional programmers is actually a super set that includes end-user programmers and people who programmer recreationally or hobbyists. Yes there are people who write code for fun. Lots and lots of them.

Thirty five years ago when I was first learning to program the idea of a software hobbyist was a pretty strange idea. They did exist of course but you had to have some real money (unlike Bill Gates I could not afford to buy an Altair computer to play with) and some serious interest. learning to program was pretty difficult. It was mostly assembly language on computers that hobbyists could get access to. The idea of end-user programmers was even more of a strange concept. Computers were kept in locked rooms with access tightly controlled and limited to highly trained professionals. All that has changed now.

Computer science and programming have now become a life skill. It is something “regular people” can use in their daily jobs, for fun, and as a mental exercise. Computers are inexpensive and most people have access to them. Development software is cheap (often free) and easy to acquire. (See Microsoft Visual Studio Express Editions for example) In daily work life people have access to programming to modify their existing tools (see creating macros for Excel for example) Just last night I talked to a high school student who told me he was habitually creating macros for Excel to solve tasks. I suspect that he will have a huge advantage as a knowledge worker totally apart from any programming type jobs.

I think that schools should be making sure that students have the option to learn and use these sorts of tools. Teaching computer science is not just about turning out computer programmers any more. Today teaching computer science is about supplying students with the tools to succeed in just about any field they go into. And as a plus some of them may find a lifelong hobby. You don’t have to be a fantastic physical specimen to create a great computer game. of course this mean we have to teach the subject well and in ways that interest students – that make them relevant to them. Media computation seems like a great example. game development? Sure. Robots? Sure. And yeah we can do the math thing for the math geeks. :-) But at the very least we need to expose everyone to this field. Let them try it first before they decide it is not something they want to learn and use.

Pre-Collegiate Faculty Connection Redesign

Back a year or so ago Microsoft opened the Pre-collegiate faculty connection web portal to share resources for computer science, computer programming, web development and other related teaching areas. It’s been a pretty successful site with tens of thousands of teachers visiting it for news and resources. This week it was time for a site refresh. The new site is now up and I think it looks pretty good. Of course I like blue themes. :-)

image

More importantly the site navigation is (I think and hope you agree) cleaner and clearer. We’ve also added some colleague connections – links to other blogs and useful web sites that we think you will find valuable. Of course I’m biased as this blog is first on the list but the others are great as well. As before there are links to software for educational use, curriculum for various courses and topics, and links to online training resources that you can use for yourself or with your students. If you haven’t visited lately (or even if you have) please stop by and look around.