Computer Programming: Free stuff is everywhere

September 27, 2016

October 20th I am giving a presentation at the annual Montana Educators Association conference.  The topic is “Computer Programming:  Free stuff is everywhere”.  (Originally I was going with “Computer Programming: Free shit is everywhere” but it simply did sound professional and at all costs I must sound professional.  I also do not think the organizers would have gone with that title.)  I usually do not get into doing presentations like this.  I have a tendency to get enthusiastic which means I start waving my arms, jumping around, speaking excitedly and overall looking like a stone-cold idiot.  But I could not resist.  The reason I am submitting myself to a demonstration of public stupidity is simple.  For some odd reason many Montana schools have decided teaching CS and/or programming is an expensive proposition and therefore not introducing it into their curriculum.  I, on the other hand, consider it the cheapest subject to teach.  My feeling is the only expense that falls on the budget is the cost of a teacher.  Admittedly this is not trivial, in fact just finding a teacher qualified (or if not qualified at least willing to learn) to teach CS/programming can be a challenge for schools, especially out here in the boonies of Montana.  The other expense they seem worried about is computers.  Are there high schools out there without a computer lab?  Maybe but not likely.  Do the kids have their own laptops?  Usually.  If a school does not have the hardware (available lab or shortage of student laptops) there are solutions.  Montana has a State recycle warehouse with all the tech stuff available for free.  Computers, laptops, monitors, keyboards, etc, etc.  The stuff is free.  No, it is not new but a 5-year-old computer works just fine for almost all programming applications.  I would assume most states have the same warehouse somewhere.

So I want to expound on why I consider CS/programming such a cheap subject to teach.  Since most schools think CS and programming are the same thing I will look primarily on programming assets.  This post is just the beginning of me organizing my thoughts so I can prepare something that will not reinforce the appearance that I am in idiot.

In the beginning there was the programming language.  How many free (and good) languages are there out there?  Let me count the ways.  No, I won’t, there are too many.  Here is a list of the ones I have used that are worth the trouble of using or free applications that might be worth learning.  Some of these are what I would consider suitable for an intro programming course.  Some are suitable for advanced courses.  ALL of these have free versions and have free or dirt cheap learning materials available somewhere.  If it isn’t free or really, really cheap it does not fit my budget.

Logo – Lots of them out there.  Beginning programming.

Scratch  (https://scratch.mit.edu/)  –  Beginning programming.  Designed for teaching.

Alice  (http://www.alice.org/index.php) – Beginning programming.  Designed for teaching.

Touch Develop  (https://www.touchdevelop.com) – Beginning to pretty advanced programming.  Designed for teaching.

Small Basic  (http://smallbasic.com/)  – Beginning programming.  Designed for teaching.

Kodu  (http://www.kodugamelab.com/)  – Beginning programming.  Designed for teaching.

Visual Studio Express  (https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx) Intermediate to professional programming.

Corona/Outlaw (https://coronalabs.com/ and http://outlawgametools.com/game-dev-product/outlaw-ide/) – Intermediate to professional programming.  Phone apps.

GameMaker  (http://www.yoyogames.com/gamemaker) – Beginning  to intermediate programming.  Strictly game authoring.

Python/Pyscripter (https://www.python.org/) Beginning to advanced programming.  Designed for teaching but can be used for professional work.

Java – Intermediate to advanced programming.

Unity or Unreal Engine (https://unity3d.com/  or https://www.unrealengine.com/what-is-unreal-engine-4) – Intermediate to advanced programming.  Game authoring.

MIT App Inventor  (http://appinventor.mit.edu/explore/) Beginning programming.  Designed for teaching.  Phone apps.

 

Again all of these have free versions and all of them have free tutorials or teaching materials.

First week woes

September 1, 2016

I am not going to make it through the year, maybe not though the week.  This is the first week of the year and so far the Google Drive on my class laptop has died (folder is empty and it was not empty last week), some of the wireless APs in the elementary school do not want to work and I think I have narrowed it down to the quality of the switch they are attached to (???), the bells at the elementary school are ringing at random times even though the time is set correctly and the schedule seems to have downloaded correctly, and now something is doing a massive download on my network which is killing all the bandwidth.  Oh, I also am teaching one more class than usual, the school has expanded the day-care to a new site 10 blocks away that I am apparently supposed to tech and, worst of all, I have not had time to fill my beer growler in a week or so!  Woe is me!

A wing and a prayer,

August 23, 2016

Students walk in the door Wednesday.  I am not ready.  I say that every year and it is true.  My stuff for my classes is not ready and the computers for the school are not ready.  I spend all summer working on the IT stuff and when school is about to start it seems nothing is ready to go.  This year I can blame it on Windows 10.  I upgraded from Windows 7 to Win 10 this summer.  Not really that big of a deal.  I and my student tech aide wander from computer to computer and run an install, then cut and paste the Win 10 key and POOF, Windows 10 is installed.  Not.  For some odd reason if you let the computer with the newly installed Win 10 sit for a few days (not an exact measurement) then turn it back on it has the “Activate Windows” warning on the desktop.  I gave it the Win 10 magic key once so it wants it again?  I give it the magic key again and it is not happy.  It says wrong key.  It is the only key I have.  Now what?  I tinker.  (School techies do that a lot.)  After a little hair pulling and a lot of luck I find the solution.  Give it the Win 10 key then give it a Win 7 key.  In that order.  It is happy.  I have not the slightest idea why this should work but it does.  So I am back to legging around giving every (well, almost every, the pattern is not consistent. Some computers are happy without the reinstall of keys.  Go figure.) computer the weird key install routine.  The computers already had Win 7 so why need the Win 7 key again?  Weird.  This job is just so interesting.

For my classes I am just going to have to wing it.  The senior stats and the sophomore Algebra 2 are no big deal.  I have done them before so I know what I have to work with in the way of resources and syllabi so winging it is not a problem.  The Game Programming class on the other hand is going to be an issue.  I had planned on working through the book I am going to use during the summer to work out the bugs.  So much for that plan.  I do have a scheme but no syllabus or weekly plan.  I have never taught the course or used the Gamemaker software extensively so this will be a challenge.  Just what I need, a challenge.

I have never in the 30 years of teaching programming ever been prepped successfully for a first time programming class.  The couple of times I laid out the course in detail the detail fell apart.  Computer issues, students being smarter than expected (I have never had students been dumber than expected), projects I thought were easy turn out hard, projects I thought were hard some smart student finds an easy way to solve, and multiple other confounders.  So I am used to winging it.  I have been lucky so far in that I have never had a course crash and burn.  I have had one catch fire once because the tutorials I had planned to use turned to poop after the third one but the kids and I managed to survive without the tutorials.  You have to be fast on your feet if you are winging it (Yes, that is a mixed metaphor but if Shakespeare can do it so can I!).

So even if I am not ready school is going to start and we are going to have fun and on the way we are going to learn some stuff.

The exciting world of school IT life.

August 5, 2016

I have decided to re-wire the elementary school lab.  All the network cables were just stapled to the walls.  Really tacky.  (There is a pun there.)  Now this seems like an easy task, get cables from computers on tables to a switch on a shelf.  No big deal right?  That is what I thought too.  Since it is an elementary lab all sorts of weird things come into play.  The cable cannot be hung under the tables.  The first graders feet swing there.  I cannot tape them to the bar at the back of the tables because the third graders rest their feet there.  So I am back to the walls.  Now realize this is a very low budget operation.  No nifty cable channel at several dollars a foot to hide the cables in.  I found some stick-on cable hangers at Home Depot and a couple of I-bolts to screw into the wall to tie the network cable to at the switch.  Not elegant (ever notice how elegant and price seem to have a bit of a direct correlation?) but functional and better than cables stapled to the wall.  The cables will still be hanging on the wall but now they will be an organized mess.  I also bought some rainbow colored Velcro straps to bundle the cables with.  Add color to ugly and it is still ugly but now it is ugly with pretty colors.  The lab has a couple of islands of computers.  The network cable used to be stapled to the ceiling and just hang down to the islands.  Again it lacked visual appeal.  I am going to blow the big bucks here.  $30 gets me 15 ft of that rubber strip that cables can be stuffed in to run across the floor to the wall.  Much better than the ceiling dangling motif.  I am also going to add a couple of switches to the tables to reduce the number of cables running around the room.  I have a lot of 8-port switches in my stash.  I can get them free from the Montana State surplus warehouse.  (This is also where I get my computers, monitors and printers.  Free stuff rules.)  I am going to actually make custom cables for most of this operation.  Cables cut to the right length will help a lot to get rid of the cable mess.  Putting RJ-45s on the end of cat-5 cable can be a pain but after the third or fourth one it becomes an art.

Now a public school with a real budget would just buy wireless cards for the towers and be done with cables completely.  I am going to do this lab for about $50.  That we can afford.

The decision to redo the lab was started on a really weird issue.  Half of the elementary lab suddenly decided it would not see the network.  One wall of computers was fine, the rest not so fine.  After an hour of trying to find who was plugged into what because I thought it was a bad cable in the mess of cables I just started unplugging everything.  When I plugged it all in everything came back up for a couple of seconds then lost the internet again.  Let’s see.  It worked fine last week and it does not work fine this week.  What has changed?  I still do not know what started the problem but I think it was an IP conflict somewhere between two computers in the lab.  Why they suddenly decide to be unhappy now makes no sense but whatever.  After changing some computers to dynamic IP addressing the problem seems to have vanished.  I need to check every IP address in the lab and match computer number, computer name and IP just to get things organized again.  After I get the cable mess less messy.

Oh, the exciting life of a school techie.  No expensive certifications or CS degrees needed.  Just the ability to unscramble cables and spell “ip”.

It is over and it has started.

August 1, 2016

Well the Butte 50 mountain bike race is over.  I did not make it to the finish line.  I had to quit at 30 miles.  I started cramping at about 20 miles and it reached the point where I could put no pressure on the pedals.  I had to walk everything that was up.  The water and electrolytes were OK; the hot weather conditioning was not.  It was in the 90s which is HOT for western Montana.  I am a bit gimped up right not.  The cramps ripped the heck out of my quads.  Stairs are a real joy at the moment.  A large number of people had major heat issues.  Next year I will either do the 25-mile race or help with the support team.

So I am back in the office today trying to figure out how I am going to manage the next year.  The elementary school has moved the pre-school to a church a mile or so away.  Apparently I am their tech support.  Of course the powers did not discuss the possibility of me being able to support them with a half-time tech schedule but I am used to not being in the loop for things that involve tech support.  That would make life too easy.  We shall overcome.  Besides, how much tech support can a pre-school need?  Cackle!!

I have to start working on my gaming course this week.  I have about 13 kids signed up for the course and some of them are going to require I actually know what I am doing.  Smart, ambitious kids can be such a pain.  No more naps for me.  I have a warm and fuzzy as to what I am going to do but that really is not enough for the first day.  I am going with Gamemaker using the Gamemaker Language (GML).  There is no drag-and-drop, the kids actually have to code.  GML is very C-like with semicolons.  It is close enough to many languages that if they have to use another language they will have a good foundation.  I looked at a large number of options but considering the make-up of the students (freshman to seniors and zero to two years of programming experience) Gamemaker seemed to fit the best.  I wanted something that they actually had to write line code, had a book to act as a guide, would result in some usable game products and would be fun for the kids.  I looked at Unity and a couple of other like game engines but the learning curve looked a bit steep for a first try.  Gamemaker also does not require much in the way of a computer.  An important factor when the kids are having to use their own laptops.  All my CS courses require the kids have their own laptop or do a long term loan from the school.  No high tech CS lab here with all the stuff needed already installed.  We have all sorts of fun learning install issues.  CS down in the mud.

Time to run to Best Buy and get a DisplayPort to HDMI adapter.  Lenovo computers do not have HDMI output any more.  Learn something new every day, especially when you look all over the computer trying to find the HDMI port on a new computer.  School IT is never boring.

It is summer: Lots of bike, a little IT.

July 19, 2016

I have spent the spring and summer on my mountain bike training for the Butte 50 on July 30.  This is a 50-mile mountain bike race in the mountains above Butte, Montana.  It has been categorized as one of the toughest 50 mile races in the US.  I did it two years ago.  Took me 10 hours on the bike.  It is a loop but I swear there is a lot more up than there is down.  Time-wise there is definitely a lot more up.  I am feeling pretty good about it this year.  I cut way back on beer in an attempt to lose ten pounds.  Ten pounds is a lot of weight on a three-mile climb.  So far I have managed to lose five pounds.  About what I expected.

The Butte 50 entry is a lottery.  I keep winning the lottery.  I won last year but could not ride due to a health issue.  Why can’t I win a lottery involving money?

I did a 46-mile mountain bike race a couple of weeks ago.  My goal was that nobody older than me would finish in front of me.  I reached my goal.  Of course I was the oldest rider but if I over look that little detail I am good.  Oh, and I was not last.  Close, but not last.  And I did not know I was the oldest until after the race.

If I had a higher IQ I would not sign up for this kind of thing.  There is just something in me that requires a physical challenge in front of me.  I get plenty of intellectual challenges being the IT department for the school.  This is about the only physical challenge I get other than riding with friends.  I used to run a lot and do marathons but the Achilles tendons are toast from too many miles with a pack and from running.

I did 21 miles of the course in 4 hours Sunday.  This week is a taper down week and next week is a maintenance week.

IT-wise today is a replace the school’s main firewall/router day.  The present router is old and makes me nervous.  I bought a nifty new Barracuda router.  I am not installing it.  I have a local guru and tech support.  Yippee.

 

An example of an IT failure.

June 29, 2016

At one of the blogs I visit regularly (https://codinginmathclass.wordpress.com/) I read this:

“At the beginning of this school year, I purchased licenses for MinecraftEDU and I love it. Unfortunately, as you can tell if you follow the link above, the old MinecraftEDU is now in transition. Microsoft is re-writing and re-releasing the educational version as Minecraft: Education Edition. I would love to use it, but it’s only going to be available on Windows 10 and my district’s IT department has been very clear that we are not moving to Windows 10 this year. … It is extremely frustrating – I believe in this tool and think our kids will really benefit from using it in classrooms, and our progress as a district has been completely shut down.”

This is where I start to rant and wave my hands.  A school IT department has only one major priority, supporting teachers so they have the tools to teach.  An IT department that makes a decision like not upgrading to Windows 10, and thereby affecting curriculum, needs to be evaluated.  I can understand not upgrading a whole district to Win10 in one summer.  A big district can take a while and they may not have the staff or expertise to do the upgrade in bulk.  But to not do a limited upgrade for a teacher that needs it to teach has no excuse.

I am the IT guy at a small private school.  I operate on a very limited budget.  (Not all private schools are rich.)  I have had a scattering of Win10 computers through my school for a year just to test if there were any issues with group policy or the domain.  I have managed to upgrade to Win10 this summer with no problems.  The upgrade from Win 7 or 8 is idiotically simple.  I just do not understand how an IT department has not been preparing for this upgrade for at least a year.   (More hand waving here.)

One of the major tasks of an IT department, be it a one-man-band or a large district department, is to look down the road to the future.  It has to make plans to implement changes to keep up with the changes.  It looks like this department has failed.

Perhaps I am being harsh.  Perhaps there is some extenuating circumstance in this district I do not understand.  There are a lot of things I do not understand here.  What I do understand is it is the IT department’s job to support the teachers and to find solutions for teachers, not to put limitations on teachers.

I could rant on here for quite a bit more but it is late and I have to go to work in the morning.  I have IT work to do so my teachers will have no limitations caused by IT.

Powerschool and I: Angst issues

June 27, 2016

I am sitting here staring at my Powerschool screen.  I have made a booboo and do not know how to fix it.  I am waiting for PS tech support to give me a call.  Ever have one of those jobs where you do not have a clue what you are doing and have to do it anyway?  That is me and PS.  I have been the PS guy for 10 years and the thing is still a pain in my rear.  I have never been to training in PS, everything is learned by trial and error and then calling tech support.  (Luckily PS tech support is pretty good.  They speak American.  Sometimes with a Southern accent but we manage.)  PS does upgrades a couple of times a year.  They tweak the interface just enough to make something different.  They do not tweak the documentation to keep up.  Bad Powerschool.  Bad.  Bad.

Every year I have to go through the End-Of-Year process.  The EOY process is this semi-convoluted thing that promotes all the kids to the next year.  Sounds simple.  It is not.  There are all sorts of preliminary things that have to be done first and those upgrades seem to change things just enough to screw me up.  One of the prelims is to check student registration dates by running a little built-in process.  The directions then say fix all the errors.  OK, how do I do that?  That is assumed knowledge and therefore cannot be explained in the document that tells you to run the check in the first place.  There is also no way to import information, like the next year’s school dates for semesters and quarters, between schools.  Having to do it three times can lead to typos.  I have made a typo and there is no Delete option so I can go back and fix my typo.  Now if I had an eidetic memory and good documentation I would be in good shape.  My memory and the documentation are both in rough shape so this once a year process is pretty sketchy.  If not done right all sorts of bad things happen.

I am sure PS will call and tell me I can fix that by accessing the Oracle database.  Uhh, yah, sure, right.  Like I go there regularly.

So right now I am suffering a little angst.  I am contemplating my retirement options.

PS called and he fixed the problem remotely.  Goody.  I ran the next error checking report.  Seventy some-odd errors.  I am back to contemplating my retirement options.

Of course having these little issues does help me to understand what a student feels like when they have something in front of them they have very little comfort with knowledge-wise.  Like a new programming assignment when they really did not understand the last programming assignment.  Angst.

Sneakers rule!

June 17, 2016

The sneaker install of Windows 10 is going.  Notice I did not say “going well”.  It is absolutely amazing the number of computers in the school that have issues that no one had bothered to tell me about.  Computers with “trust issues”, dead monitors, no internet, hard drives that sound like a blender full of rocks, ten-minute boot times and so on.  I teach half time so I do not run around the school regularly checking computers and I do not have any nifty software to monitor the status of computers on the network.  If someone does not tell me they have a computer with issues I do not know about it.  So along with the install I am fixing all sorts of weird things.  I am also finding that although Win10 will install on a computer with only 1 gig of RAM, it is not happy about it.  I have a few computers where it just will not go.  The processor is to old.  Time to contact the Montana State recycle warehouse to see what they have.

This sneaker install is the only way to go.  I get to look at every computer in the school.  Slow but needed.  Some of the schools use a server to image their computers.  I do not have enough computers of the same brand to make that worthwhile.  Another reason for the walk-about install method.  Most schools have a computer rotation schedule.  I rotate a computer when it catches on fire or the processor is older than my students.  (Yes, I did have one catch on fire.  Short in the power supply.  Sparks out the back and smoke.  Kind of cool and lots of excitement for a couple of minutes.)

Right now I am really promoting the BYOD (bring your own device) approach to the kids.  The more BYOD laptops, the fewer school computers I have to keep alive.  Since there are Windows laptops out there for $200 I do not consider getting a laptop a difficulty for a kid.

My programming classes are required to have a laptop.  I have loaners if there is a money issue but I do not set up the loaners for a class.  The kids install the software, they deal with saving to the cloud, they deal with video card issues, they deal with wireless issues and so on.  In other words, they learn the hardware aspects of CS.  I figure if I have to know all this random hardware stuff to do my job I might as well teach them what I have learned.

Right now I am learning about SSL certificates.  I had to get one for a third party application in Powerschool.  Yesterday I could spell SSL.  Today I sort of understand what SSL is all about.  The trouble is installing the SSL certificate seems to have killed my Powerschool.  What joy.  This IT job is just chuck full of exciting and educational events.

The Search for the Holy Grail

June 1, 2016

Next fall I am going to teach a course with Unity 5.  The fact I know nothing about Unity 5 does not bother me too much.  I do not know a lot about programming and have been teaching it for 30 years.  Find a good book and stay ahead of the kids.  (Unless there is a really smart kid, then just get out of the way.)  So I have been looking for a good book.  Now comes the bother.  There are many books on Unity 5.  Which one to buy with my limited purchasing funds?  Those funds that are in my back pocket so I am not buying a bunch to try.  Most people are suggesting the video tutorials produced by Unity.  I have done a couple of those and they are pretty good but they are videos.  Just not the same as a book.  A book I can tab.  A book I can thumb through quickly to find what I forgot from yesterday.  A book has a table of contents and an index so I do not have to scan back and forth looking for the right moment in time.  So I am looking for a book.  And a cheap book at that.  When I decided to teach Python a few years ago I had the same problem.  Lots of books.  In my internet search for a Python book I stumbled on to “How to Think Like a Computer Scientist: Learning with Python 3”.  A free downloadable book.  Best kind.  Usually you get what you pay for.  Not in this case.  It is a great book for Python.  Especially since it is available in Word.  I can edit it!  I can put notes in it.  Jackpot.

I continue the great book search of Unity 5.  I have found a few book-ish resources but nothing that avails itself to being printed and stuck in a binder so I can scribble in it.  It has been a while since I have taught myself new software and I am finding that it takes a bit more work to stay on task than it used to.  Sitting in front of a computer in the summer is just not as much fun as mountain biking in the summer.  The book has got to somehow manage to keep me focused and interested.  Good luck with that.