Archive for December, 2014

Teaching with GameMaker: A Quick Overlook.

December 24, 2014

Teaching with GameMaker

For the last 3 weeks I did a little section on GameMaker Studio 1.4 in my Programming I and Programming 4 classes just to break up the semester.  I did this a few years ago with GameMaker 8.1.  When I did it with GM8 the tutorials were so bad I had to stop the lesson.  This time there is an excellent set of tutorials available on the Yoyogames website.  As usual there had to be some issues.  I had 15 kids total.  All were using their own laptops or a school laptop.

Install issues.  Out of the 15 there were 2 major install issues.  I am still not sure what went haywire but it took multiple un-installs and reinstalls, a bit of registry cleaning, and some deletion of GM files in strange places to get it working on these two computers.  The laptops were not abnormal in brand or setup.  After 2 years of doing BYOD in programming I am getting used to weird things happening for no apparent reason.  It is part of the method.  We did get GM running on the 2 reluctant laptops but the exact issue was never really determined.

Crash issues.  Two kids (not the same with the install issues) had GM crash occasionally.  They would hit the run button and blink, GM would close.  This was not consistent which makes it pretty much impossible to trouble shoot.  I was not able to do any real trouble shooting on this since the kids needed their laptops and could not leave them with me for testing.  GM saves when it runs so if the kids had not saved manually prior to trying to run the game their work was gone.  They learned to save manually.

Student interest issues.  I pretty much had three levels of interest.  A couple of kids would not be excited about programming if I brought a puppy into class every day.  They did the minimum and suffered the whole time.  About eight of the fifteen kids were in the “This is kind of cool but what do I need to get a good grade?” category.  Typical of high school main stream kids in any class.  Four of the fifteen did above and beyond and were willing to tinker on their own.  Not geek kids but they just liked making their own games.  They would have been more than willing to dive into it deeper.  One kid went into overdrive.  He did one of those “Opps, it is 2:00 in the morning and I have done none of my homework for tomorrow!” moments.  He got into the line coding and some of the fancier features just from tinkering.  He is planning to be a CS major somewhere next year.  Six foot 2, 235 lb football playing programming geek.  He crushes the stereotype.

Overall impressions.  The install issues and the occasional crashing puts GameMaker in the “think twice before using” category.  In is just so tempting though.  A drag-and-drop like environment yet a full coding environment.  It is an incredible attractor for most of the kids, they can actually see themselves making a real game.  In order to get a better feel for what is there I need to get into the coding environment.  I will do that in my slack time.  I actually think GameMaker is a good gamble.  I would be hesitant to use it as primary language/application in the curriculum due to the install and crashing issues but to get some kids a little motivation it scores big.  Of course the fact that it is free means nothing is lost if it things really go bad.

I will do GameMaker again as a break.  It is just too cool to avoid.

Tech support? What tech support?

December 19, 2014

I got a bit of a chuckle today.  Mark Guzdial sent me a copy of an on-line book he is writing for a teacher education program.  The interactive book uses Python as the language.  This is going to be an incredibly useful tool and I am really looking forward to when I can pass the word that it is available for prime time.  I suggested he include an appendix for teachers on how to install Python and a text editor in case the teacher wants to play with Python outside the interactive book.  His reply was “Can you say something about why it’s important to you to install Python from scratch?  At least around here, our teachers are not *allowed* to install things themselves on the computers.  It’s all locked down by tech support.”  Ah yes, the world of schools with responsive tech support.  I think most of us live in the world of non-responsive or very short handed or non-existent tech support.  I am the tech support for my two schools, PK – 12.  About 500 kids, about 500 computers plus the BYOD issues.  And I teach three upper level classes.  From my experience this is the norm; part time techs.  I make all the teachers administrators on their own computers so they can install the software they want to look at.

Montana is made up of little schools.  Most of these little schools have either no on-site tech support or have a teacher that does what they can when they can.  A programming teacher is on their own in more ways than one.  Choosing a language, learning the language, finding a curriculum, finding resources, finding computers for a programming lab, deciding to go BYOD with all the attached hassle of 5 different PC brands and Mac in a pear tree, and, perhaps worst of all, finding the time to do all this stuff.

Mark’s interactive book is going to be a winner with these small schools that want to offer a programming course and have a willing but un-trained teacher.  A new teacher can work through the book and get a pretty good grasp on what programming is all about and probably offer a decent first time programming course with the knowledge learned.  But if the book is going to make it in these standalone environments there has to be a little bit on how to get things running.  Installing Python is not rocket science.  Finding an editor and installing it is not rocket science.  But being rocket science or not does not mean it is obvious to a first time teacher or, even if the school does have tech support, that tech support knows what to install.  They are going to need a little help.

Just blathering on programming stuff

December 17, 2014

This is one of those “just blathering along” posts.  I sort of had several things come together at once so I just blended them all into one stream of conscious mess.  My wife teaching programming for the first time, meeting some teachers that will be teaching programming next year with zip for background, meeting a teacher that wants to teach programming in his small school (80 kids in the high school) yet cannot find any slack in the curriculum, and talking to my local university people with good ideas but not a lot of understanding of reality.  So here it flows.

My wife is teaching programming for the first time this year. She is teaching a curriculum called Project Lead The Way and the 8th grade part of the curriculum is robotics.  PLTW gives teachers a seven day course on RobotC and Vex robots before they teach the curriculum.  The training consists of working through the exact same material the students will be working on.  Very cookbook material.  Prior to that she has had no programming experience or training.  She is having fun but is a bit frustrated.  As usual the frustration is not from the language (good tutorials there) but from the IDE, the set-up (waiting for the IT dude to install necessary software) and lack of troubleshooting experience.  Little details like naming the motors correctly.  I understand the concept behind the PLTW program, train as many teachers as possible as quickly as possible and hope for survival of the fittest.  My wife is surviving because she is in to this kind of thing; robotics, electronics, gears and so on, but she is staying just ahead of the tidal wave.  The idea that if you understand what the kids will learn you are ready to teach the class is a bit ridiculous.  Kind of like a high school math teacher knowing math at just the student level.  No pedagogy, no foundational understanding, no background and no ability to go to higher material.  It is a method, just not a good one.

Most of the low level CS/Programming teachers are not programming whizzes.  They are business teachers, math teachers, elementary teachers and other teachers who when they started their teaching career had no idea they were going to end up teaching programming.  In the meeting I had last week that is what the room was filled with.  There was one teacher in the room with a CS degree (not me).  The rest were getting ready for on-the-job-training or learned on-the-job (me).  This makes languages like Scratch, Small Basic, Alice and others that are a single button install and then use it immediately with their own IDEs extremely handy. These languages must also have good tutorials or textbooks written for beginning teachers and students.  These tutorials have to show all the steps and make no knowledge assumptions. For a first year programming teacher these little details are by far more important than the fact these are not “real” programming languages.  Python, Java and the like with their less than trivial install and IDEs can be very intimidating to a first time teacher even before any code is written. If CS ever achieves the position of a required class a lot of teachers are going to have to be found, teachers with maybe, if they had the time, 1 or 2 courses in programming. More likely these teachers will have zero experience in programming.  For the first couple years of teaching programming they are going to need simple plug-and-play languages. If the language required was Python or Java or any of the other “real” programming languages my wife would not be teaching 8th grade programming.  I do not think there is any way an in-experienced teacher could get up to teaching speed with a one week “follow the cookbook” Java or Python course.

I do feel an in-experienced teacher could do something with Python if they have time to work through a well prepared teaching program.  In a week?  No way.  In a semester?  Definitely.  (Que in here a Python based teacher ed program being developed at Georgia Tech.)  But is it really the correct direction for a first time teacher with a first time group of main stream kids?

First time kids are usually freshmen or sophomores.  These kids have the attention span and focus of a puppy.  At least fifty percent of those first time main stream kids are last time kids.  A taste of programming and they are good for life.  An even higher percent will be last time kids if they are not shown something fun.  (After all, the reason many programming teachers are programming teachers because they think programming is sort of fun.  Teachers typically do not teach electives unless they are having fun with the class.)  Kids are even less “no-fun” tolerant.  This is where drag-and-drop and game based languages come in.  It is amazing how hard kids will work on making a game with all the whistles and bells.  It is even better if the kid has their own computer to put the software on.  They will actually work on it at home!  For fun!  Zoiks!  At the moment I am using GameMaker in my two programming classes.  In Programming 1 I wanted them to see an example of game making software.  In my advanced class we needed a break for a few weeks from Java.  GameMaker is bad for students.  They have a tendency to forget they have other homework.  I love it.  Cackle, cackle.

Of the 18 kids we have taking Programming 1, 10 are going to take Programming 2.  My plan is working.  Now I have to come up with something for Programming 2 that will make them hang around for Programming 3 (Python dual credit).

High school and University CS – let the twain meet.

December 11, 2014

So I went to a meeting yesterday with several local schools and the local university CS department heads to discuss the state of CS education in the high schools and the direction of the university in regards to HS CS.  It was interesting not only for the discussion but for who was actually there.  Of the 20 or so high school teachers there were only 2, me being one, who actually teach CS.  The rest taught various apps classes or were Office teachers.  All the teachers, except for me, were part of the school business departments and that was their expertise.  The other CS teacher had just been made part of the business department even though he also teaches math.  I am confused.  How business and CS relate is sort of out there for me but whatever.

The discussion was led by the university, it was their meeting after all.  We discussed dual-credit CS courses that are already in place and some directions for the future.  Perhaps the most interesting aspect was the focus the university representatives had during the discussion.  They were mostly concerned with getting course work out to the students.  I have no problem with this, they have some very good ideas that I plan to look into in more detail.  The problem I had with the discussion was there was very little thought as to who was going to teach these courses.  It should have been obvious just looking at the teachers in the room that this was a huge issue.  All of the business teachers in the room talked about how ill-prepared they were to teach a CS course that included a major segment of programming.

All sorts of interesting things came to light during the meeting.  The university people were unaware that in order to teach CS a teacher has to have a CS certification for the State Office of Public Instruction.  The minor glitch is there are no institutions in Montana that award a CS certification without getting a degree in CS.  Those with a Business degree can teach CS but most business teachers have zero CS coursework or experience which makes them less than enthusiastic to teach the course.

The course the university people were excited about was “The Joy and Beauty of Computing”.  This course was designed at Berkley as an intro to CS/programming course.  Montana State University in Bozeman has been piloting their version of the course in the Bozeman high school with excellent results.  Students want in the course which is how I measure “excellent results”.  In order to pilot this course the first year MSU had advisors in the classroom from MSU to help the teachers learn and teach the material.  Outstanding!  Now the state university system is talking about making this program available state-wide, but without the advisors or any training.  Not so outstanding.

So the discussion started looking at some teacher training for the program.  The university wants to offer a one week summer course on how to teach this particular course.  There are inherent problems with on-site one week crash courses.  The biggest issue is cost.  Either the university has to find lodging for the teachers or they have to find their own.  Find their own immediately kills the course due to teachers being poor.  The university finding lodging means the teachers being in a dorm for a week during the summer.  Makes the course expensive for the university.  Better but still not good.  Teachers are somewhat resistant to losing a week of summer for something that does not result in a monetary return.  There is also the retention issue with cramming for a week.  Maybe the teachers would walk away with enough knowledge to teach this one course by being able to follow a cookbook but I am just not convinced there would be much carryover to other course needs.

In my State the need is for Programming I teachers and courses, intro level more in the direction of Scratch and Small Basic type programming.  The “The Joy and Beauty of Computing” curriculum, at least the one offered through MSU, looks like a Programming II/III course, it is a Python programming course.  Making a Programming I course out of this is almost guaranteed to trim down the number of students interested in Programming II.

In the very back of my brain are the old memory cells that remember the first year I started teaching.  I had just gotten done with a rigorous program of calculus, linear algebra, abstract algebra, statistics, and so on, all with 200, 300, and 400 level course numbers.  I was absolutely unprepared to teach freshman high school math, especially to the “regular” kids.  Some kid had to show me what FOIL was.  Factoring trinomials was not in the program for math ed majors.  Lots of learning took place that first couple of years, the most difficult of which was pedagogy.  I foresee the same problem with CS/programming.  If universities lead the way they are thinking of the needs of students entering the university.  Java, Python and the like will be what they see as a primary need for students.  The university will see the need for high school teachers at that level.  There is a very strong need for high school teachers at that level, no doubt about it.  The problem with that is that most high school students need the first level just to get started.  They need teachers that familiar with Scratch, Small Basic, Gamemaker, Blocky, Greenfoot, programming languages and CS concepts for the first timer.  In my experience the teaching pedagogy from Programming I to Programming II is completely different.  The PII kids are there because they want to be and they are into CS/programming.  You can just throw an idea at them and get out of the way.  Programming I is a very different animal.  They need to be coaxed, entertained, given regular reasons “why”, and do things that are fun.  Otherwise this will be their first and last programming course.  (Remember, CS/programming is an elective.)  The teacher training needs to be different.  A one week seminar on Python will not be a winner.

From this meeting I can see there is a lot of work to be done to get the high schools and the university thinking in sort of the same direction.  The need for certification was an eye opener for the university people.  It is the details like this that keep things interesting.  The panic in the eyes of some of the business teachers that are going to be teaching programming next year for the first time was awe inspiring.  Now if we can just get some results out of meeting like this I would be a happy camper.