Archive for March, 2019

The Grass is Always Greener

March 29, 2019

It is spring break.  The weather is poor and I am financially inconvenienced so I figure I might as well evaluate and modifying my CS curriculum.   (What else do broke teachers do on spring break?)

Presently we offer Programming I (1 semester, Scratch, Small Basic), Programming II (1 semester, a mix of about 5 different languages or whatever interests us the teachers), Python (1 semester, college CS credit), Java (1 semester, college CS credit), Game Programming with Unity (1 or 2 semester) and Intro to Programming (1 semester, similar to Prog 2, college general credit).  After some head scratching and conversations with college instructors and people in the tech industry I want to make some modifications. I am going to bag the Game Programming for next year and bring in a Web Design and Development course and an App Development using Android Studio course. The Web Design would be based around HTML/CSS/JavaScript and would have no prerequisite.  Since I know zip about HTML, CSS or JavaScript it will have to be fairly basic this first time through. I know enough people in the industry that I can find some good help with the course. I want to attract some of the non-techie kids with this course. I hope I can get some of the kids that think computer stuff is not for them. Girls in particular. The school is at least 50% female and I only have one in my CS classes right now.  I need to find a solution to get them and the non-programmers involved in the tech classes. I have to show them that this stuff is not rocket science. (OK, it is, but if I want to attract non-techie students I have to convince them it isn’t.) I have found a couple of courses about Web Development, one of them through CodeHS. I would not use the CodeHS because it is not free. I still need to do some digging. Whatever I find has to teach both me and the kids.  I am old and the brain is getting fossilized so it has to be simple and good.

The App Dev with AS is to keep my programming geeks interested in new things and maybe attract some new blood.  Again I do not know AS but the amount of resources available is massive. I am not too worried about learning AS, after all it is just another IDE.  Since AS requires some programming skills I am thinking of having a programming prerequisite. The only CS teacher in the local public school is using AS in one of his classes so I will have a resource on the pedagogical aspect.  I have been hesitant in the past about introducing an AS course because AS looks pretty high level.

This year I sort of prepped some kids for the AS course by offering Java.  I started thinking about the AS course earlier this year but was not positive I was going to offer it.  Since I found another local teacher using it I will dive it. I hope those Java kids will hang with me. I think it is necessary to have my tech students work with phone apps.  Phone apps are the programs of now and the future. There will always be Windows, Mac, and Linux towers but I think the big money will be phone apps and software that interacts with phone apps.  I have no doubt that in 2 or 3 years the primary computer interface will be VR/AR glasses connected to a phone connected to a server on the internet. Connect that to some type of input device (mini joystick, Leap Motion hand tracker or like interface) and now you have something.  I want my kids to be able to come up with ideas for an environment like this, not just be users.

I am ignoring iPhone simply because I do not have Macs or money.  Android apps I can install directly from the computer to the phone.  Apple requires the Apple store as an in-between. Not convenient. Besides, I use an Android.  (App Inventor for iPhone is in beta at the moment.)

Now I just have to find some students, some teaching resources, learn HTML, CSS, JavaScript, Android Studio, build some lessons and try to guess what surprises are going to come along that I have not thought of.  I will save that for next weekend.

The Tale of the Smidgen.

March 22, 2019

I am creating a BreakOut game in Unity using this video tutorial.  I need to do this because I gave my students the same tutorial to work through.  (Usually I proof tutorials before I assign them but since this was from Unity I figured it would be good.  Always a risk.) I had the thing done and went to test it and my paddle and ball were self destructing at the start of the game.  I think immediately I made a typo in the one of the scripts. An hour later, nope. Maybe I attached the wrong script to an object.  Nope. Time to go home. My brain hurts. So this morning I dive into the code trying to actually figure out the logic of what could be the problem.  I am not real hot on Unity/C# specific coding but I can follow it enough to see what does what. I start blocking out code with comments and find what code is causing the paddle and ball to self destruct pretty quickly.  That code is supposed to be there and looks all correct. I can even figure the logic of the code and it has to be like it is. Now an ugly confuser here is the tutorial uses Unity 5 and I am using Unity 2018. Could this be a version issue?  I hope not because if it is I am toast. I ignore this and hope. So I have exhausted all the likely suspects and am sitting and staring and mumbling expletives. Back to figuring what the Unity is actually doing. The base of the BreakOut game is a trigger to destroy the ball and the paddle and reset the start point of both when the ball misses the paddle and hits the base.  When something hits an object that is a trigger something happens. That something is in the code. Something is triggering off the base to run the destruction code. I sits and stares some more. Then there is this brilliant flash. (Different from a flash of brilliance). The walls of my game are sitting on my base. The walls are triggering the destruct sequence. I drag the base down a smidgen and no more self destruction.  I am an idiot. I continue with the tutorial. In the next piece of the video he has the same problem and moves the base down a smidgen. I am convinced I am an idiot.

The good out of all this is I now understand the code and the logic of the whole game much better.  One of the big issues with tutorials is the habit of following them mindlessly. Type but with no understanding of what is being typed.  I am fairly good at pausing to understand before continuing but after an hour of a tutorial I get more mindless than my usual mindlessness.  

Video tutorials are great.  A huge percentage of my programming knowledge has come from video tutorials.  But sometimes they just make your brain hurt.

Getting a CS Program Started: Issues

March 21, 2019

I had the meeting with the public school principal yesterday who wants to get CS courses in her high school.  There was the principal, me, a CS teacher (Dan) from one of the other high schools in the district (the only CS teacher in a district of 3000+) and a businessman (Steve) from the community with extensive CS experience and former teacher.  I was not quite sure what to expect since I did not know anybody in the meeting. No worries, it was a very positive meeting and hopefully she can make some decisions from what she heard. Dan uses the Project Lead The Way (PLTW) CS curriculum with some personal tweaks.  Several years ago I looked at the PLTW CS curriculum for high school and it was appropriate for 7th grade. Dan agreed but said it is now legit for high school. He has a CS degree so he does have experience to base this on. Steve was a very interesting fellow. Never graduated from high school.  Has built and sold several tech companies. Has lots of money from those sales. Says he programs 16 hours a day on a project he is building. He looks like someone who would program 16 hours a day. At first I was very concerned about the perspective he would bring to the meeting. Nope. As a person who has hired a lot of CS people over the years his perspective was incredibly relevant.  

At the end of the meeting we decided it all boiled down to one issue, finding a teacher that wants to teach CS.  She has a business teacher teaching a very basic programming course who did not want to teach programming. He likes teaching business and would not want to teach a CS program.  With the difficulty of acquiring a CS certification in Montana her choices were limited, a business teacher willing to transition over to the dark side or find that unicorn, a CS teacher.

The curriculum was not an issue.  If they wanted to go the PLTW direction (expensive) Dan is a certified PLTW trainer so they would be golden.  Curriculum is rarely the problem. There a lot of good options out there if a teacher can be found that knows what they are doing or are willing to learn.

If she does not fill this position in-district and puts in out to the public I might be interested.   For one thing it would double my income. And it might be a fun challenge to build a CS program from scratch again.  This would be the third time for that. I am not too crazy about going back into the public school but I figure it would only be for three years or so and then retire.  If I can handle the Marine Corps for four years and getting shot at there, I can handle public school and maybe not getting shot at.

A Profile of Montana’s High-Tech Industries: a report

March 20, 2019

For me as a teacher this report is very interesting.  I always have the question in the back of my mind, “Am I going in the right direction with my tech/programming classes?”  For Missoula and Montana it looks like I am OK.

Last week I visited one of the businesses that is a member of this group and which is expanding rapidly.  One of my school’s parents is one of the original stakeholders in the business. I asked him and a number of his employees what skills high schools were missing that would help them the most.  Two things came up. Being a tech company that does not focus on programming I was surprised by the number that said a basic coding class would have been a big help. By far the biggest comment was a shortage of classes teaching “soft skills”.  I did not know what “soft skills” were so I had them clarify for me. They were referring to how to give presentations, how to build resumes, how to do simple things like shake hands and so on. Everyone I talked to said a business and communications class should be a graduation requirement.  

This particular company helps businesses improve their use of technology to increase their profits so a lot of their business is interacting with clients. Of course the employees were focused on communications skills.  They had to be able to talk tech and make sense to non-tech clients at the same time. For this particular business good communication skills was their bread and butter.

I looked at our graduation requirements and it is very easy to graduate without any business course or any course that requires communication skills.  We offer courses that teach both of these skills but they are electives and not super popular electives. I think that is a problem.

Head butting and CS certification

March 15, 2019

Next Wednesday I have a meeting with a local public school principal about bringing a CS/programming program into her high school.  I figured I better brush up on the topic of CS certification in Montana. I know there had been some changes. I contacted the Montana Office of Public Instruction to find out the latest and greatest.  I learned a lot, nothing good. There are two new Class 4 (career and technical) certifications that are relevant. One is Computer Coding. It seems to be vaporware at the moment. The second is Computer Information Services.  Here is a run down of the CIS certification.

An instructor endorsed in Computer Information Systems will demonstrate a basic knowledge including all and exhibit expertise in a majority of the following topics:

  • Network architecture, system configuration, administration, and support.
  • Computer organization, architecture, and operating systems.
  • Computer and network security including cryptography, operating system security, and intrusion detection and prevention.
  • Programming skills—knowledge of one or more computer languages (i.e. C++, JAVA, Visual Basic).
  • Database concepts, management structures, analysis; database management.
  • Software management systems and data communications.
  • Website design methodology and applications appropriate for secondary level, including HTML/XHTML.
  • Technical writing and documentation skills necessary for information systems.

If you have at least 10,000 hours (5 years or more) of experience including all or most of the skills listed above please complete the Class 4 application.

Now if I could do all of that I would not be in education.

I contacted OPI about a CS certification.  Here is the reply.

Computer Science has changed some and the more current term is Industrial Trades & Technology or Industrial Technology Education.  In order to add this endorsement to your license, you need to complete a teaching minor in this area. MSU-Bozeman does offer a teaching minor in Industrial Trades & Technology, so this would be a good place to start.

I went to the MSU site and found the Industrial Technology Education minor mentioned.  It is pure industrial arts, no CS involved at all. There appears to be no Class 1 or 2 (the usual teacher certification) certification for CS.  Something that requires at least programming. CS in Montana is now in the “trades”. Not to knock the trades but I feel there is a difference between welding and programming.  Maybe I am being elitist.

My research has lead me to an interesting conclusion.  It is possible to get a high school CS certification in Montana.   The real interesting thing is none of those routes include CS as part of the certification requirement.  Fascinating.

Sometimes I feel like just butting my head against a wall for an hour or so.  Maybe I can lower my IQ to the level of the people who dream this stuff up.  Probably not.


Unicorns and CS teachers

March 6, 2019

A friend who teaches industrial arts at one of the local public high schools called me last night.  His principal called him in to her office and asked him where does she find a qualified CS teacher if she wants to start a CS program?  (She asked him because he does teach a little programming for his robotics class.) Apparently she is considering introducing CS in the high school curriculum.  (A school of 1000+ with no CS classes. Montana is a little behind.) So he calls me to ask the question because he know I dabble in that sort of thing. I tell him “You don’t.  There aren’t any.” We chat for a while on the subject and I suggest he tell her to call me so I can explain her options. So after the call I sit and think, what are the options for a school looking for a CS teacher and to start a CS program?  Here are the options as I see them.

Option 1 is to advertise for an experienced CS teacher and hope to get lucky.  The odds of this happening are somewhere between zero and zip. Might as well wish for a pet unicorn.

Option 2 is to advertise for an CS qualified teacher, experienced or not.  Last week on 60 Minutes someone stated that there were 75 CS teaching degrees handed out in the whole US last year.  Pet unicorn again.

Option 3 is to point at an unsuspecting business teacher and say “Your it”.  (Business teachers are automatically certified for CS in Montana. Even if they have never taken a CS course in their life.  It seems Excel is CS.) In Montana this is the trend. and other canned curriculum start to rule. I guess it is better than nothing.

Option 4 is to ask if anyone is interested in teaching CS and have the school take the hit for not having a certified teacher teaching the class.  This is sort of how I got into the field. When I started teaching CS in the early ‘80s there was no CS certification. I was interviewing for my first teaching job and was getting the school tour by the principal.  The principal pointed to two TRS-80s still in the box and asked if I knew how to run them. Having just graduated from college with a Science/Math degree and with a little experience on Apple IIes and wanting the job I of course lied and said “Sure, no problem.”  Poof! A CS teacher is born. I eventually got a degree in CS Ed. (In Montana I am a unicorn.)

Option 5 is to find a CS person who is interested in coming over to the dark side and teach CS.  This is not as uncommon as it seems. I know of a number of CS teachers who started in industry and later came into education with CS experience.  Considering the demand by industry for qualified CS people I think these people are going to be in unicorns status in Montana. There is no nifty shortcut for teacher certification in Montana that I know of so this might be another unicorn.

If this principal has another option I cannot think of it.  The possibilities of getting a CS program started and having a trained CS teacher to implement it is a bit depressing.  This should not be difficult. CS is one of the highest demanded job fields out there yet finding teachers to teach it is near impossible.  Weird.