Politics and CS: Whatever

May 24, 2016

The Republican candidate for Montana governor, Greg Gianforte, is a tech businessman.  He sold the tech company he built for 1.8 billion so he is doing pretty good.  As a tech guy he has included in his platform the intent of revising the present non-existent CS education structure in Montana.  Things like teacher training, CS requirement in high school and changes in core curriculum.  In this newspaper article http://www.dailyinterlake.com/members/candidates-push-computer-science-training/article_f11af798-1c91-11e6-a8a2-dffa72e7594d.html he points out that Montana has not offered an AP CS class since 2014.  Is this a bad thing?

It is interesting when people, especially politicians, start talking about topics they do not know a lot about.  They find what they consider an important datum and throw it around a little.  Now AP CS is kind of the gold standard for CS in high schools so I cannot criticize the candidate too much for using that statistic.  (Mike Zamansky points out some interesting arguments against AP in a couple of his blogs.)  I have not been a fan of AP CS ever.  When I originally started teaching CS I took a look at the AP CS syllabus with the intent of jumping on the band wagon but was not impressed on its absolute focus on programming.  It was also very elitist.  Only geeks may apply.  Not my cup of tea.  AP has since come out with AP CS Principles but I teach that now without having to jump through the AP hoops.

What Greg must not know is that Montana has a better alternative to AP CS, dual-credit.  Our juniors and seniors can sign up for two different CS courses through the University of Montana and receive college credit directly.  No exam-of-death at the end of the semester.  The grade you get in the course is the grade you get on a U of M transcript.  Cheaper than AP.  More transferable than AP.  More widely accepted than AP.

I do not think Greg knows a lot about what is taking place in Montana CS education but that is not really his fault.  Nobody seems to know.  Two weeks ago one of his staffers called me to ask about CS teacher certification in Montana.  One of the people in the Office of Public Instruction gave my name as someone in the know.  Now you would think OPI would be the people in the know.  My experience has shown me that the problem with CS education in Montana is the fact we have a rather hands off OPI.  Montana schools are sort of on their own for many things.  We like our independence and freedom but there reaches a point where the people that are supposed to be helping schools provide a balanced education need to get to work.  Or at least get some help.

Presently all of Montana’s advancement of CS in the schools has come from individual teachers and administrators deciding to do something.  Very grassrootsy.  I have a feeling it is going to be that way no matter who gets elected.  OPI is small.  Schools are very independent minded.  Schools are very poorly funded (but as Greg points out in the article CS is actually very cheap to offer).  Curriculum is cast in concrete and any change is going to take a very large stick.  Talking softly is not going to do the trick.

In one of my earlier blogs I discussed the teacher certification boon dongle in Montana.  To get teachers certification programs in to the Montana universities someone is going to have to do a big re-write of the certification course requirements for OPI.  That will be quite the war.  The university types will want to generate mini CS majors.  Teachers are going to want just enough so they can get the certification.  The State will probably not make a decision.  (Bureaucrats are good at that.)  Greg is going to have his hands full there.  I hope he actually talks some K – 12 CS teachers.

I am neither a proponent or opponent of Greg.  I do not know him.  But CS in Montana, and the US in general, needs more than grassroots.  Presidential verbiage or political platforms are all fine and dandy for newspapers and arguments but they do not get the horse shod.  Somebody has to grab the bull by the horns (I am getting all sorts of cowboy language going here) and say “Here is what we are going to try”.  Maybe it will be like the New Math in the ‘60s and flop on its face but at least we will be trying to do something.

Project Spark was the coolest..

May 16, 2016

Microsoft’s Project Spark is going away.  I am royally bummed.  If you are not familiar with PS you have missed out.  It is the coolest 3-D game authoring software you can imagine.  It is definitely written for kids and hobbyists but it is still really cool.  I can see why Microsoft is ending it.  It looks support intensive and it is free.  No money involved and MS already has a lot of no money involved products out there.  I was planning to center a game course around PS but maybe it is for the best.  I now have to learn Unity well enough to more than dabble in it.  It is just that PS allowed the user to make such cool terrain and had interesting characters.  A kid could whip a half way decent simple game in an hour and then share it with others.  The programming language really was not a language and was a bit restricted but it was still good enough to get a kid started with some fundamental thinking with programming.

The loss of PS is going to leave a pretty big gap between Kodu and whatever else someone want to use after Kodu.  I do not see Kodu or PS as great programming environments, but more as entry level drugs.  Play with them for a while then get the kids interested in big kid languages where they can do more.  PS was just such a great combination of building and programming.  I can hope that MS comes out with something new and cool in this direction again.

Thinking about summer fun

May 13, 2016

The school year is winding down for the seniors so things are winding up for me.  Finals to write, stuff to grade that should have been graded last week, and of course all the odds and ends of the IT job sort of happening all at once.  We finally got around to getting a Microsoft software subscription so we can upgrade to Office 2016 and Windows 10 so I have that to do.  Now I could wait until school is out to do this but that would make way too much sense.  At my school we install software by tennis shoe.  None of this fancy remote bulk install business.  I leg around to every computer and install by hand.  Extremely inefficient you say?  Yes, but it is the only way I can guarantee to look at ever computer in the school and see what is screwed up on it.  Old software, bad keyboards, processors caked with dust, paper stuffed into floppy drives, CD players used as cup holders, pencils in fans, you know, the usual school computer issues.  I think I still have some computers with production dates from the last century.  I probably ought to retire those to the museum.  The library server is running Windows 95.  I need to burn some incense over it and maybe have a priest come bless it again.  The software is so old I do not want to try to move it to something new.  We cannot afford new library software.  Hence the need for a blessing.  I probably need to find a better solution to holding the video card into the library presentation computer.  The piece of chewing gum I presently have holding it in is probably getting really hard.  (No s#$%, it is held in by chewing gum.  The kids gave me an odd look when I asked for the gum a girl was chewing and stuck it in the computer.  Kids just do not know how to improvise.)

I just received 10 new wireless access points for the elementary school.  $85 each instead of the present $600 APs.  One for every classroom that uses tech and a couple to spare.  The building was built in the early ‘60s of cinder block.  Wireless signal does not go well through cinder block.  The present system of APs in the halls almost works.  “Almost” being the key word here.  These new APs are web managed.  Something new to learn.  I would like to get a couple of these working before the year is up.  I want to see what happens when 20 odd computers hit them.  By the end of next week I will be done with my two classes of seniors so I will have time to start on projects.

With 1.5 techs for the district summers can be quite busy.  I do get one work-study kid for the summer.  I am in luck this year because she is a major computer geek and a worker.  She is a freshman right now so I will hopefully have her for three summers.

I also have to start prepping for the games course I want to offer next fall.  I want to dabble in Unity which means I have to learn Unity.  Which means I have to refresh on C#.  Luckily there is a lot of Unity learning stuff out there.

Summer fun.

CS certification In Montana: ain’t going to happen soon

April 30, 2016

Due to an insatiable desire to cause myself pain and discomfort I have gotten on the “let’s try and get a CS Ed program started at my local university” horse again.  I am simply trying to get a way that Montana teachers can get a CS certification without getting a BA in CS.  At the moment the only way to get qualified in Montana to teach CS is to get the CS degree and then get a degree in education or get a Business Ed degree which includes no CS, just business apps.  The Business degree does not come with the CS certification.  Since none of our colleges offered a CS Ed program I asked the Montana Office of Public Instruction (OPI) for what is required for a CS certification program.  They do have such a document.  The document was interesting to say the least.  There were some requirements that just seemed a little out of place for a K-12 certification.

(vi) demonstrating knowledge of and the ability to construct multi-threaded client-server applications

Uh, right.  I am not even sure what that is.  Here are some others.

(vii) demonstrating knowledge of and the ability to construct web sites that utilize complex data bases;

(viii) demonstrating knowledge of and the ability to construct artificial intelligence and robotic applications; and

(ix) demonstrating knowledge of the principles of usability and human computer interaction and be able to apply these principles to the design and implementation of human-computer interfaces;

I passed this on to my friend that teaches CS at the university.  He spends a semester teaching (vii) with his CS majors.  His comment on (viii) was “Wow”.  I kind of have an idea what (ix) is talking about but I am not sure I would want to do it at the high school level.  Some of the other requirements were to be knowledgeable with at least one of the following languages; C++, Java, C# or Ada.  Ada?  Who in the heck uses Ada as a teaching language?  How many people use Ada period?  You would think that somewhere in that list would be something appropriate for middle school kids.  A teacher knowledgeable in Scratch or Alice or Small Basic or half a dozen other possibilities would be so much more useful to a K-12 system than any of those in this list. The document goes on with needing be able to demonstrate familiarity with four high-level programming languages.  Seriously?  Four?  Somebody needs a reality check.  This is supposed to be for teaching CS K-12, not 13-16 and also not full time.  After reading these standards I really understand why the Montana colleges are so reluctant to offer the program.  There are just not enough CS teaching jobs to make building such a program worthwhile.  No pre-service teacher in their right mind would do the program and no teacher wanting to get a CS certification would have the time to commit to the number of courses this would require.

I looked through the requirement for a mathematics program.  It actually makes sense.  The math requirements list is shorter.  We are doomed by bureaucracy.  I will continue to fight the good fight but it is not looking good.  Must be a philosophical thing I have.  I want to teach kids CS, not make CS professionals.


Cell phones in school seem to be a bad idea

April 27, 2016


Articles like this get me wondering; is the problem the cell phone in the classroom or is it that the classroom has not caught up with the cell phone?  Being an old fart and used to the traditional pre-cell phone classroom I am going with the first option but I am just not sure if that is correct.  Education does not seem to handle changes in technology well.  Those of us that have been in the business a while can remember the big stink over the calculator.  There were all sorts of dire predictions if they were allowed into the classroom and I have to say many of them were and still are true.  Kids do not want to do mental math, they look for every answer in the calculator instead of looking at the problem first, and the list goes on and on.  On the other side of the fence more time can be spent on problem solving than on “trivial” arithmetic and computation.  Then TI came out with the TI-92 and we were all going to Hell.  Kids will never learn to think if they have one of those devices of Satan.  Now it is WolframAlpha.  I love WolframAlpha.  I can convert gallons to acre-feet in a second.  Admittedly I do not seem to need to do that too often but I can if I want to.  WolframAlpha can do anything I can mathematically dream up.  But it still cannot problem solve.

So back to the cell phone thing.  Ban them from the classroom, use them as needed or accept that the new generation lives on the thing?  I have been taking the middle road lately just to see what happens.  My own little study.  Through diligent observation I have concluded that a student with a cell phone in math class with the intent of using it as a calculator is using it as a calculator about 20% of the time.  Maybe less.  Not very scientific but very realistic.  The gist of it is that cell phones in the classroom are a major distraction and, as the calculator issue proved, users are going to turn into uneducated idiots.  Well, maybe not that bad but the things are going to have a detrimental effect on student focus.  No great revelation there.

I do like then for some uses.  I give my students things like find the length of the major and minor axis of an American football and find its volume.  I do not teach the formula for the volume of an ovoid, they have to find it.  On the way they learn what a major and minor axis is, they have to read a little algebra and they have to find a website that is readable.  It allows me a broader set of problems than the text offers.  Years ago I would have given the same assignment with a CRC manual.  The thing with the CRC manual is when they were done they were not going to continue reading it for entertainment value.  With the phone when they are done they are off to who knows where.

Next year I am going to bail on the cell phone use.  It has great possibilities but the management is just too much to deal with.  Use it once and the kids expect to use it all the time.  With the cell phone they have a strong tendency to not get things done in class.  Or out of class for that matter.

I need a Microsoft school techie camp

April 19, 2016

You know, one of those two day events where Microsoft comes in and shows the school techies everything they ever need to know about what Microsoft can do for a school and how all of it works.  OK, so the camp should be more like 2 weeks but I do not think any techie can commit to something that long or expensive.  Right now I am getting buried by all that is happening in the school tech world.  Things like Office 365 vs Google Apps, EES licensing, Group Policy, Windows 10 deployment, hosted Exchange vs Google mail, OneNote, OneDrive, Azure Active Directory, and about a dozen other things I do not even know exist and would really help my school survive better if I knew about them.

With budgets as tight as they are Google has started to be the go-to option for schools.  The trouble with that is that Google Apps are just not professional grade nor are they the dominate apps in the outside-of-school world.  Google also is not the backbone of a school’s infrastructure.  Servers, login management and computers that use high level software are all going to be Microsoft.  No matter how much school techies complain about Microsoft or try to eliminate Microsoft it is still the King of the Hill.  But Microsoft school techie training is non-existent.  I can get the names of five local Google certified trainers in about sixty minutes.  Trainers who can train the staff on apps and train the techie on deployment and management.  These trainers specialize in schools.  I have no idea where to find a Microsoft trainer who is local or who specializes in schools.  Next month one of the local schools is hosting a two day Google Fest for education.  A third day is the tech thread.  I have never ever heard of a Microsoft Fest for education.  Maybe Montana is too far out for word of something like that to be heard.

There are lots of places to get Microsoft certifications.  School techies do not need Microsoft certifications.   They need to know what is cheap, is going to work and how to keep it working with a $3.85 budget.  Oh, and considering the average training level of the average school techie (I started as a math teacher that could spell Microsoft) they need to know what is idiot proof and stupidly simple to manage.  Example: most school techies can spell SCCM but no school techie has time to fiddle with it for a month to try to make it work.

The school techie job is like nothing I have ever seen in the techie world.  In business the techie is usually a specialist and if it is something outside their realm they call in another specialist.  The school techie, especially a small school, has to be a jack of all trades.  The techie has to have a smattering of servers, wireless, anti-virus, firewalls, content filters, desktop systems, Window, Mac, Chrome, repairs, cable pulling (in dark crawl spaces with large hairy spiders), software of all kinds and a dozen other things they do not know they have to know.  The training for all this is usually minimal.

It would behoove (I do not think I have ever used “behoove” in a written document before) Microsoft to get in the parade before we all get used to suffering with Google Apps.  I have been to a Microsoft show-and-tell.  There is some really nice Microsoft stuff out there but 2 hours is not enough time to do anything but take a quick note to look it up on the internet when back in the office.  When I get time.  Microsoft does have events for teachers.  I have attended a two day event on TouchDevelop and a one day event on Microsoft Innovative Educator (basically Office 365, OneNote and some odds and ends).  The first really does not need any techie input.  The second really needs a techie thread with multiple days.  Guess who is going to get the call when the teacher decides to use these tools and can’t quite figure out what to do?  That MIE event should have been two days just for the teachers and a third day for the techies.

There is just so much happening out there in school tech-land that learning it on-the-job and on-the-fly is not cutting it any more.  If Microsoft wants to keep their stuff in the education market they have to give the training to the people that actually talk to the school administration as to what to purchase.  Yes, events like MIE are important for the teachers, but they do no good if the school tech cannot support it.

Is the Chromebook dead?

April 18, 2016

Last week I saw a $219 Windows 10 Lenovo with a solid state drive.  It booted in about 10 seconds.  It was only a Celeron processor but it was still a nice little laptop.  This seems to be a Chromebook killer.  I have never been a Chromebook fan, paying $200 – $300 for a free browser just seemed a little odd.  The big selling points for the Chromebooks has been the super-fast boot up and the remote manageability.  The first reason appears to be trivial.  In the classroom it is not.  The minute or two of boot time always seems to take longer and there are always one or two out of twenty that are just stubborn and want to take their time.  For often tech leery teachers this time loss just reinforces their opinion that tech is a pain.  Chromebooks were a jewel in the boot up department.  Hit the button and there was the screen.  Of course from there things were limited to a browser but teachers were finding work arounds and good solutions to their needs.  It is the second selling point that really sold Chromebooks and it is the second selling point, in my opinion, that should have never even been a consideration.  Remote management is nice, in fact for a large school with hundreds of computers it is almost a must, but to make a buying and deployment decision based on the convenience of the IT department is just ridiculous.  The shortage of IT staff in schools is a reality so making a decision based on the ability of an IT department to support a device is going to be a buying issue, ridiculous or not.

Due to my school’s economic situation (poor) I as the IT staff do not have a lot of labs or school owned devices to maintain.  We go real strong towards BYOD so the Chromebook vs. Windows laptop has not been an issue for us.  We are looking at expanding our laptop numbers in the elementary school and I was seriously considering Chromebooks simply because of the price.  A decent Windows laptop was in the $400 range, a Chromebook was $200.  With a $219 Windows 10 laptop available the Chromebook is dead. Now if Microsoft would just come up with a way to flash the OS.  Maybe next year.

Square around the screen again

March 31, 2016

Dan and I have come up with a total of 5 methods of programming this little problem.  There are undoubtedly a plethora of good solutions.  I gave this to my programming class to do in Small Basic.  SB is perfect for this kind of little assignment, it does simple graphics without any fuss.  I have three kids in the class.  Two solutions were very similar to the state variable solution, especially since I showed one kid what a state variable did and how it worked and he shared the idea to the other two kids.  I expected the same basic solution from all three kids.  Kid number three had to be different.  He turned in the code and I stared.  “What the heck did he do?!”  It took me a while to figure out he had come up with a recursive solution.  Very clean, very unique.  I love it.

If you are going to teach programming the cookie cutter has to go out the window.  In math there is usually a “best” method to reach the solution.  In programming there are good solutions and bad solutions, all of which will work.  And sometimes there are solutions that are just better than anything you may have thought of.  Smart kids in math are manageable, you know where they are going and what tools they have to work with to get there.  Smart kids in programming find tools you did not know existed and they will use them in ways you never thought of.  I love it.

The continuing sage of moving a square around the screen using a state variable with Python

March 23, 2016

This is fun just finding different ways to do the same simple problem.  After getting pygame working (3 hours?  Again, I am not bright, just stubborn. ) the code was 60 minutes.  I had to look up how to use pygame and found some good examples.  (blit?  Who came up with blit?)  I had to chase down the usual weird things in the code but no big deal.  Being the stone-cold idiot I am I figured if I can get this working with pygame.py I should learn how to do it with graphics.py.  It took me a while (really stubborn) to figure out to copy the graphics class to a text file, rename it .py then drop it into the Lib>site-packages folder in the Python folder.  Nowhere does any clever soul give that little detail.  The directions just say “put this where Python can see it.”  Not good.  Anyway once I got the messy setup details figured out the code with the graphics.py was 30 minutes.  Again I found a nice example.  It still has a minor drawing issue and gets slower with each lap.  Tonight’s entertainment.  I cancelled cable TV so this is my replacement.  (I have to get cable TV back, this stuff is going to make me go blind.)  Dan Schellenberg, where I got the square idea in the first place, picked up on the “let’s do it in Python” idea and has three variations.  The third one listed here is one of his.

Now I stare at these and think “how anal do I really want to get with this?”  I look at the code in those 4 if statements.  They are all the same except for the parameters.  I think I could make that a procedure and pass parameters …  Hummmm.

I really need to do more of these.  All my Python is learned on the job.  For that matter all my coding is learned on the job (except for the 2 FORTRAN courses in ‘71 and ‘80, and one intro Java course in ‘90).  This leads to a rather sketchy foundation and almost no breadth.  I can do what is in the book I am using and only to the chapters I have had time to learn.  Projects like this have no chapter and have no solution determined by the chapter you are reading at the time.

I now have 5 good solutions to this one problem.  Two mine and 3 Dan’s.  Anybody have any more that are simple or have refinement suggestions I could learn from?


With pygame.py.

  1. def main():
  2.     import pygame
  3.     pygame.init()
  4.     width = 500
  5.     height = 500
  6.     white = (255,255,255)
  7.     state = 0
  8.     right = 0
  9.     down = 0
  10.     left = width
  11.     up = height
  12.     step = .5
  13.     main_surface = pygame.display.set_mode((width, height))
  14.     redSquare = pygame.image.load(“redSquare.png”)
  15.     while True:
  16.         ev = pygame.event.poll() # Look for any event
  17.         if ev.type == pygame.QUIT: # Window close button clicked?
  18.             break # … leave game loop
  19.         main_surface.fill(white)
  20.         if state == 0:
  21.             right = right + step
  22.             main_surface.blit(redSquare, (right,0))
  23.             if right >= width – 20:
  24.                 right = 0
  25.                 state = 1
  26.         elif state == 1:
  27.             down = down + step
  28.             main_surface.blit(redSquare, (width – 20, down))
  29.             if down >= height – 20:
  30.                 down = 0
  31.                 state = 2
  32.         elif state == 2:
  33.             left = left – step
  34.             main_surface.blit(redSquare, (left – 20, height – 20))
  35.             if left <= 20:
  36.                 left = width
  37.                 state = 3
  38.         elif state == 3:
  39.             up = up – step
  40.             main_surface.blit(redSquare, (0, up – 20))
  41.             if up <= 20:
  42.                 up = height
  43.                 state = 0
  44.         pygame.display.flip()
  45.     pygame.quit() # Once we leave the loop, close the window.
  46. main()

With graphics.py.

  1. from graphics import *
  2. win = GraphWin(‘Screen’, 500,500)
  3. def main():
  4.     width = 500
  5.     height = 500
  6.     state = 0
  7.     right = 0
  8.     down = 0
  9.     left = width
  10.     up = height
  11.     step = .5
  12.     while True:
  13.         if state == 0:
  14.             right = right + step
  15.             rect = Rectangle(Point(right,0),Point(right+20,20))
  16.             rect.setFill(“red”)
  17.             rect.draw(win)
  18.             if right >= width – 20:
  19.                 right = 0
  20.                 state = 1
  21.         elif state == 1:
  22.             down = down + step
  23.             rect = Rectangle(Point(width – 20,down),Point(width,down + 20))
  24.             rect.setFill(“red”)
  25.             rect.draw(win)
  26.             if down >= height – 20:
  27.                 down = 0
  28.                 state = 2
  29.         elif state == 2:
  30.             left = left – step
  31.             rect = Rectangle(Point(left – 20,height – 20),Point(left,width))
  32.             rect.setFill(“red”)
  33.             rect.draw(win)
  34.             if left <= 20:
  35.                 left = width
  36.                 state = 3
  37.         elif state == 3:
  38.             up = up – step
  39.             rect = Rectangle(Point(0, up – 20),Point(20,up))
  40.             rect.setFill(“red”)
  41.             rect.draw(win)
  42.             if up <= 20:
  43.                 up = height
  44.                 state = 0
  45. main()

With just the native turtle.  (Thanks to Dan Schellenberg.)

  1. import turtle
  2. theWindow = turtle.Screen()          #theWindow.setup(width=400, height=400)
  3. bob = turtle.Turtle()
  4. bob.shape(“square”)
  5. bob.penup()
  6. bob.speed(0)
  7. #determine edges
  8. edgeBuffer = 20
  9. rightEdge = theWindow.window_width()/2 – edgeBuffer
  10. leftEdge = theWindow.window_width()/-2 + edgeBuffer – 10  #the 10 is due to the way that python turtles
  11. topEdge = theWindow.window_height()/2 – edgeBuffer + 10   #draw the square shape…
  12. bottomEdge = theWindow.window_height()/-2 + edgeBuffer
  13. #move to starting location and set original state
  14. bob.setpos(leftEdge,topEdge)
  15. bob.setheading(0)                          #facing east
  16. speed = 5
  17. state = 0
  18. while True:
  19.   if state == 0:
  20.     bob.setx( bob.xcor() + speed )
  21.     if bob.xcor() >= rightEdge:
  22.       state = 1
  23.   elif state == 1:
  24.     bob.sety( bob.ycor() – speed )
  25.     if bob.ycor() <= bottomEdge:
  26.       state = 2
  27.   elif state == 2:
  28.     bob.setx( bob.xcor() – speed )
  29.     if bob.xcor() <= leftEdge:
  30.       state = 3
  31.   elif state == 3:
  32.     bob.sety( bob.ycor() + speed )
  33.     if bob.ycor() >= topEdge:
  34.       state = 0
  35. theWindow.mainloop()

Small Basic and more fun with Python

March 22, 2016

I am always looking for simple programming ideas to give to the kids that make them think and are doable in a couple of class periods.  This little square around the screen is in the general idea.  I figured I would have the kids do it in Small Basic, teach the state variable idea then have them do the same thing in Python.  We had done the traffic signal program earlier this year so the concept is a refresher.  It took me 30 minutes to get it working in SB.  The trouble is I am teaching a Python class.  Python does not have built-in shapes or sprites that animate easily.  You have to use pygame.py or graphics.py.  Both are version sensitive.  Neither is plug and play.  Neither is a nice simple install that the kids could figure out on their own.  The install directions are written by an expert for experts.  So I decide to use pygame to do this exercise.  I am using Python 3.4.  Need the right pygame.  Pygame for 3.4 in not in the usual pygame site.  Search the web.  Find the right pygame.  Delete old version of pygame before installing new version.  (Took a while to figure this little detail out.)  Three hours later I sort of have the program working.

After I get it working in Python I kind of sat back and looked at the process I went through for the last few hours.  Not the coding, that just require picking through the book to get the syntax and working slowly through the programming logic, but at the process required just to get the Python resources ready to go.  I think I can say I could not tell a kid to get this little program working in Python without giving them a whole lot of setup help.

The Small Basic package just makes life so much simple for the classroom teacher.  No install issues, simple IDE, simple documentation, no fuss, no muss.  For a classroom teacher being able to not have to worry about setup, versions (2.7 or 3.5?), multiple IDE choices (Eclipse, PyScripter, etc), and extra packages (pygame, graphics, …) that need to be loaded to do graphics, sprites and so on, is just a huge life saver.  No dinking with the registry and no putting path names in the environmental variables (both things that the average classroom programming teacher would not have access to anyway).

Picking the right language to teach intro programming can be a big decision for a teacher and a curriculum.  You really cannot lose with Small Basic.  Yes, SB is missing some fancy features; parameters, class building and local variables are the big ones I can think of, but those are sort of nice to be missing.  When you reach a point where those are really needed it is time to step up to Java or Python.  I sometimes think the perfect programming language for teaching would have a switch to turn these added features on.  But then the teacher might be tempted not to teach other languages.  Now that would be a big mistake.


Get every new post delivered to your Inbox.

Join 26 other followers