Archive for June, 2011

Microsoft and programming courses for schools

June 23, 2011

I like Microsoft.  Not the OS, I could really care less about the OS.  Your favorite OS is the one you are most familiar with, which is not necessarily the best OS.  What I like about Microsoft is the amount of material they put out that is free.  A lot of free stuff out there is not worth the powder it would take to blow it to the nether world.  Microsoft free is usually good free.  My favorite examples are Kodu, Small Basic and the Express editions of the IDEs.  For a school that operates on a $0 budget these allow us to offer high caliber programming classes to our students.  In most cases a free product is a lead-in for the money making product.  For the Express IDEs this might be true.  For Kodu and Small Basic I do not see a money maker involved.  Maybe it is a name recognition thing.  Then again, maybe not.
Big freebees for schools are the course materials Microsoft makes available.  The Kodu classroom kit is not going to make Microsoft a dime but is a huge money maker for a school wanting to start an elementary school programming course or after school program.  With very little work a novice programming teacher can step into this and get something going and an experienced programming teacher has a core to build upon without having to start from scratch.  Small Basic also has accompanying course material.  It is in PowerPoint which can put a kid who has just drank a six pack of Monster Energy in to a deep sleep but it is still something to build around.
Now Microsoft is offering a C# with XNA game development course.  Presently there is XNA 0.5 Jump Start.  It is a bit rough (I cannot figure out why lesson one with the Kodu is in the plan) but again it is something a teacher can build to suit.  Microsoft has started on a more extensive two semester course with XNA that may be promising for advanced programming students.  This maybe an attempt to replace Java as the “chosen” language of APCS.  I am all for it.
I am not one to look a gift horse in the mouth but I will anyway.  Kodu and Small Basic hit the lower end of the age/knowledge school spectrum.  Kodu and Small Basic target grades 4 – 8 with Small Basic useable as far as you want to go.  The C# courses are targeting the upper levels of the school spectrum.  They would seem to be Junior/Senior high school material.  My question to the gift horse is what happened to the middle?  I consider these kids in the middle, high school Freshmen and Sophomores, as the most important group.  Many of them are first time programmers taking possibly their one and only programming course.  These are the students I feel we need to target with interesting, relevant programming curriculum.  The upper level kids are probably hooked.  They will be involved with the computer science community for the rest of their lives and there is a lot of interesting things for them to work with at that knowledge level.  The little kids are little kids, they are not at the age to make decisions and cracking into the elementary curriculum is also very difficult.  Those Freshmen and Sophomores on the other hand are starting to make their own course decisions, are starting to look at future occupations and are starting to have electives available to them.  This is where the fun stuff needs to start happening to combat the computer nerd stereotype.  If Microsoft really wants to get kids involved in programming this is where they need to write material.  Keep the game orientation but bring it down to the introductory level.  Alfred Thompson had a good blog on Visual Basic and XNA with Win 7 Phone where he built a simple pong game.  Something like this is totally practical as a destination project for an introductory course.  If the kids could post their project to the apps store and put it on a phone at the end of the course I believe programming teachers would have more kids than seats.
Microsoft is on the road to building a fairly continuous programming curriculum.  Is it all stuff I would use?  No, but it is something a classroom teacher can build from and improve on.  Now if they would just fill that huge middle gap so I can plagiarize the heck out of it.

It is all in the apps.

June 16, 2011

It being summer and me being on an eleven month contract I get lots of time to think about school subjects big and small.  One of the bigs at the moment is our computer curriculum.  Since we are a smallish private school we have the ability to make curriculum changes quickly without having to go through some big committee.  Now since I write the computer curriculum my thinking time is not actually a waste of time.  Our programming curriculum is pretty much set; the first semester is Scratch and Small Basic and is intended for those students that have absolutely no programming experience.  The following semesters depend on the students and on what I think would be fun to work with.  I am big on a strong fun factor in programming.  There is just so much fun stuff out there that there is no reason to work through some tedious language textbook.  My goal is for the kids to have fun and learn to program at the same time.  C# with XNA, Corona with Droid, Lego robots, and Java with Greenfoot are just a few of the directions we have gone.  Like I said, the programming curriculum set in the sense I know the direction I want to go and I have a bunch of tools that will get me there.
The applications part of the curriculum is where things are getting confusing.  In the K-8 we have a very enthusiastic young teacher who is constantly rewriting the curriculum to meet the needs of the students and the changes in the applications world.  In the high school we offer a required freshman apps class taught by a business teacher that is also trying to stay up with the latest and greatest.  The trouble becomes what apps do we teach?  Do we stick with our traditional Microsoft Office, Photoshop, and Audacity scheme or head more towards the Google Docs and web-based software?  We teach nothing in the direction of collaboration software which I feel is a gap.  At what grade levels do we offer what?  We have our 2nd and 3rd graders started on Word yet we have public school kids coming into the high school with only the very basics of Word and nothing in Excel.  At one time I suggested to the business teacher that we eliminate Office from the Freshman apps class, thinking that there would be no need.  He gave me a quick reality check.
Switching the curriculum in the apps class also has the complication of teacher training.  It is not easy for a full-time teacher to get proficient in a new piece of software to the point where they feel comfortable teaching it.  We ordered three Adobe Indesign licenses for our Publications class for next year.  If we did not have a very intelligent student that said she was willing to learn Indesign and teach some of the other kids and the publications teacher we would not have ordered it.  Google Docs is becoming a power in the apps world but there are training issues, account issues and security issues involved that complicate things.
I like to look at what other schools offer in the way of apps classes.  One class I see a lot is web design.  I put this in the same category as small engine repair, i.e. job training.  Fixing lawnmowers and building a web page are both convenient skills to have.  Of course I want to offer a tech course involving maintaining computers and networks and that is much closer to lawnmowers than web pages.
I cannot imagine anyone being satisfied with the apps courses they are offering.  Software changes, kids of all levels walking through the doors, new software can be expensive, teacher training is always behind the power curve and sometimes the hardware requirements are not in the budget.  If the apps course is not constantly evolving then there is an issue.