Programming Software for Beginners revisited

February 4, 2016

Back in October I wrote about Programming Software for Kids.  Well I had my freshman tech aide Meghan (a 14 year old girl that is an extremely smart geek) go through a list of languages/environments I could think of for kids.  I wanted her to look at how hard it was to get going in the language.  Now being extremely bright (sort of scary smart if you get my drift) her comments are a bit above normal and may not fit the average kid.  I gave her a form to fill out for each application.  She took that form and made it better.  (Did I mention she is smart?)  She had no experience programming in any of these languages/environments.  She is more of a hardware/systems specialist and is just getting in to programming.  I am going to cut and paste her document.  I provided her with nothing but a list of apps and a computer.  It is an interesting read from a novice’s prospective.  I did not edit the following, it is all her.  I have a new aide this semester.  Another smart freshman.  I am going to give him the same list and form and see how they compare.

Programing Software for Beginners

 

Alice

  • standalone
  • It isn’t very easy to get started in the software.
  • Installation is required
    • It is easy to install.
  • There are tutorials on the website (but they are not very good).
    • They are pretty hard to find. I had to look for one that was halfway decent.
    • They aren’t very easy to follow.
  • The website isn’t all that easy to navigate. They don’t separate their different programs’ tutorials all that well and whoever is in charge of the site needs to update it.
  • Alice is meant for beginners but it isn’t very novice friendly
    • It may look fun to a beginner at first but it is not

CodeCombat

  • standalone
  • It is easy to get started (but you need an account).
  • Installation is not required.
  • CodeCombat is basically a tutorial/game in one.
    • The tutorials are easy to find.
    • The tutorials are easy to follow.
  • The website is easy to navigate.
  • It is very novice friendly and great for beginners.
    • It’s very fun, especially if the beginner programmers enjoy RPGs[1]

CodeHS

  • standalone
  • It is easy to get started, but you need to make an account.
  • Installation is not required
  • This whole site is a tutorial.
    • They are easy to find.
    • They are easy to follow.
  • The website is easy to navigate.
  • This is a very novice friendly site.
    • It looks fun, but not in the same way as Kodu. It still is enjoyable.

Gamemaker

  • I was unable to get this game to work on my computer.

Kodu

  • standalone
  • It is easy to get started
  • Installation is required
    • It is very easy to install.
  • There are tutorials in the application itself, but not on the site.
    • They are easy to find.
    • They are extremely easy to follow. It tells you step by step exactly what to do as you do it.
  • The website is easy to navigate
  • This is a great language for beginners and it is very user friendly
    • To a beginner it looks so fun!

Kojo Programming

  • standalone
  • It isn’t very easy to get started.
  • Installation is not required but it’s easier to just download.
    • You have to install Java too, but otherwise it is easy to install.
  • There are tutorials on the website in both pdf form and eBooks you have to buy.
    • They are hard to find.
    • The tutorial is sort of easy to follow, but it’s just throwing information at you (not very organized)
  • These people really need to update their site
  • This is not novice friendly.
    • It looks rather boring. All Kojo is teaching is turtle programming.

Project Spark[2]

  • standalone
  • It is not easy to get started; you have to get a Microsoft account, then get Xbox Live, then have internet to actually use the game. If you have these three things then it should be rather easy.
  • Installation is required
    • It is very easy to install as long as you have a Microsoft account.
  • I was unable to find tutorials on the website, although they may be in the application itself. I couldn’t check.
  • The website is easy to navigate
  • It is a great language for beginners, although it may be best if they try Kodu first.
    • It looks very entertaining to beginners.

Scratch

  • standalone
  • It is easy to get started, but an account is needed to use the online version
  • Installation is not required but it is optional
    • In order to use it you must have Adobe Flash. Otherwise it is easy to install.
  • There are tutorials on the website.
    • They are easy to find ( under HELP on the site)
    • They are extremely easy to follow. It tells you step by step exactly what to do as you do it (like with Kodu). It gives freedom but still teaches.
  • The website is easy to navigate
  • This is a great language for beginners and it is very user friendly
    • It looks very fun to a beginner.

Small Basic

  • standalone
  • It is easy to get started once you read the tutorial.
  • Installation is required
    • It is very easy to install.
  • There is a tutorial on the site in pdf form.
    • It is easy to find (it’s on the main page)
    • It is easy to follow, although it does go on about things the programmers should already know, such as what programming is and such.
  • The website is easy to navigate. It does look a bit outdated though.
  • I’ve never used this before (although I have used Visual Basic) and it’s easy to learn by using the PDF.
    • To a beginner it may not look as fun as say, Scratch or Project Spark. It is entertaining after messing around with it (or maybe that’s just me).

Touchdevelop

  • standalone
  • It is easy to get started. If you want to save your progress/apps you should get an account but that is simple.
  • Installation is not required.
  • There is a tutorial on the site.
    • It’s easy to find.
    • It is sort of easy to follow. They start you in the middle of a complicated project and even though they tell you what to do, they don’t really explain what the rest of the code is.
  • The website is easy to navigate.
  • It is only sort of novice friendly.
    • The software looks pretty fun to a beginner.

 

[1] role playing games, for those who don’t know for some reason

[2] I was not able to actually use this game on my computer because of problems I still have to figure out, so I wasn’t able to finish this. I was able to play for a short time on Mr. Flint’s computer though. It’s fun to make the character swim to the edge of the world and fall.

Kids and Mindstorms robots, oh lovely.

February 3, 2016

I am helping with an after school robot club with the Lego Mindstorms EV3.  Ten middle school kids, disappointingly all boys.  (Next time we do this I will recruit but this is not my club.)    The program is run by a guy (Brian) from Montana Tech University with a grant to have these after school clubs.  He has a list of objectives the kids are supposed to get the robot to do.  It is real interesting to watch the kid/robot interaction.  Some kids are strictly on task with the objectives on the sheet of paper.  Other kids not so much.  I wander around the room and observe (I am the official school representative) and help if I can.  They are using the EV3 software which I am not real conversant with yet but I can get the kids pointed in the right direction.  I was so tempted to tell the kids that took off on a tangent to try and stay on target.  I watched what they were doing and let them go with it.  They wanted to control the robot with a Bluetooth game controller one of the kids had brought in.  Absolutely nothing to do with the task list.  These kids were deep into the problem solving loop.  Trial and error, head scratching.  Trial and error, more head scratching.  Absolutely great to watch.  They got it going with the controller and then with their smart phone.  The process they went through was what teachers’ dream of.  Kids totally focused on solving a problem and working through the logic of why it will not work.

Even the kids that do not wander off task are deep into problem solving skills.  Since there is only one person (Brian) that knows the software and the kids are in about six groups they have to do a lot of learning on their own in regards to the software and the logic required for the program.  It is truly amazing what they can figure out with little or no help.  Admittedly this is a smart group of geeks but I am still amazed.  They have enough knowledge of what a loop and an If statement do that if I suggest they should use them they are good to go.  A combination of trial-and-error and head scratching gets them to where they want to be.

I have helped with a class using Karel the Dog (a code.org digital, on screen programmable dog).  The difference in the enthusiasm and effort to reach the objective is dramatic.  Yes, the Lego robot takes a lot more time.  The robot has to be built and there are cables to deal with and a lot of table space is needed but from my somewhat limited observations the results are well worth the added time and hassle.  If the funding is available the physical robot is worth it, especially for after school clubs.  Not only is the programming and problem solving in play, but the actual building of the robot is an educational experience for many.  Many kids simply do not play with building type toys any more.

I have to make sure this club keeps going.  The Mindstorms robots belong to Mt Tech so once Brian is done with the club we lose the robots.  I need to do some head scratching.

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 https://mathequality.wordpress.com/2016/01/23/showing-work-in-high-school-mathematics/ 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.

 

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.

 


Follow

Get every new post delivered to your Inbox.