Archive for March, 2012

Corona, Tic-Tac-Toe and writing lessons

March 22, 2012

I have been writing up my lessons plans for Corona in sort of book form.  Writing in all the details of how to build a program assuming that someone is not explaining the gaps in the lesson is really a lot of work.  Writing enough detail to have things make sense but not writing so much detail that all the kid has to do is cut and paste is pretty tricky.  I can see why I cannot find a programming text I like; they are a real pain to write.

I stole Alfred Thompson’s Tic-Tac-Toe logic (thanks Alfred) and build the Corona equivalent.  It ain’t pretty but it works.  Of course it took me an hour to find the little typo that made one of the rows a winner if there were only two like symbols.  I am thinking I may need a 30 inch monitor with a bit larger resolution.  Paying more attention to detail would be cheaper but it would be so much more work.  Now I just need to write up the lesson so the kids can learn how to do it without telling them how to do it.  Learning a language when all you have is a couple of poorly written APIs and a pretty good forum is really a kick.  Sometimes the kick is in the wrong place but still fun.

I like this project because it involves a lot of levels of planning yet the idea is simple.  I had the kids step through the game first and write out what has to be done in pseudo code.  We then did a flow chart using the pseudo code just to get a better visualization of what the program is going to involve.  Our next step will be to break the flow chart symbols and pseudo code down into more detail.  We will then go to coding subroutines.

Teaching with Corona

March 13, 2012

It has been two months of teaching programming with Corona.  As expected in classes of mixed ability level and interest level there are mixed results.  My sharp kids that like programming have no problems, my sharp kids that could care less about programming suffer but succeed; my not so sharp kids (only one or two out of twenty-one) are struggling massively.  I did have to abandon the text I was using.  There were simply too many leaps of intuitive magic for the kids (and me) in many places.  I started writing my own exercises with much smaller programming goals.  The really nice thing about Corona is the visual interest.  It is easy to make simple programs with moving objects, lots of colors and events which will change the behavior of the program.  Some of the kids have installed their simple programs on their Droid phones just to say they did it.

A good thing, and a bad thing, are the Corona error messages.  They are usually pretty worthless.  After using Visual Basic which has great error messages that will often tell you how to fix the programming mistake you made, Corona was a bit of a shock.  If you are actually trying to produce some product the arcane error messages are a real pain.  For teaching I actually like the lack of useful messages.  The kids have to go back through their code and find the problem.  It forces them to write the code in modules.  They have to get one module working before going on.  The strategy of writing a big mess then testing for errors just does not work.

Doing Corona without a high school level text (which I used to have for Visual Basic) has taught me quite a bit about pedagogy.  Show and tell (lecture) is pretty much worthless.  So is showing code on the projector.  The sharp kids will get the new material in minutes and then tune me out.  They want at the computer.  The not so sharp kids tune a lecture out in seconds then ask the questions the lecture answered.  Or they will stare at the computer and complain they do not get it.  Nothing new there.  I have known this for years but without a text I have had an inclination to do more talking and projecting than I usually would.  What seems to work best is give them an assignment, some code snippets that are related (but not exactly like a tutorial giving all the needed details) and step back.  The sharp kids take it and run.  The not so sharp kids ask the sharp kids.  At first I was worried that the kids that did not get it were going to copy code and be happy.  Not so.  The assignments are general enough that they all want to make something unique.  Out of 21 kids I have about 5 that a pretty good at figuring things out.  They are not afraid to read the API or to tinker.

A tool that really helps teach programming is lab management software like LanSchool.  Being able to get kids eyes off the computer by over-riding their monitor is great.  Being able to show all the kids a piece of code from another kid or put my screen on their screen is really handy.  I had a 30 day demo of LanSchool and since it has expired I realize how useful it was.  Lab management software is in next year’s dream budget.

Overall I am pretty satisfied with my Corona direction.  Corona does have some major, right on the edge of deal breaker, issues.  It requires a unique login on each computer for each user.  In a lab/school this is a major pain.  The kid has to work on a particular computer; they just cannot sit down anywhere and work on their program.  The fact that I have to design and write my own book is taking time I simply do not have this year.  The up side is that a beginner can play with physics, animation and events without jumping through a whole bunch of hoops.  They can make fun things happen and still learn some coding on the way.  Now that I have run some kids through the mill I have a better idea as to what they can and cannot do.  This gives me more direction on what to write in the way of exercises.  Which is what I should be doing instead of working on this blog.