Archive for the ‘Uncategorized’ Category

MEA days: The aftermath

October 24, 2017

I lived!  My “Teaching with Blender and Unity” presentation had 4 attendees.  About what I expected.  The number of people in Montana high schools that know want Unity is is a bit limited.  Those that know it do not need to go to a sectional about it.  The five of us had a great discussion about using tools like Unity as a method to teach with.  Good stuff.  The “Computer Programming : Free stuff is Everywhere” presentation had a full house, about 30 teachers.  Again a very interactive session.  I attended four sessions.  One of them made a major impression and is something I plan to examine in great detail.  It was on a series of CS teaching materials found at podpi.com.  The author of the program, Stephane Come, came up from Sacramento to do this presentation.  What he has written is a series of comic books (more like a magazine) on using the Arduino.  The attempt is to get away from the traditional step 1 through 10 tutorials to a more investigative approach.  I looked through a couple of the books and they look like they have major possibilities.  A kit includes a magazine and all the Arduino hardware to do the task in the particular magazine.  You start with Module “0” which includes the Arduino with components.  Each subsequent module includes the Arduino components required for the module.  At $39 per module I thought it would be worth looking at one closely.  I ordered Module “0”.  About 60 seconds after I placed the order I got an email from Stephane asking if I was in the Friday morning session.  He remembered me and said he would send Module “1” also just for me to look at.  Cool.  I want to look at these for an afterschool coding club for the 4-8 grades.  Hands on stuff and a comic book format.  What more could I want?  Less typing at the computer, more tinkering with actual hardware.

I also attended a “VR in the Classroom” session.  The presenter was a tech teacher in Missoula who has gotten into the HTC Vive VR device.  He also teaches architectural drawing and has incorporated the Vive in to his class.  The students convert their 2-D drawing into SketchUp 3-D and then import the SketchUp into a game engine so it is possible to actually walk through the house they are designing.  $600 for the Vive and another $350 for a decent video card for the computer is too rich for my blood but it does get me thinking about what is becoming possible.  I am going to have to try the SketchUp to Unity import.

One of the best and worst things about teaching CS is there is always something new and cool that is worth teaching.  Yes, teaching programming can be pretty traditional and, although languages may change, the theme is pretty much the same.  Broadfield CS on the other hand with hardware, programming, integration of software and getting things to work together that may not have originally been meant to work together is always new and exciting.  If a teacher is bored teaching CS then they are either a terrible teacher or they need to retire.  Teaching CS is more fun than a box full of puppies.

Advertisements

MEA this week: Once more unto the breach, dear friends, once more

October 17, 2017

Thursday and Friday is the Montana Educators Association (MEA) convention.  For the first time in a long time it is here in Missoula.  I rarely do out of town wingdings like this, simply not worth the travel and motel expense.    My school does not pay for any event like this.  I am presenting two sectionals.  One is “Computer Programming: Free Stuff is Everywhere”, the other is “Game Programming with Blender and Unity”.  I have given the Free Stuff presentation twice before and have it wired.  If I do not hesitate or wander too much I get it done in 55 minutes.  I get some good responses from this presentation.  It is amazing how much schools think you have to spend to teach a course in programming.  They seem to like to spend money for a mediocre programs for teaching programming when there is good free stuff out there.

This will be a first time for the “Game Programming” presentation.  It is just a summary of my observations and experiences from the last year of giving it a try.  I hope that a few more teachers will “give it a try”.  Teaching anything new in CS is always “giving it a try”.  For the Unity and Blender it is not like some kind soul has written a high school level textbook that is more than a “follow the bouncing ball and type the following” textbook.  There are a lot of tutorials like that out there and some are excellent tutorials but tutorials rarely explain in any detail why you just typed what you just typed.  And tutorials never explain any of the design behind the plan.  I just plan to discuss “here is what seemed to work and here is what did not”.  Of course I have a lot more “did nots” than “dids”.    Perhaps the biggest thing I want to point out is that a gaming course with Unity is not a good way to go if a teacher wants to teach programming.  It is more in the direction of problem solving and research (finding the right tutorial to explain what you want to do in a manner you can understand) type objective.  I sort of throw projects out there and we sort of dig up solutions.  My last project was for the kids to write a simple Google Cardboard “game” and then control the motion with a Bluetooth controller.  That is all I said.  We then look for solutions together and show each other what we found.  Like I said, not a lot of formal programming but a lot of hair pulling with trial and error.

Doing these presentations is somewhat interesting.  The first time I did the Free Stuff I was expecting like 5 attendees.  I got more like 45.  The second time I did it I figured the first time was a fluke.  Nope, I got about 30, mostly administrators.  This time I am thinking the 75 people in the state that were interested have come and gone.  I will get 5 attendees.  I will bring 45 handouts just in case.  The Free Stuff is also an 8:00 session.  That should thin out the crowd.  The 45 was a bit much.  Small room, many people, PTSD, not a good mixture.  I survived.  I like it best when teachers come and ask questions.  It keeps my mind off many people in a small room.

Montana is pretty much a CS desert.  The number of schools that offer anything other than an apps course can be counted on fingers and toes.  I hope that I can help the small schools and the teachers inexperienced in CS to “give it a try”.

CS, woodshop for intellectuals

October 12, 2017

I attended the Montana Tech Summit Monday.  Very interesting.  I have never seen so many millionaires in one room.  A Montana US Senator was running the show and the Montana US Congressman (we can only afford one) was one of the panelists.  It was not an event for teachers, it was for entrepreneurs and tech companies but there was enough there to get me thinking about my CS curriculum.  There was a number of interesting panel discussions with some threads that would apply to a high school CS teacher.  I got two big threads.  The first was the extreme shortage of tech proficient job applicants.  They cannot find enough employees anywhere that are willing to learn the skills they were offering.  These companies were not after people already trained, but after people who were trainable.  They were not after high tech skills, they were after people with the basics they could train up.  They were all offering excellent starting salaries but the people were just not there.  The second thread was they wanted people with writing skills.  That is sort of a no brainer but to have these tech companies actually say it surprised me.  They understand the importance of good communication.

This is not going to make me run out and start trying to produce professional coders out of high school but it does make me think about maybe trying to make my school’s technology requirements a bit more directed towards programming and networking.  We require two semesters of technology but if a kid takes the apps course and then the library research class they will never see coding, programming or basic hardware.  Would this be like requiring woodshop?  Sure, but why not if a basic woodshop class would open up a really large job market for the kids?  “CS, woodshop for intellectuals.”  I kind of like it.

Yes, this would be catering to the pressures of industry but maybe a little of that would not hurt.  After hearing from these high tech companies and the long-term futures they have to offer employees I need to consider the possibilities.  Somehow get more kids looking at tech majors in college.

One solution I am thinking of involves internships.  Last summer six students from my school, sophomores and juniors, did an internship with a local tech company partially owned by an alum.  Only one of the six was a techie geek.  They came back with major attitude changes in regards to what a “tech” company needs in the way of employees.  I am hoping the word may spread.  After the summit was over a number of the tech companies at the event set up tables.  I hit the lines.  I talked to four companies about high school interns.  In all four cases it was “Hum, never thought about it.  Here is my number.  Call me and let’s see what we can get set up”.  I think once kids see that a tech job does not mean becoming a code gnome in a dark room eating Cheetos in from of a computer monitor for life, interest might pick up.

Arggg, no rest for the wicked.

 

Programming:The Good, The Bad and The Ugly

September 26, 2017

Jeff Yearout posted this bit of Python code in his blog.

def main():
print(‘Enter object types as t for triangle, r for rectangle, and s for sqaure.’)
print(‘Enter numbers only for dimension values.’)
print()
firstObjectType = input(‘Enter type of first object: ‘)
if firstObjectType == ‘t’:
h = int(input(‘Enter height of triangle: ‘))
b = int(input(‘Enter base of triangle: ‘))
object1 = triangleCalc(b, h)
print(object1)

def triangleCalc(base, height):
tArea = 0.5 * base * height
return tArea

def squareCalc(sideLength):
sArea = sideLength * sideLength
return sArea

def rectangleCalc(length, width):
rArea = length * width
return rArea

As soon as someone posts a bit of code on their blog the code geeks start making comments.  Both Mike Zamansky and I made our comments on the original code. I love it.  This is how I learn to code (or not to code, usually when someone comments on my code).  These little snippets and discussions are usually something at the high school level and usually target something simple.  Having teachers presenting alternative solutions for simple programs like this is great for the kids to see.

When learning or teaching from a book the book gives a solution and kids/teacher will assume that is the only and the correct or best solution.  The book does not explain why this is the solution offered or why out of several possible solutions this is the best.  With these little snippets and blog conversations the alternatives come up and usually the teachers commenting will talk about why this is a good or maybe even a better solution.  Most programming teachers have learned their programming skills on the job so their technique is either from the book they found to teach from or it is a bit primitive from learning the language by trial and error (me).  For most of us, this is the only way to improve our programing skills and understand the good from the bad from the ugly.

There is no such thing as professional development for programming teachers.  Taking a programming class at the local institute of higher learning is not professional development for teachers.  A teacher needs to see alternatives, bad code, good code and weird code kids are going to come up with that works.  A programming course does not do all that.  Brave teachers putting their code up for discussion does.

“I have a dream”

September 11, 2017

I tried to watch the XQ school thing on TV.  “Tried” is the word.  I did not realize what it was at first.  Some sort of weird musical?  After a few minutes I realized it was a really weird comment on the US high school system.  A few more minutes and I realized it was a lot of very un-knowledgeable people making very un-educated observations of what high schools should be.  Yes, there was sort of a grain of truth buried in with the dancing and singing but it mostly seemed to lack realism.  Did I miss something or was this really bad?

Here is my list for improving American high schools.

  1. Train administrators to be leaders, not bookkeepers.  Many years ago I worked on an EdD in Education Leadership.  The “Leadership” courses were budget management and teacher evaluation.  No conflict management, no personnel management, no how to get people to work for you in a positive manner, nothing how to actually lead.
  2. Eliminate tenure. If someone cannot teach, they should be asked to find a different job.
  3. Raise teacher pay and make it a difficult profession to get into.
  4. Require a Master’s degree and at least a year of student teaching with a master teacher.
  5. Disconnect school funding from local taxes.
  6. Do not expect all students to graduate from high school. Some are just too lazy or unwilling to put in the work.
  7. Do not attach funding to graduation rates.
  8. Reward students for academic improvement and/or good grades. Do not just give a grade and think that is reward enough.
  9. Make parents responsible for their student’s grades.  (This would probably affect 1-8 above.)

I probably can come up with a couple more but most of these are unrealistic enough.  There is no way most of these could be implemented but it is fun to dream.

 

The Crazy Season is on us.

September 3, 2017

The crazy season is here, also known as the school year.  I have it pretty easy as far as classes go this year.  My usual senior Stats with 17 students, a Math II with 3 students, a CS class with 2 sophomores and a girl doing a computer animation independent study.  I had these CS kids last year so this is just a continuation.  This year all my classes are on my B day.  My A day is pure techie.  This early in the school year that techie day is busy from 8 to 3.  All sorts of weird issues come up early in the crazy season.  How does a Smartboard that worked fine at the end of last year, then took the summer off, decide it no longer wants to work along the edges?  All sorts of weird things go screwy during the summer when no one is in the building.  Ghosts, that is what it is.  They come in at night during summer.  I am going to get a priest in to fix the problem. It is a Catholic school.  I can do that.

I have the CS kids back in Unity.  I am having them build a simple game for Google Cardboard.  Cardboards fit my class budget.  My class budget is whatever I am willing to spend out of my own wallet.  I really cannot count these Unity classes as programming in the strict sense.  Yes, we do use C# but it is mostly following what a tutorial says to type.  We do spend a lot of time diagnosing what the C# code is all about but that is not the same as understanding the Unity/C# coding to build from scratch.  I consider this more of a research and troubleshooting class than anything else.  Tutorials always have issues so they have to figure out what is going wrong.  Following directions closely may sound like a trivial thing to learn but it is a skill the kids have to get, especially if they actually go into the CS/programming field.  Once we have the Google Cardboard VR working I want them to introduce a Bluetooth controller to the VR project.  Then last I have this Kinect.  What can we do with a Kinect and Unity and VR?  VR and a Kinect?  No idea.  That is why I think of this more as a research class.  I will get them next year with a traditional Python programming class.  I can offer dual-credit to Juniors and Seniors.

The sophomore girl doing the animation independent study wants to make a movie.  She came to me this summer with the idea and I told her if she wrote up a course plan I would take a look and see if it was something she could do.  What she brought me was something a professional skilled at writing course proposals might write.  It definitely looks practical and fascinating.  It helps that her IQ is a whole bunch higher than mine.  I will provide her resources, motivation and then just get out of the way.  I do not want to get run over too bad.  This girl was my tech aide last year.  She was the best aide I have ever had.  She could figure out a solution to almost any computer problem.

One of the great things about teaching at a small school is I can offer kids courses on the fly like that and have classes with only two kids.  The course on the fly thing only works with the right students.  The self-motivation factor has to be high.  For the animation class she is on her own, I am teaching the stats class at the same time and I also know zip about animation software.  It only works with the right student.

It should be a busy but fun year.  Good kids and although the tech work load has gone way up it is fun and interesting work.

A day in the life of a small school techie

August 15, 2017

OK, so it actually was several days.  Thursday last week I went to my office to do a little work.  Yes, it is summer break but I usually go to school at least three days a week to see what went wonkers (“wonkers” – a highly technical term to replace the less technical term “weird shit happened”) over night.  I have a blue screen of death.  A brief message tells me something is corrupt.  After a few minutes of Googling on a second computer I find that I can restore the corrupt files through the BIOS.  I restore the corrupt files.  I reboot.  It reboots.  No blue screen of death.  No, wait.  I cannot log in.  “Domain controller not found.”  Golly, gee, shucks or at least words to that effect.  I log in to the local computer account with success.  That works.  I try to join the domain.  All sorts of interesting DNS errors.  I am back to golly, gee, shucks.  Time to go home and have a beer.

I wander in Friday to do some work.  The computer fairies did not fix my computer overnight.  Nuts, lazy little buggers.  I tinker.  I ping.  Everything is pingable.  I am confused.  Of course the browsers are dead but I have internet because I can ping Google.  It is Friday.  I go home.  There is beer.

I come in Monday.  Still no computer fairies.  (I am starting to suspect they do not exist.)  I am going to figure this out.  I discover one of my domain controller servers is off.  Actually unplugged.  What the heck?!  I fire it back up hoping that, for some odd reason (usually having to do with computer fairies), that that was the problem.  Nope, still DNS errors when trying to join the domain.  I have an epiphany.  I call my computer guru.  He comes in.  He is puzzled.  We tinker.  I have not tried a browser in a while.  Chrome comes up telling me it cannot connect to the internet due to either the firewall or antivirus product.  This is a new error.  The firewall is off.  We turned that off first thing.  This computer has run just fine with this AV product for years.  It cannot be the AV.  I uninstall the AV.  I try and join the domain.  The computer joins.  I log into the domain profile.  It works.  My guru and I stare at each other.

So here are the lessons learned.

  1. Computer fixing fairies may not exist.
  2. Never trust the fact something that has worked for years on the computer just fine will not go bonkers. (Evil computer fairies?)
  3. Have a guru. He may not be able to fix it but confusion deserves company.
  4. Always have beer in the fridge.

Comments on retaining CS teachers

August 8, 2017

This post started as a comment to Alfred Thompson’s post on “How to Retain Computer Science Teachers” but it started to get a bit long and wordy.  Long and wordy is more suited to a post of its own, especially when it is one of those posts where I wave my hands above my head for effect.

This may sound a bit weird but could the problem be that the people being hired to teach CS know too much about CS and not enough about teaching CS?  The chemistry, biology, Earth Science teachers are not leaving education to work in industry, at least in those fields.  Could that be because they are not specialized enough in those fields to be chemists, biologists or petroleum engineers?  They are generalists specializing in teaching these subjects, not field experts that are teaching.  They know a little about a lot.  CS seems to be backwards in education.  We are getting CS majors with a lot of knowledge in the field, enough to actually work in the field, and turning them into teachers.  Unless CS is supposed to be job training the teachers do not need that level of knowledge for K-12.  It would be nice but not necessary.  CS for education needs to less specific.  When getting an Education degree with a Math emphasis a pre-service teacher takes a lot of low level math courses and courses on how to teach math.  They do not take a lot of 300 and 400 level math courses like a math major would.  Since there are so few paths to teaching CS CS teachers end up with CS degrees.  This sort of leaves them totally unprepared to teach 5th graders and prepared to look for higher paying and no 5th graders jobs in industry.  CS Ed should be training teachers to teach CS K-12 which is a completely different education than a CS major would get.

If sounds like I am saying to retain CS teachers that it is necessary to dumb down the education that CS teachers are getting. What I mean to say is if a person is going into education, they do not have time in a 4-year education program to reach the skill level to be qualified for industry.  A teacher actually looking for a teaching job has to diversify their education.  Someone coming out of college with a CS degree and an education certificate is going to be fairly unemployable in most schools.  There are not many schools that need a pure CS teacher.  In Montana there are NO full-time CS teachers.  They all teach one or two sections of programming and something else.  So in that 4 years a pre-service teacher better be looking at a couple of teaching minors so they are more marketable.  So much for the time to get that a CS degree that industry wants to hire.  A CS Ed teacher should also be fluent in some languages that are not too hot in industry; Scratch, Alice, Small Basic, RobotC, and so on.  More time out of that CS degree.

Alfred makes some excellent points on strategies to retain CS teachers.  As the school IT guy these are all on my priory list.  Keeping teachers happy keeps them teaching.  Removing the hassle out of their already insane day keeps them happy.  Happy teachers keep teaching.

My feeling is that the CS teachers that left for industry would have left the education field anyway.  They are not teachers but CS people who have a desire to work in their field (and incidentally make a lot more money).  This is not a good thing or a bad thing, it is a logical career choice.  Retaining teachers in any field is a problem.  The money is not great and there is quite a bit of stress.  If we want to retain CS teachers we must have CS Ed programs that train teachers first and CS qualified teachers second.  And maybe biggest of all is let teachers teach.  Eliminate the paperwork overload.  IEPs, daily progress reports, constant disciple issues, and working with teachers that are in the field for the 3 months of summer.  (Do not get me started on tenure).

I better quit.  When I start waving my hands above my head I cannot type very well.

Mommy, where does curriculum come from?

July 27, 2017

Many years ago when I started this teaching business I thought the stork (a euphemism for textbook publishers) brought curriculum.  About year two of my teaching career the school was going to update the math curriculum so we ordered preview copies of textbooks and looked to see which fit what we wanted to do closest, then modified what we wanted to do to fit what the textbooks said we should do.  Poof, we had a four year curriculum.  After all, the authors of the textbooks had letters after their names and therefore should know more than we “no letters after our names” teachers.  But the seeds of doubt on the stork story were being planted at this time.  I had some Apple IIes and some TRS-80s and wanted to teach programming.  (At the time I did not know there was such a thing as CS.)  I checked on the stork.  In 1983 the stork did not deliver programming curriculum.  There was no watermelon patch (the internet) to look through so there was me, Seymour Papert’s “Mindstorms” and some programming magazines.  Curriculum appeared.  It was sort of an immaculate conception thing.  One day it was not there; the next day it was.  There was not a lot of thought, research, prep or anything else intellectual involved.  I needed something to do with these computers now, so I dreamed something up the day before school started and started building curriculum on the fly.  Thirty-plus years later I am still building curriculum on the fly.  The stork still has not showed up but luckily the watermelon patch has gotten real productive.  Just to keep the analogy going the watermelon patch can be pretty tricky, some are rotten and you really do not know it until you cut it open and others are not quite ripe.

Many years have gone by and for math curriculum I still rely on the stork, but now I no longer try to fit my curriculum to what the authors with the letters after their names say to do.  Now I know what I want to do (still no letters after my name but a whole lot of water under the bridge) so I see what the stork has to offer and cut-and-paste the heck out of it to make it do what I want it to do.  Cherry picking is just so much easier than growing my own.

For years I have had to cherry pick for my CS and programming curriculum.  The trouble is the cherries are really small and far apart, after all they are in a watermelon patch.  The stork just has not come through.  Since I have all that water under the bridge I have a pretty good idea of what I want to do and where to find resources in the watermelon patch.  The trouble is I have a lot of water under the bridge and therefore can separate the good watermelons from the bad.  Most of the new CS/programming teachers are living in a drought.  They could use a stork.

As much as I hate to say it, the stork has to come through if CS is going to succeed in small schools and rural states.  In Montana most schools are small and rural.  The experience just does not exist to build a decent curriculum or, in most cases, a decent syllabus.  No matter what our opinion of stork designed curriculum, the stork drives curriculum for many teachers, especially new ones, many schools and even a few states.  It has to come through if there is going to be some kind of homogeneous “sort of agreed upon” CS curriculum.  Those guys with the letters after their name do sometimes make sense.

A curriculum is more than a semester syllabus.  It is a multi-year program that builds from the beginning to a penultimate course, be it an AP course in some form, a locally developed course or a dual-credit course.  The stork has the power and time to produce something that big.  Those of us making our curriculum with little cherries are purely in survival mode.  What the stork brings also gets shared nation-wide.  It gets teachers looking at the same load of stork poop.  The teachers may not like what comes down but at least there will be a lot more big cherries to pick from.

Are there any K-12 curriculum writing projects in progress?  Maybe I just am looking in the wrong parts of the watermelon patch.  Many years ago I watched the grandfather of the UCSMP math curriculum be developed and written.  (It was written at the University of Montana.)  It was big news in math teaching circles.  The NCTM Journal promoted the curriculum writing project.  I can find no news on CS curriculum writing projects.  The CSTA has a good set of Standards built but I can find no curriculum development based on those.  The CSTA site has some curriculum outlines but these are not to useful to beginning CS teachers.  Beginning teachers need something with suggested assignments, pedagogical suggestions, and hand holding.  Something that says “Do this, this and this.”  Something that is 100% canned and ready to go.  Something that will work for a couple of years until the teacher learns how to wander the watermelon patch to find the tasty ripe ones.

At this point we need some people with letters after their names to step up and write some good stork poop.  I am not thinking someone should come up with a K-12 curriculum.  I am thinking more like a two or three year curriculum that is not two or three years of programming in language X.  It would include programming but would address other CS topics.  Of course what those “other CS topics” are is part of the Great Debate.

I am so glad I have no letters after my name and besides, as can be seen by my mixing of storks, watermelons, cherries and bridges, my writing style is not fit for public dissemination.

Why teach coding? Because it is all we know.

July 20, 2017

Schools are all about teaching coding.  From talking to teachers and looking at what high schools are offering it looks like there is no intent to teach CS or programming (by my definition programming includes UI design, algorithm development, problem solving techniques, pseudo code, flow charting, code design (away from the computer), and a large number of other tasks that are done away from the computer).  Most of the courses I have seen offered (admittedly a small sample but I feel it is very representative of the high school norm) are syntax courses: Python 101, Java 101, Scratch, or whatever.  Teaching problem solving or computational thinking is purely accidental.  Now why is this?  I see it as a combination of several things.

First, and maybe most common, many people (administrators in particular) think CS and coding are synonomious.  Opps.  They are not.  Coding is typing programs.  CS includes coding as a small subset of topics.  Of course, what topics are part of CS seems to still be up in the air.  When I decide I have to have EdD. after my name I will define high school CS and all the topics it should include and build a curriculum to address those topics.  Until that time I will avoid defining high school CS like it was the Black Plague.

Second on my list is that coding is comparatively easy to teach compared to full blown CS.  There are a lot of resourses out there for teaching coding.  Free textbooks, tutorials, coding academies, dozens of great languages, cool game engines and so on and so on.  A new coding teacher can stay a day or two ahead of the kids in the book/tutorial and come out with a halfway decent coding course.  To teach CS or even programming you actually have to know stuff.  You should probably have actually taken some college level courses in CS.  You should probably be able to at least spell pedagogy, even if you are not sure what it means.

Third, and most intimidating to me, is that CS is not really well defined.  If I want to offer an Algebra II course I can pick up one of a couple dozen textbooks that will give me a great idea of what Algebra II consists of.  That textbook will have the somewhat agreed upon topics, scope and sequence, and many pedagogical suggestions.  CS seems to have absolutely nothing.  Get a group of K – 16 computer teachers in a room and ask them what CS should include.  The middle school teacher (for example) is going to say Office and Photoshop.  High school teacher #1 (for example) is going to say that is not CS.  High school teacher #2 is going to say it needs to be taught so where else but in CS is it going to go?  High school teacher #3 suggests that the English department should teach Word, the Math department should teach Excel and the Publications or Art teacher should teach Photoshop.  (Hell immediately freezes over.)  The college teacher is going to say something the K-12 teachers do not understand because they have never taken a college CS course, they have only attended one-week summer in-services on coding.

The first teaching job I had was as a math teacher.  That first year I followed the book exactly.  I had four years of college math and did not have a clue as to how to help a student learn how to complete the square.  The book did.  A new CS teacher does not have this guide.  They are on their own.  So what are they to do?  Teach something where there are many guides available.  Coding.  Kind of a loop thing we have going here.