Archive for January, 2016

Lego Land has mosquitoes

January 28, 2016

So I am going to use the Lego Mindstorms robots in my Python course.  The kids need to write the same simple program in NXT-G, Microsoft VPL and Python for the Mindstorms robot.  In order to start I had to reinstall the NXT-G firmware on the brick.  I had LeJos (Java) on them.  Should be easy.  Plug the brick in to the computer, download firmware to brick from the Mindstorms software.  Two days later (maybe 5 hours, never said I was smart, just stubborn) I figured out why it would not install.  One word: Arduino.  It seems the Arduino and the Mindstorms drivers do not play well together.  If you have used an Arduino on your computer it takes over and will not let the brick see the correct driver.  You have to delete the Arduino driver.  The Arduino driver is named Basso.  Basso does not want to delete.  In fact it does not delete.  You have to trick it in to stop working, then fire up the Lego driver quickly before Basso takes over again.  Notice the “quickly”.  I am not kidding.  Delete Basso, start Lego, flash the brick before Basso starts again.  Weird.  There is supposedly a cleaner method that requires deleting an ini file.  I could not find said ini file on my Windows 10 machine.  So “quickly” it is.

This is another example of look before you leap.  I plan to start with the Legos tomorrow.  I managed to get my firmware issues solved today.  Close.

I like doing these multiple language exercises because it takes the kids (and usually me) out of their comfort zone.  They have never seen NXT-G or VPL.  They have no idea how to get Python onto a Mindstorms brick.  They have to learn the language fairly quickly to meet the due dates.  Admittedly they do not learn a lot of the language but it is the paradigm shift I am after.  They have to figure out how to install firmware (hopefully it will install).  All of this requires reading.  Making kids read is amazingly difficult.  Kind of like making kids show their math steps on tests and homework.  (See for an interesting conversation on this topic.)  I like to make kids read.  If they learn to read they can do anything.  They could even become a programming teacher.  I have to go read now on how to make the robot do what it is supposed to do in the three languages before the kids figure it out ahead of me.  Smart kids can be a pain.

Something new, something blue

January 24, 2016

When it comes to CS curriculum I am a “the grass might be greener on the other side of the fence” type of guy.  (Sometime the green is mold but that does not stop me from continuing to look.  Always the optimist.) I am always looking to see if there is something new in the programming world for the kids and me to get excited about.  CS is an elective so it has to be exciting.  I also have the attention span of a second grader so CS has to be interesting for me to teach it.  (Yes, I also teach math.  I am one of those weird people that find math interesting.)  In my search for the greener side one of the things I have been looking at is Microsoft’s Project Spark.  If you are not familiar with it it is a 3-D game maker.  I have mentioned it in previous posts as a strong possibility for a major part of a game writing class.  It is REALLY cool as far as graphics go.  But if I am going to use PS I have to make sure to it works for the kids.  I had used PS briefly last year on the student owned laptops.  They could not log in to Xbox Live (required to use PS) while in the school but if they logged in at home then used the laptop at school PS work just fine.  This was something I had to chase down.  So I had one of my students try it on one of the school’s two i5 laptops.  Issues.  I hauled the laptop home.  PS worked.  I hauled the laptop back to school.  PS worked but would not talk to Xbox Live.  Just confirming the problem and making sure I could repeat it.  OK, it has something to do with the school.  Sort of “Duh”.  It did not take long to find out it was the school’s Lightspeed content filter.  A brief discussion with the Lightspeed support tech (another duh moment) and there was a solution for individual computers.  The laptops are not part of the school domain so Lightspeed does not recognize the login the same as to does the domain computers.  Something in the Xbox Live login is blocked in Lightspeed so the laptops cannot access Xbox Live.  This is a problem.  But at least I now know the problem and I have a work around.

This is one of those examples that really brings home the idea of trying something new somewhat extensively before handing it to the kids. The “grass is greener” can result in bad things happening.  Four or five years ago I got burned really bad from not checking out a very tempting teaching tool extensively enough.  I tinkered with Gamemaker and decided to give it a try with the kids.  There were a set of built-in tutorials that looked pretty good.  I worked through the first tutorial with no problem.  This is the point where I screwed up.  I started the kids without checking out the other tutorials.  The first tutorial went smoothly.  The next two were junk.  Errors, magic steps and just poorly written.  We had to bail out of Gamemaker.  Since then Gamemaker has written new tutorials that are very good.  I have also become pretty leery of something new so I fiddle a lot more than I used to.  PS is going to take some tinkering.

I am also not satisfied with Project Spark’s usefulness as a teaching tool.  It is super cool but will it actually offer something worth teaching?  Having a high coolness factor is not enough.

Another piece of greenery on the other side of the fence is Microsoft’s Creative Coding with Games and Apps (CCGA).  This is a free canned curriculum built by Microsoft using Touchdevelop and intended as an introduction to programming for middle school or lower high school.  I am not much for canned curriculum. I like doing my own thing because it is usually more directed for my students and more fun for all.  But free is always worth a look and it might fit with what my school is trying to do in our middle school.  The middle school programming teacher sees every student K-8 every two days.  She desperately needs something canned.  She has no time to build or tinker with a possible curriculum.  I do have time so I do the research and tinkering and pass it on to her.  The curriculum also looks like something that would work for a middle school after school programming club.

In February I will have the opportunity to attend a two day Microsoft seminar on CCGA.  I am very excited about this.  There will actually be other programming teachers there!  There will be teachers there that have actually used this curriculum.  You have no idea how big this is for me.  There is a second programming teacher in my school.  He teaches Scratch to one class of Programming I kids and is not really in to programming.  He survives.  Other than him I have not talked to another programming teacher live in like maybe six years?  Hot dang!  This is going to be like Christmas!  Did I mention I was kind of excited about this?  And it is only a three hour drive away (depending on the mountain passes).  That is like next door.

I do not think Toughdevelop is a replacement for Python, Java or Visual Basic but it does look like something that would get the kids interested in programming.

The “grass is greener” approach is not anything original.  It seems most of the programming teachers that have blogs or are on various web sites do the same thing.  Admittedly that is far from a random sample of programming teachers but the sample does say some programming teachers are constantly searching.  It’s not that there is anything particularly wrong with the tools we are using now, I think it is just that we like to play with new toys.

8 January: Not just your average date.

January 8, 2016

8 January.  Not a day that will live in infamy but it is at the top of my list of “days things happened to me that are important”.  My big three are the day I got married – 24 July, the day my daughter was born – 25 January and 8 January 1974 – the day I got off the bus at Marine Corp Recruit Depot San Diego and stood on the yellow painted footprints on the tarmac.  It was the beginning of my life.  Anything before that was trivial.  Ask any Marine.  I cannot really say this is necessarily a good thing, especially considering what it involved, but it is just what it is.  The next 4 years and 4 months were filled with the events that will affect me until I finally pass on.  I got to see a lot of the world; Thailand, Philippines, Korea, Okinawa, Taiwan, and Washington, D.C.  (I would really like to go back to Thailand now that people have quit shooting.  The other places not so much.)  The Marine Corps actually got me into teaching.  After Thailand I was assigned as a weapons and tactics instruction at Quantico, VA.  I taught Second Lieutenants how to shoot things and blow things up.  A classroom with 40 or so very attentive students.  (The attentive part is not like teaching kids but you get the point.  It is amazing how focused students are when using weapons or explosives.  Mistakes can be very bad.)  I liked figuring out how to show people how to do difficult things.

I hung around in the military for 38 years with a one year break after the Marine Corps.  (It took me that long to wind down.  PTSD had not been invented yet.)  8 January led to my BA in Education and my MA in Education.  Heck, it even paid for them.

How many people can point to one date in their life and say this is when things actually started happening?

What is a “game” programming course?

January 7, 2016

I have been contemplating my proposed game programming course for next year.  Previous experience has taught me that teaching a game programming course is different from a regular programming course.  With a regular programming course the purpose is to solve a problem with a particular language.  The problem is usually pretty well defined, especially if teaching the course with a textbook, and is usually fairly limited.  In a game course not so much.  Yes, the kids can be given a game to write with well-defined rules and objectives but there always seem to be refinements and add-ons.

That got me thinking of what is the objective of a “game” course?  Originally my intent was to give the course a very tempting label to attract kids into the course.  I would teach a programming course with a game building language (Corona, GameMaker, TouchDevelop) by working through the various tutorials.  In other words, a syntax course.   The students in the course have already had at least one programming course so there is less need for teaching the basics of programming: sequence, loops, etc.  This is what I have done before.  It was a semester long Corona course were we built an oil drop program just to play with gravity and shapes bouncing, a whack-a-mole game for Android phone, and a very basic Angry Birds game for Android.  Overall I was satisfied with the course and the kids learned some more programming.  Giving a course a title and objective that would tempt kids into the course is a perfectly reasonable strategy, at least as long as programming is an elective that has the reputation of being “hard”.  But it was not really a “game” course.

I have been thumbing through the Microsoft Creative Coding with Games and Apps (CCGA) with the intent of offering it next school year.  It is tempting to have a nice cookbook to follow.  From what I have seen so far it is also a syntax course built around games.  Again, this is not a bad thing, it just is not a real game course.

What I would like to do is start out with the typical syntax through a game language pretty much like I do now and then migrate into a game design course.  The objective would not be to design the next Angry Birds but to understand the philosophy of game design.  One of the commenters on my last post, Brian Sea, suggested “The Art of Game Design” by Schell as a starting point.  I hate dropping $60 for a book but it looks like a worthwhile read.  Missoula also has some small programming based businesses.  One of them that I have visited with my class, OnXMaps, writes an original software product.  Although it is not a game it is an original product that requires more than just programming skills.  I need to dig up some software design people to come into the class.

All of this is part of my desire to teach Computer Science and not just programming.  No matter how I look at it programming is no different than teaching welding or wood shop.  It is a job skill.  It is a pretty handy job skill, just like wood working and welding are handy, but still just a job skill.  I am thinking if I can introduce a design and concept thread in the game course I can get more of a higher level thinking skill going.

And besides, maybe one of my students will develop the next Angry Birds and remember who got them started and contribute to my retirement fund.