Archive for December, 2015

Can a non-gamer teach a game programming class?

December 26, 2015

I had a kind of epiphany today.  (My epiphanies are usually a “duh” to the rest of the intellectual world.)  For the last year or so I have been tinkering off and on with Project Spark.  Nothing serious, just enough to get an idea of what it was all about and if it would be worth using in game programming class I want to build.  I had reached the point where I decided I need to sit down and spend a few hours of serious tinkering to get the software really figured out.  Last year I had one of my seniors tinker with PS for a while during class.  He was into Minecraft so I figured it would interest him.  Forty-five minutes later he had a pretty good game up and running.  Terrain, characters, programming and all the rest.  A bit rough and simple but it worked.  That is what convinced me this should not be too hard to get a handle on.  After about an hour I was wondering how he was able to get what he got so fast considering he started from scratch.

I regularly teach kids who are smarter than I am.  Been that way since I started teaching.  It is not that I am particularly dense or anything (no, you may not get my wife’s opinion) it is just there are a lot of smart kids out there that are better than I am at certain tasks.  This kid was one of those top five percenters so I figured that must be the reason.  I continued to tinker with the determination to get serious with PS.

Yesterday, Christmas, the wife and I went over to her niece’s for brunch.  The niece’s thirty year old husband Henry is a gamer, big time.  That is what he does for entertainment.  For hours.  I figured I would introduce him to Project Spark just to see what he thought of it.  Unlike my student I watched Henry work. It was very interesting to watch a pro at work.  His gaming experience was obvious.  He expected to be able to do something and looked for it.  He understood characters have different strengths and weaknesses.  Just in his tinkering he was building a game.  Henry is not a computer geek.  He is not a programmer.  In fact I do not think he has ever programmed in his life.  He took one look at the brain code and had the idea.  Then it hit me.  The epiphany.  Building a game with PS is a gamer thing.  I am not a gamer.  I do not know what a good game should do or what characters should do.  The youngsters (when a 30 year old is a “youngster” then you know you are getting old) are familiar with computer games.  They understand the play, what to expect and their fingers fly with the controller.  They have seen enough variants of video games to come up with a basic generic game without thought.

I now realize that to teach a half way decent game writing/programming class I should be a half way decent gamer.  I should know the various game genera, plots and schemes.  Not going to happen.  I am running about 10 years behind.  Five minutes of playing a first person shooter and I start thinking about the laundry I should be folding.  My idea of a fun game is Lightbot or CargoBot.  Not exactly what most of my students are in to.  I do not think this means gamers can instantly become game programmers.  It just means they have a better starting point for understanding the basic concept of what a game is all about.

I do believe I have a solution for the proposed gaming programming class I want to offer next year.  I am never going to be a gamer, but I expect to have a room full of gamers taking the class.  I am going to have to learn a lot from those kids.

Christmas break but still at school

December 21, 2015

It is Christmas break so it is time to work on Powerschool.  This year I am upgrading the server.  The old one is old, in the 10 year plus range.  A hard drive developed an orange blinking light.  It is a RAID 5 so I could have just bought a new drive and replaced it but all the drives are old and it was not worth the risk of more going bad.  A new server was due.  So I follow the Powerschool directions on how to export the data from the old server and import it to the new.  And sure enough it does not work.  I have had issues before doing an upgrade like this where the issue had to do with RTFM.  (Read the f#$@in’ manual.)  All my fault for missing something.  This time I was anal.  I read the directions before doing the export and import.  Heck, I even did a practice run.  Nope, no good.  Powerschool is dead.  Errors up the wazzoo.  Call Powerschool support.  Level 3 could not see the problem.  I am waiting for level 2 to get back to me.

I do not mind.  Powerschool has good support.  What I would like from them after they fix it is an explanation of what I did wrong or what went wrong.  They go in, tinker all over the place and poof, it works.  I am just the kind of person that wants to know how it works and how to fix it myself.  For the next time.

Oh well, time to do some Christmas shopping.  I have not done any yet.  This will be the wife and I’s first Christmas by ourselves.  The daughter is headed with the boyfriend to California to have Christmas with his parents.  Must be serious.  The wife and I are trying to hang in there but not doing so well.  We got the tree in the stand in the living room but that is it.  No lights, no ornaments.  I think this first one is going to be a struggle.  I would assume it gets better with time.  Maybe not.

There Should Be A Law

December 17, 2015

Several years ago I discovered Project Euler.  A couple of months after that discovery I came up for air and discovered the world had moved on while I was under the Euler spell.  I still have a terrible jones for Project Euler but I have learned to Just Say No.  Then Mike Zamansky, who I had learned to trust, posted this.  Advent of Code my $#@.  “Advent of Time Lost” is more appropriate.  Or maybe “Advent of There Has Got to Be a Better Way to Code This And I Am Going to Spend an Inordinate Amount of Time Finding It”.

Now I am not a good coder in any language.  I teach high school programming and every bit of programming has been learned while teaching high school programming.  This does not lead to good technique.  But I can beat a problem to death in several languages with almost equal lack of finesse.  I look at Advent Day three (I got that far in an hour or so) and think “I can beat this to death with a big matrix of ones and zeros but that lacks finesse.  There has got to be a better way.”  I have been trying to think of the “better way” solution for about three hours.  I have kids to teach, dishes to wash, laundry to fold, dinner to eat, a snow board binding to build a wedge for, a Christmas tree to put up before Christmas, you know, the usual life activities.

I sent this to our business teacher who teaches Programming I (Scratch, Small Basic, and very basic Visual Basic).  I thought to share this black hole of time.  He wanders in 5 minutes later with a solution for the first day elevator problem.  “Count the left brackets, count the right brackets, subtract.”  All with the “find” in a text document.  So much for my cute little Python program.

I have a feeling the code for these (if it is a code solution and not just counting and subtracting) in each case is going to be trivial.  It is the finding of the “best” way to solve the problem that is going to take time.  Thank goodness there is no school for a while after tomorrow.  I can dedicate many wasted hours to solving the stupid things.

There are evil people lurking across the internet just waiting to entrap the innocents of the post reading world.  Mike Zamansky is one of them.

December 11, 2015

SMART technologies (the folks that make SMART boards) have come out with the latest and greatest in classroom tech.  The new SMART Display is a big touch TV.  No projector, no shadows and no bulbs to burn out.  Looks like a pretty cool device.  The trouble is it has the same limitations as a SMART board.  It takes up limited wall space.  Our classrooms have one usable wall for whiteboards.  The interactive projectors SMART sells, which they are discontinuing, are prefect for our rooms because they just project on any wall or white board.  No lost wall space.

What is really interesting about the SMART Display is they claim it will last 15 to 20 years.  Who would want it to?  I have a feeling in 5 years there will be a baseball sized device that bolts to the wall that will be the projector and the finger sensor.  Anyone making technology with a 15 to 20 year life span may have the right intention but maybe not the right look at the future.


The Wife is Retiring from Teaching

December 4, 2015

After 31 years of teaching my wife has decided to retire.  She was deathly sick starting February and did not get back to the classroom until the start of the new school year.  It appears that her sickness has done more than just screw up her nervous system, it has greatly reduced her tolerance for assholes, be they adult or student.  She loves teaching, she loves working with kids but the inability of the public school system to manage discipline without a stack of paperwork has pushed her over the edge.  The inability of the public schools to fire incompetent teachers and administrators has corrupted the system to the point she is happy and relieved to get out.

She is presently teaching what many teachers would consider a dream curriculum.  She is a Project Lead the Way teacher for 6th, 7th and 8th grades.  Her courses are Intro to Engineering, Robotics and Medical Investigations.  All are hands-on lab type classes where kids get to explore and build.  She loves teaching these classes and she loves the kids in them.  The problems are:

  1. having 30 kids in a class,
  2. having the two or three kids that are unmanageable to the point of being a threat to the other kids and yet are not removable from the room because more paperwork is needed,
  3. having a tech based class without the needed tech support,
  4. having a dean of students that excuses a student’s poor behavior by the “Johnny is having a bad day” method,
  5. and having parents that have absolutely no remorse or feel no responsibility for the poor behavior of their children.

You would think that after 31 years of public school teaching she would be used to this.  She says in the last 5 years the paperwork has increased at the administrative end of teaching that it is impossible to really teach.  More hours are spent generating a paper trail than is spent teaching.

I know many of her fellow teachers.  They all want out of teaching.  They are counting the days until they can retire.  There is something wrong here.  Her school has developed an Us vs. Them mentality.  Administrators vs. teachers vs. students.  I have teacher friends in the three public high school in town.  All three seem to be suffering this same malady.  I am not saying all the public school in the nation have this issue but it does seem to be a trend.

I worry for public education.  Standardized test scores used for teacher evaluations, the inability to get rid of the incompetent because of tenure, the trend of bad teachers going on to be bad administrators, the suggestion that more money will save bad education, the fear of lawsuits if Johnny does not graduate, the rather shaky method of financing education and a host of other issues just point to a very bad future.

Insult programming

December 3, 2015

I got the Insults program done.  No big deal other than digging through the multiple Python methods that might make the string management easier.  The split method makes getting the single words out of the comma separated lines trivial.  This little program seems to be a great example of using the right language for the task.  Doing this in Small Basic would be a real bugger.  Loops looking through the line for commas and building the word as it goes.  I am not even sure it could be done in SB.  At a quick glance I go not even see any string handling methods.  Using a language like Python designed for string manipulation with a large number of methods that would seem to handle almost any string handling situation is almost anti-climactic.  This is going to be one of those situations where I am just going to have to restrain myself from giving too many clues as to a solution to the program.

I am considering that once they complete this in Python they do it in Visual Basic.  Might be fun.  Of course the minor detail that they have never worked in VB makes me hesitate a little but I hesitated jumping out of that perfectly good airplane the first time and still ended up going out.  (Alright, I got pushed but I still went out!)

I am somewhat convinced giving kids assignments without an extensive lecture ends up with more retention on the kid’s part.  There is undoubtedly some nifty research out there that proves this one way or the other.  I do this in my math class fairly regularly.  The kids hate it.  “I have to read the book!?”  “Can’t you just tell me?”  The drawback is that the kids that try to learn by osmosis (sit, listen and hope) are going to go down in flames.  In my programming classes the technique works pretty well.  Math classes not so much. Programming classes usually get a certain type of kid; a bit more ambitious, a bit more investigative and willing to do some above average head scratching.  Math kids are there because they have to be and most are not big fans of math.  Getting them to learn on their own is a constant struggle.  Maybe more like a war.

Back to the VB thing.  Hmmm.  Got to go tinker.

And Back to Python

December 1, 2015

So I got bored again.  We were toodling through the book just fine.  We took a two week divergence into Kodu because I/we were tired of book assignments.  We came back to the book.  Opps.  I hate doing chapter by chapter, do some selected assignments that just require looking in the chapter the assignments are at the end of, type teaching.  I want the kids to look, search, dig, Google, figure out and get frustrated.  In other words be like a professional programmer or a programming teacher.  So here we go.

Alfred Thompson was kind enough to share a text file listing Shakespeare’s insults.  There are three words per line separated by commas and maybe 50 lines (I do not plan to count them).  The kids are going to write a program that randomly selects two words out of the file and place them in a sentence.  (Doing this with Shakespeare’s insults does make this cross-curricular doesn’t it?)  No, the sentence is not going to make much sense but that is OK.  The string handling programmers of the world will think this is a fairly trivial programming assignment.  The rest of us are going to work at it.  The three words per line is going to be the fun part.  What separates the words (commas) and how to tell word one from word two from word three is going to be the puzzler.  Again the actual coding will be fairly trivial.  The head scratching to get to the coding is going to be the fun part.

We are in chapter 6 of the book.  String manipulation is chapter 8.  Lists is chapter 11.  I am simply giving them the assignment and the book and getting out of the way.  One of my four students will have the assignment done before I will.  It will be an ugly long no functions mess but it will work.  He is going to be really unhappy with me when I tell him to do it correctly.  We have been working together for two years and he refuses to do it correctly the first time.  We have sort of a game going.  He turns in an ugly mess, I tell him it sucks, he re-does it better than I could in half the time.  Smart kids are a pain.  Two of the four will get something nice in a decent time.  Number four will struggle all the way to the end.  He never quits though.

The balance on this kind of teaching is

1) the kid’s frustration level vs. learning on their own,

2) programming ugly vs. functions and my suggestions as to a “good” solution, and

3) using the book or Google to help finding steps to a solution vs. lucking out and finding a coded solution on the internet and just plopping it into their code and calling it good.

With a small class it is possible to watch them actually work and build the program.  I can see who has hit a wall, who has gone a direction that is going to cause them issues and who has found something to plop.  I did something like this last year with my senior programming class.  I had what I thought were two beautiful, succinct and minimalist alternative solutions to the problem.  One of the kids found a built-in Python function that made the program a 10 liner.  Smart kids are a pain.