Archive for November, 2013

The Wonder of Alice Programming

November 26, 2013

I decided a couple weeks ago to take a detour in my Programming I class.  I had a feeling my usual curriculum was going to lose several of my students.  Programming I is an elective and I hate losing students in an elective, especially if they are willing to do a little work.  Those several included the three girls in the class and a boy I felt had the ability but not the spark to get going.  I needed something in a different direction that might stir some interest.  In Programming I I am not attempting to generate programmers, I am try to generate interest in computers and what they can do.  In Programming I I kind of cater to the crowd.

I have a pretty mixed bag of students in this class, which is not unusual but this time it is a weirder mixture than usual.  I have a kid who does not speak in class (just not a talker) but can do some very incredible work, if he would work that is.  I have one young lady who hates school work of any kind, yet has an extremely sharp mind when directly asked a question.  I have the usual group who want me to tell them how to do everything and get upset when I do not, yet when I say “look it up” seem to find an answer in minutes.  So the usual, normal weird class.  In attempt to get some of the weirder ones (“weird” to me is not a derogatory term, it just means I have not quite figured out how they think) involved in programming I have decided to go to Alice.  As a programming language I have never been impressed with Alice.  Not because it is not a good language, but simply because it was not my cup of tea.  I tried Alice a few years ago with some less than optimal computers.  It gave me a bit of a bad taste for Alice and I have not used it since.  With this group of students I am trying to break out of what they were starting to conceive of programming to be.  Alice could do the trick.  The kids that like programming do not care what the language is; they just take off and go.  The kids that are not interested in programming at all are looking at Alice seeing story telling instead of programming.  My “I hate school” girl says today “Hey, this thing is three dimensional!”  This is on the third day of working with Alice.  At the moment I just have them writing a story/scene they want to build.  I burdened one girl with the last scene of Hamlet; the sword fight and poisoning scene.  I promised her extra credit if she can do a decent job of it.  The rest of the class was allowed to choose their own scene.  A very diverse collection.

Alice is a perfectly good language for a Programming I class.  It has the concepts, the lingo and the need for problem solving.  Using it on a computer with more that 256K of RAM definitely improves how well it operates.  There are quite a few tutorials and “how to” videos available compared to the 5 or 6 years ago when I tried this in a middle school class.  I still would not want to spend a whole semester with it, it simply does not appeal to me, but to take kids in a different direction and maybe spark some different thinking kids it just might be the ticket.

Advertisements

Python, here we come

November 25, 2013

Next semester I will give Python a try with the advanced class.  I have been working through “Think Python” by Allen Downey and I think the book will do the trick.  Besides, the price is right.  The book is a little mathy and there are not a lot of exciting projects but I think I can flesh it out without any problem.  My local university is considering offering a dual credit CS 100 level course with Python so I might as well get ahead of the game by getting started.  I like the idea I can get graphics, animation and Lego robotics all with one language.  I do not think Python has the kid attractiveness of Corona SDK and mobile device programming but I do think Python is a bit more college preparatory.  Corona sometimes has just a bit too much going on and the kids can get too focused on the graphics and physics instead of the programming.  Since I typically keep the advanced kids for 3 or 4 semesters I should have the opportunity to do both languages with them.  The Python looks to be a good base language that will make the Corona SDK easier to understand.

A fun thing about Python is there seems to be a library for almost any purpose; Lego robots, Arduino devices, game making (pygame) and almost anything else.  If I cannot make an exciting course I am just being lazy.

Veterans Day actually means something to some

November 12, 2013

This post has nothing to do with computer science so if you read my blog only for that reason quit reading this particular post.  It is Veterans Day.  I have a tendency to think about things I want to forget on Veterans Day.  Sometimes people write things down just to get rid of thoughts.  Me, I am just happy to have thoughts.

On January 9th, 1974, forty years ago, I joined the United States Marine Corps.  After four years and four months of “adventure” I get out, wait a year, and join the Montana Army National Guard.  On November 2012 I retired out of the Guard.  That is about 38 years of military service; three operations involving combat, a bullet in the leg, two ruptured disks from a jump out of a really low airplane, some lost friends and some really bad dreams.  After 38 years it is hard to adjust to not being part of a rather exclusive men’s club.  (Yes, I know, there are a lot of women in the military but I was always in combat arms units that did not allow women.)  I am not adjusted yet.  Whenever I hear the kids complaining about their day I ask them “Did anybody shoot at you or try to blow you up on the way to school today?”  Most people do not understand this outlook.  Perspective, it is all perspective.

I had a chance to see a lot of the world on the government’s bill.  Thailand in 1974 was very, very bad.  My first encounter with losing a close friend and I learned what “combat” means.  Training 2nd Lieutenants for 2 years at Quantico, Virginia was a vacation.  That is what got me thinking about being a teacher.  Okinawa in 1977 was interesting most of the time.  A month in Korea in 1977 was good and bad.  Visiting with the Korean people and working with ROK Marines was great.  Chasing North Korean infiltrators was bad.  I visited the Philippine jungle for a week in 1977.  A helicopter crash resulted in 24 dead Marines who I helped recover from a mountain side.  Very bad week.  Finishing off the USMC as a weapons instructor in Camp Pendleton, CA was a summer camp.  A beach house in San Clemente and a sports car; what more could a 24 year old need?  After the Marines I had the money and the desire to go to college.  After the Marines college was stupidly easy.  I tried ROTC for a year.  I had major issues with 20 year olds that thought combat would be an exciting adventure.  At the time I had not managed to deal with some left over issues.  Now it is called PTSD.  Back in the late 70’s a lot of combat veterans drank a lot due to left over issues.  I did not drink.  I sat on hilltops by myself.  Cheaper than drinking.  My doctor says I still have issues but any combat vet that thinks they do not is fooling themselves.

You would think the last thing a veteran would want to do is go back in the service after an event filled four years.  Robert E. Lee has the gist of it when he said “It is well that war is so terrible. We should grow too fond of it.”  Certain aspects of the military can be addicting.  So into the Guard I go.  At the time almost half my Guard unit was made up of veterans.  It was more like the Boy Scouts than the military for many years.  In the 90’s the Guard started to change.  It became much more focused and more serious.  We sent Guard troops to Kosovo and the Sinai and it was apparent things were getting hotter for the Guard.  9/11 really woke things up.  Instead of drills on just Saturday and Sunday, Friday nights got added on.  Instead of two weeks in the summer it was now three.  In December 2004 I am off to Iraq for a year.  By that time about half the units in Iraq were Guard or Reserve.  My unit was on the northern edge of the Sunni Triangle.  It was called “very active”.  Lots of IEDs and lots of snipers and more lost friends.

Hard to believe but I really do miss the military.  There is a sense of camaraderie involved that cannot be found in any other environment.  Being shot at or having people try to blow you up is a bonding experience like no other.  And there is no rush like going into a hostile territory knowing the probability of getting shot at is pretty high.  It adds a certain appreciation to life.  The military has provided me with some of the best moments of my life.  It has also given me by far the worst moments.

By today’s rather vague definition I was and am a geek.  I look like a geek and talk like a geek.  I have been called that for years and I pretty much consider it a badge honor.  I read Kipling in Thailand (after all, India was only a skip and a jump away sort of), carried Shakespeare with me to the field in Quantico (the Sonnets, not the plays) and sat in the barracks playing with math for fun.  None of my buddies understood any of this.  I was also a geek who could put a bullet in a cantaloupe sized object at 800 yards.  I was a geek who survived several close moments were enemies did not survive.  I was very good at a very non-geek profession.  Maybe it is in the blood.  My father started fighting wars in 1939 as a volunteer with the Finish Army during the Winter War with the USSR, was a destroyer man and UDT member in WWII, a regimental scout in Korea and a 1st Sergeant for an infantry unit in Vietnam.  A total of 26 years in the military.

I cannot get away from who I was and what it has made me.  I really do not want to escape that past, it is me.  Being reminded of that 40 year date gives me a weird feeling.  That is the date that the events that made me started.

Programming for the Beginning Teacher

November 6, 2013

This weekend at the DevFest conference I talked to a couple of teachers that are trying to bring programming into their schools.  The problem they are having is a shortage of programming knowledge, both in programming and curriculum.  One has no experience with programming and is trying to learn on the fly; the other has a little experience outside the classroom and is trying to build a curriculum with no experience in that field.  Both have the support of their administrations.  The first is solving her problem by using CodeMontana, an on-line programming tool using CodeHD.  She is having success with this approach.  The second is just sort of searching for possible directions.

I have pondered the big question of what is the best starting language for students and have come to the obvious answer that it is what the teacher feels best with.  After talking to these two teachers I am thinking I missed an even bigger question: what is the best language for a teacher to start with?  Considering nonexistent teacher training programs and a good chance there will be an increased need for programming teachers this becomes kind of important.  I started out in the same situation years ago and having an idea where to start would have been nice.  When I started out the number of possibilities where extremely limited.  Now there are about 20 ways to go.

There are a lot of variables involved here.  One of the biggest is how much time a teacher has to invest in learning a language.  Time opens a lot more doors.  My list will assume a teacher has the spare time most teachers I know have; little to none.  For a beginning teacher I think the big things are ease of setup, available documentation, available support and simplicity of the language.  I my case I also consider if I can get the language for free and what quality documentation I can get for free.  I think if I cannot be programming something that makes sense in 10 minutes after deciding to try a new language that a beginning teacher should look at something else.

This list reflects my experience over the years so it will have some gaps and a lot of bias.  My bias is based on what I want my students to learn and how I want them to learn.  My limited experience with some languages will also taint my opinions.

I will see if I can organize this list so it makes sense.

Scratch – free IDE, good free documentation designed for beginners, lots of on-line support, click the button to run the setup and it is ready to go, very little knowledge needed on the teacher’s part.  This is perhaps the language with the widest grade range.  I think Scratch would work easily for beginning teachers and student from 5th grade to high school.

Small Basic – free IDE, good free documentation designed for beginners, lots of on-line support, minimal setup, very little knowledge needed on the teacher’s part. For introduction to real coding (line code) my favorite is by far Small Basic.  It is simple, has Intellitype, shows the format of functions on the right, and can do high level programs (sort of).  If it had parameter passing and scoped variables it would be the perfect 1 semester language.  For the beginning teacher it is easy to install, has some nice free documentation and is tempting to kids.

Greenfoot – free IDE, good free documentation designed for beginners, lots of on-line support, minimal setup, some knowledge needed on the teacher’s part but doable.

Alice – free IDE, good free documentation designed for beginners (Alice 2), lots of on-line support, minimal setup, very little knowledge needed on the teacher’s part.  Alice 2 has lots of stuff, Alice 3 has didly.  The problem with this is Alice 3 is a lot cooler.  It needs more classes and objects but once they have it finished it will be a great tool.

Codea for the iPad – $9.99, good free documentation designed for beginners, lots of on-line support, minimal setup, some knowledge needed on the teacher’s part.

Visual Basic – free IDE, good free documentation designed for beginners, lots of on-line support, minimal setup, some knowledge needed on the teacher’s part.

C# – free IDE, good free documentation but not designed for beginners, lots of on-line support, minimal setup, some knowledge needed on the teacher’s part.  C# is definitely not for the beginning teacher or student to start with.

Corona IDE – free, kind of good free documentation designed for beginners, lots of on-line support, minimal setup, teacher better understand how to troubleshoot setup issues.  An ambitious beginning teacher can use this but it takes some time.  The need for an editor adds another thing to learn.

Python – free, good free documentation designed for beginners, lots of on-line support, is not a nice simple install and go, teacher needs to know quite a bit just to get the thing working.  Again the need for an editor complicates things.  I do not program in Python so I do not know how the language is to teach with.  My opinion is based on trying to set it up to program with which is not for the beginning programming teacher.

Java – same issues as Python.

This list just scratches the surface.  I did not include Kodu because I do not think it is high school level.  There are several versions of Logo still out there that are worthwhile and things like GameMaker that are usable for teaching.  Arduino, Lego Mindsorms NXT-G and RobotC are also languages to consider but the inclusion of hardware can add a new factor a beginning teacher should seriously ponder before trying these.

A teacher with no time and no experience should seriously look at Khan Academy and CodeHD.  Although I am not an advocate of these programs they are a good solution to getting something in the school when a teacher is short of options.

DevFestMT

November 5, 2013

DevFestMT so far has been very interesting.  Met a couple of teachers starting a programming class in their school and met some businessmen very interested in CS education in schools.  It is fun to talk to business people interested in education.  They always have suggestions to solve the problems in the education system.  None of them would work of course; a group of 16 year olds do not behave the same as a group of adults (usually).  Sometimes adults behave like 16 year olds but rarely do 16 year olds behave as adults.

We had a presentation by Pamela Fox from Khan Academy.  She is writing the programming lessons for them.  Very interesting.  “If we write it they will come” is an approach to education but I am not quite sure it is a useful one.  One of the teachers I talked to is using CodeMontana with her high school students because she has no programming experience but wants programming in her school.  She is having great luck with it.  So much for my sense of how high school students would do with CodeMontana.

DevFest Tomorrow

November 1, 2013

Tomorrow I am going to be a panel member for “The Future of Education” at the Montana DevFest.  DevFest is a couple of days of tech oriented presentations and speakers getting together to promote technology education.  A couple of the presentations are on topics of deep interest to me; Khan Academy and CodeMontana.  In both cases I have to keep an open mind.  As vehicles to teach programming I think they are both duds.  I think learning to program should have a little action and excitement.  Programming can be taught in a manner that would put a 14 year old down and out as they snack the day after Halloween.  Both of these programs seem to be of that quality.  Are they better than nothing?  Yes, definitely.  Since most schools in Montana presently have nothing in the way of programming or teachers that can teach programming, both programs are a viable solution to the lack of programming for most of the schools in Montana.  I feel there is no substitute to a good, experienced, knowledgeable and live teacher.  It seems like a lot of the statistics on MOOCs is substantiating this view.  But I have got to keep an open mind.