A CS Field Trip – Oh my!

February 11, 2015

Yesterday I took my Java programming class on a field trip here in town to a company called OnXMaps.  OnXMaps produces property line maps and chips for Garmin GPSs and apps for iOS and Android.  The maps are primarily used by hunters.  OnXMaps designs the maps, the software and flashes the chips.  It is a fairly small company, maybe 30 people counting outside contractors.  The building is the size of a medium house.  The trip was absolutely fascinating.  This was not like touring Microsoft or Google, both of which I have done, where you may meet a member of a team that writes a part of some software you may have heard the name of.  Our guide was the chief engineering officer of the company.  Lots of experience with programming, managing software projects, marketing, and a general broad field expert.  We also sat down with the guy that is writing the iOS version of their software.  The guy.  The guy was about 25, was a CS graduate of Montana State University and was not a geek.  What more could you ask for in the way of a speaker?  Young, local and THE GUY.  My class has a number of seniors who are not shy so there were lots of excellent questions.  What language should we learn?  Pick one.  He knew eight and works primarily in Xcode, which he taught himself after getting this job.  He suggested Java as a good base language to build others on.   OnXMaps uses C#, Java, Python and Xcode depending on the platform and the purpose.  He said he was not an expert in all of them but he could make himself one if he had to.  Is a CS degree a good thing to have if you want to get a job like this?  Absolutely, positively a must.  His comment and our guide’s comment was that the degree gave you the underlying foundation needed to be a good programmer.  It also taught you how to learn.  Both had experience with self-taught programmers.  They said the programmers were an expert in that one language but did not have the background needed to expand easily.  Our guide made a very interesting comment when we started talking about schools. He said when considering a school to look at who hires the graduates and how many are hired directly out of the school on graduation.  That is an excellent measure of how industry thinks of the quality of that school.  Something I had not thought of.  Luckily MSU is a heavily recruited school for CS.  UM not so much.

I have got to find more industry based field trips.  I could take them to Logisys where I worked for 6 months but that would only convince them to never work in the CS field.  Logisys was Dilbert and Office Space all rolled into one.  I know at least 10 people who worked for Logisys for less than one year.

I think it is critical for students to see an industry like this.  My students are all thinking of computer fields for college and without really seeing what it can lead to they really do not know where they are going.  Which makes me think a trip to Logisys would not be a bad idea.  Be good or this could happen to you.

Beginner languages – the usual infinite loop

January 28, 2015

Alfred Thompson pointed out this article, Retiring Python as a Teaching Language, in his latest blog.  Mike Zamansky’s comment sort of hit the nail on the head.  I always wonder when I read articles like this who the authors are teaching.  High school freshmen?  Not likely unless the kids have one heck of a middle school programming curriculum.  AP level kids that have two or three years of programming background?  Then the author has an argument but they are far from “beginners”.  Most professional programmers that have ideas as to what a beginner language in education should be really do not understand the definition of “beginner”.  Beginners are not the kids that have done programming at home because it is fun.  Beginners do not know how to use an IDE of any kind.  Beginners do not understand that an equal sign does not always mean equal (or is that rarely means equal?).  Beginners do not understand that in order to use a language the language has to be downloaded and installed on the computer, sometimes not a trivial exercise.  Beginners are sometimes taught by teachers that are beginners themselves so any beginner language better be stupidly easy to install and get started with.  The language also needs a beginner level textbook written by a teacher, not a really smart expert in the language.  Beginners, more often than not, are kids taking this one and only programming course because there was nothing else offered that period.  (Small school issue but in Montana most schools are small.)

Just because a language does not do certain tasks easily is not a reason to eliminate the language.  I like to mess with Lego robots.  Visual Basic will work with Lego robots if you beat on it hard enough (the language, not the robot).  I do not want to beat on it so I use RobotC for the robots.  Does this mean I should remove VB from the list of languages to teach?  No way.  If I want a language to write a program that requires buttons of various types, text input fields, the ability to make pretty GUIs and can read and write to a simple text file VB is my choice.  Both VB and RobotC can be great beginner languages.

I will argue that the reason any language is used in a high school classroom is that the teacher is comfortable with the language.  It has little to nothing to do with the practicality of the language, its usefulness in the job market, or what the colleges want the incoming freshmen to know.  Teachers will teach what they know.  (Of course I am presently teaching Java and I know no Java, but then I am an idiot.)

Maybe JavaScript is a great beginner language but I have a feeling Scratch and Small Basic, just to name a couple of my favorite beginner languages, are much more appropriate for beginners.

Now that I have said all this I am curious about JavaScript.   I dug around for a few minutes and I noticed Khan Academy is using JavaScript as their intro language.  The trouble is KA does just coding on a web browser interface.  Nothing on how to do standalone coding on a computer, what IDE to use, what to download to program with JavaScript, how to publish to a device or any of those handy little skills.  I guess those should be obvious to a beginner.

The new semester is here!!!!

January 20, 2015

Second semester starts today and as usual I am totally prepared.  For Programming II (sophomores) we are going to do Small Basic for a while then something else.  That is all I have.  The “for a while” and “something else” are the hang ups.  I have two issues that affect those.  First is the students.  Of the six kids in my class there is one that could leave me in the dust crying.  He is very smart and really digs programming.  Two others can do anything I throw at them but are fairly typical sophomores.  The last three are capable but have motivation issues.  The other issue is the teacher that also teaches Programming II.  Programming is not his gig but he puts a lot of work into it.  He is also offering and writing a new personal finance course this semester which is going to eat his time.  Doing a language he does not know (Corona or Python) on top of that might be a killer.  He knows Small Basic so that is not an issue.  The only other language he is somewhat comfortable with is Visual Basic.  Personally I think VB is as interesting as watching paint dry but a language is a language and I am sure we can make an interesting course with it.  I had originally considered getting him started in Python but since I offer a yearlong dual credit course in Python to Juniors there is no real need at the sophomore level.  Corona would be my favorite choice but I think it would blow away some of my students and would take a lot of work on the part of the other teacher.  Corona can do some fun stuff and I like fun stuff.

So we will work out the “for a while” on the fly.  When we exhaust what we feel it worthwhile in SB we will start on VB.  Not exactly sure what we will do in VB but that just keeps us on our toes.  I did find enough textbooks for VB.Net.  I had forgotten we even had them.  It is amazing what you can find if you look.

It is nice when the class is such that the goals are flexible.  In the Junior Python the kids have to get to a certain level of proficiency and they have to retain certain amount of knowledge to make it worth the dual credit rating.  Programming I and II we can just have fun with computers and programming.

First semester of teaching Java

January 16, 2015

This is our finals week.  As such I gave my Java class a final.  I borrowed a test from the instructor from the University of Montana who has been helping me with the class.  He happens to be a friend.  Since I really dislike the concept of a single test defining a class the final was a group final.  Since my knowledge of Java is about two days more than my students I was part of the group.  This is a group of students I can do this with.  After we had discussed the test in class I invited my friend over to discuss our answers to the test.  He helps regularly with the class, after all, he knows Java.  The class had narrowed down the problems we were sure we knew the answers to and the ones we did not have a clue about.  We wanted to know how we did.  A couple of problems we thought we understand we did not have a clue about but overall not bad.  We now have a better idea on what we need to target.

When I originally thought of offering this course I knew my knowledge of Java was going to affect the direction of the course.  I understand learning a new language is usually a syntax thing, not a major issue for me after this many years of learning languages.  After teaching Java for the semester I was sort of correct and sort of not.  The problem has been understanding the Object Oriented Programming concept.  We can write Java code, it just is not pretty and does not really use the OOP strengths.  Learning to program in a new language while trying to teach it is not impossible, it just takes lots of time.  Reading, coding, trial and error debugging and understanding the why of a program/language design can really slow things down.

I am debating not offering the course again until I have actually taken a course in Java this century.  The last time I took a Java course was last century.  (I turned the assignments in through an acoustical modem.  Cutting edge shared drive storage method.  I remember the system was called Gandalf.  Programmers and network dudes were going through a Lord of the Rings phase.) The OOP paradigm just does not come through when trying to get it strictly through a book.  The “why do it this way” is missing.  When my friend comes over and explain things it is kind of a “now it makes sense” moment.  The trouble is there is no Java course taught at a time where I could take it.  That pesky daytime job thing.

I will keep tinkering with Java, after all it is one of the top 5 in languages used.  I have found a Java for Kids book that might be fun to work through.  Sure cannot hurt.

Printers, Group Policy and me. Wheee!

January 13, 2015

I have spent at least two hours a day in the last four days trouble shooting printer issues.  The printer in the main lab suddenly decided it did not want to take paper from the main tray, only the manual tray was going to work.  Of course nobody told me this has been going on for a couple of weeks.  After 30 minutes of tinkering I ordered a new printer.  The printer lasted ten years.  It was time.  That was an easy one.

Since I was touching printers I figured I would get the new(er) printer set up in the library.  The librarian had been waiting a couple of months for this so I figured it was time.  It would not deploy through group policy.  After about 4 hours of trying everything I called in a pro.  After an hour and a half of his time he figures out it is an incompatibility between the Server 2003 print server, Windows 7, the new(er) printer and the fact we need both the 32 bit and the 64 bit drivers.  Move the drivers to a Server 2008 machine, make it the print server and away she goes.  Of course this means I have to upgrade to Server 2008 or 2012 sooner than expected.  I was hoping to retire before that was needed.

Then I notice computers in the same Active Directory group are getting different printers.  Printers that do not exist anymore.  Printers that are no longer deployed.  Printers shared but not deployed through group policy from the other school.  I have at least a dozen printers shared locally in classrooms but only this one printer was showing up in wrong directory.  I think maybe the printer is stored in the local profile on the computer.  I delete the profile I am using.  Printer is still there.  I go home after school and have a couple of glasses of mead.  I come in the next day and delete all the profiles on the computer.  Printer is gone.  Must have been the mead.

Learning how group policy and printer deployment works by trial and error is an adventure.  I am convinced the system is haunted.  Maybe I have enough things networked together that the system is coming alive and is messing with me just for fun.  Either evil or a bad practical joker.  Then again a more realistic scenario is I do not have a clue how printers and group policy actually work.

The abiding question behind all this is – is this computer science?  I have to think, a lot.  I have to problem solve.  I have to second guess Microsoft.  I have to fumble around with Google or just get lucky with trial and error.  Yup, must be computer science.

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.

CodeMontana and GameMaker all at once

November 18, 2014

I have decided to break my Programming I class into two threads.  I have two distinct groups of kids in the class.  One group is made up of survivors.  They just want to survive the course.  They have no interest in CS or programming, they are willing to do the assignments but do just enough to survive.  They have very little understanding of what they are doing when writing a program and are getting nothing solid out of what they are doing.  In other words sort of normal main stream kids.  The other group are the kids that are in to it.  They have the assignments done ahead of time and the assignments have whistles and bells in them.  The want to know more, faster, farther and with extras.  If I teach to the survivors the programmers will go along but will be bored and will not have the opportunity to stretch their legs.  If I teach to the programmers I will lose the survivors, bad.

The survivors are going to go to CodeMontana.org (CodeHS.org).  CodeMontana is a fairly straight forward online program for introducing coding.  CodeMontana is written primarily for schools that do not have a programming teacher but want to offer some kind of programming.  I tried it briefly with a small group of students last year but the kids found the progression way to slow.  This initial test group was more of the “in to it” gang so the CodeMontana was not a good fit.  My survivor group will be able to proceed at their own pace and come out of the course with a good understanding of what programming and CS is all about.  I will still have some non-programming material to put in the curriculum to broaden their CS prospective.

The programmers are going to start with GameMaker by Yoyo Games.  I tried GameMaker a couple of years ago with a group of Programming II students.  The tutorials were atrocious.   Bad to the point I had to give up on them.  Even my smart kids could not figure them out.  In this new version of GameMaker there is a whole set of new tutorials on the Yoyo website written by Steve Isaacs that are just what was needed.  Using these I was able to build my own unique game rather quickly.  The old tutorials are still in the game app itself and maybe the missing material that made them so bad can be filled in with the knowledge from the new tutorials.

A lot of people will argue that learning GameMaker is not learning “programming”.  I think that argument could go around in circles for a long time without getting to a conclusion.  I see GameMaker as an introductory drug.  Get them hooked on something, anything, and they may go on to bigger and better things.  Besides, they might actually make the next Flappy Birds.

This is one of the really cool things about teaching programming.  It is an open book as to what I want to teach.  The direction is consistent but the path is diverse.  Of course this diverse path does require I learn new things regularly.  Bummer.


Get every new post delivered to your Inbox.