Fun with remote teaching

April 4, 2020

With all this time at home you would think it is the perfect time to be blogging.  My screen time has increased so much that anything that increases that time is not high on my list.  

This remote teaching has been a major education.  How quickly can we get something up and running that actually accomplishes the teaching task?  If some software was not already in place we would be doomed. Google Classroom is probably the biggest aid.  Without Classroom I think we would have been in deep dodo. I am not even sure there is an alternative. I think I could have used just email but it would have been much more difficult.  Classroom keeps things organized. Next is Zoom. There are several alternatives to Zoom but Zoom is easy and was there. I tried Google Meet but it lacked many features. The Zoom whiteboard in conjunction with my XP-PEN graphics tablet gives me a board to do math on.  Zoom has a remote control feature that allows me to control a student computer. I have not tried Microsoft Teams but Zoom is working so well I am not in a rush. I really need to give it a try but the idea of having to build something new is just not interesting to me at the moment.

There is talk in the blogosphere about how many of us are trying to fit traditional brick-and-mortar teaching to an on-line environment and this is limiting us.  No argument. But most of us had a week, maybe days to get something up and running. I myself am in full duct-tape mode. Now that I have something in place, no matter how imperfect, I do not have time to really refine it.  I am just trying to stay up with what I have and do minor improvements like getting the XP-PEN graphics tablet.

One of the biggest issues I have is textbooks.  I found a Pre-calc text for my Math 2 Honors class.  I think it is even legal for me to use. The Stats class is another story.  I found a newer edition of the textbook I use in class but the legality of its use is very much lacking.  Not much of a choice. To find a legal textbook in that short a time with a $0 budget was not to be done. Using a book I am somewhat familiar with is a major plus.  Of course I do not have a teacher edition with answers for either text. This is a bigger issue than I originally thought. I can do all the problems but it just takes time.  

I am not videoing any lectures at the moment.  I am writing them up and posting them. I may have to try the video lecture.  Writing up lectures takes a lot of time and since the kids cannot ask questions on the fly as in a live classroom the write-ups can get a bit long in order to cover any possible questions.  

Testing is a bit of an issue I am ignoring at the moment.  I just do not see it happening. There is no way to prevent cheating other than personal morals.

When this all started the kids were of course glad to be out of school.  Now they want back. They say they miss everyone. Of course there are a few that are in heaven but as bad as this may sound they were all low achievers.  

Overall I am surviving.  My work time has greatly increased.  Writing lectures, doing IT work remotely, helping teachers with tech issues, the usual distractions of working in my living room “office”, helping kids over Zoom and so on that we are all dealing with just adds on to the work time.  Grading homework is very time consuming. The kids send me screenshots or pictures of the homework. Normally the kids do most of their homework in class so I can see what they are doing and help them as they do it. Now I try to read photographs of bad handwriting.  Takes time. Writing up all the problems and posting them would probably take more time. Many of the kids would also have no way of writing on their screens anyway.  

I am really wondering if we are going to get back to school this year.  We have been told we are out until May 4 which would give us a month back in the building.  I hope it happens just so the kids can have a little normalcy before the end of the school year.  There is always hope.

Let the Remote Adventure Begin!

March 25, 2020

Class Zoom meeting number 1.  This is our first day of remote teaching.  We are going to abbreviated class periods, we are normally A/B days with 90 minute periods.  We are staying with A/B but dropping to 50 minute periods. And the day is from 9:00 to 1:00.  The kids all showed up which is a big plus. Many were linked in from bed. 9:00 is early for a teenager.  This was my senior Stats class so they can figure things out pretty easily. After this I will not be Zooming much.  Some of the kids have terrible internet. Some can only connect with their phone. Remote teaching is better than nothing but not by much.  Long term we might get this to work halfway decent. The Bishop (we are a Catholic school) has said we are shut down until May 4th. The public schools are going to try to fire up April 10th.  We will see on both dates. I have a feeling the Bishop may change his mind if the public schools seem to be OK.

We are using Google Classroom.  Thank you Google. I am getting the bugs shaken out of using Classroom.  I had not used it much before. This is the first time with quizzes and assignments.  Being the IT guy means I have to figure it out in a hurry and be able to show teachers how to use it.  Luckily most of the staff is willing to learn it on their own. It is great to work with professionals.

I can see right now it is going to be impossible to convince the kids to pretend they are in school from 9 to 11.  One of the kids linked in from a town 45 miles away where he was on the job with his dad, a plumber. Most of the others are going to sleep until noon.  We will do what we can do.

Textbooks for my math classes are going to be a bit iffy.  I found a free Precalc book for my Math 2 Honors that will work.  The trouble with that is I was not using a textbook. We were doing a free flowing math course,  see something interesting and then do it. It was a conversational class, not a textbook class. I had a broad group of topics I wanted to cover, I would find some material on it and away we would go.  The Stats class was very textbook based. I found a newer edition of the present textbook on-line but I am not sure it is a legal version. Eek. I have no choice. I do not have enough textbooks to send home.  The kids shared. If the book police have time to chase me down, so be it. I probably should find a good free legal textbook but I really do not have the time to redo my material and learn a new textbook. Stats is a class I teach because no one else wants to teach it.  I am not a big fan of stats. Watching paint dry, grass grow, doing stats. I like algebras and geometries. Now that is fun stuff. (GEEK!)

The computer classes will be easy.  I have only the Game Programming in Unity class this semester and that is all YouTube driven.  I have figured out how to remote into a student computer through Zoom so I can help with problems.  Student procrastination will be the big issue but that will be on the student. I will do weekly progress checks and an occasional Zoom just to see faces but all should be OK.  (Famous last words.) There is also the problem of good laptops but I think after today everyone will have a decent machine.

I think the biggest thing with all this is this may be just the first time this happens.  The possibilities of what could happen scare the ever loving bejeezus out of me.  

Good luck everyone.

Unity or Unreal Engine: Decisions, decisions

February 26, 2020

I met a girl who is working on her masters degree in VR and holograms at University of Montana.  I cannot remember what the degree is exactly but she really knows Unity, Unreal Engine, Oculus systems and all sorts of cool stuff like that.  She used to work for an indie game company building game environments. She came and talked to my game making classes. She suggested I look at Unreal Engine for VR instead of Unity.  So I did. After several days of tinkering and experimenting I am now able to make some comparisons.

They are different, very different.  Unity has a huge number of quality tutorials on their web site and a lot of good stuff on YouTube.  Unreal is suffering. The Unreal web site has tutorials but not a lot for beginners. There are some but they are very limited in what they cover.  There is a shortage of good beginner stuff on YouTube.

Unity is much more flexible.  C# programming allows you to do almost anything with it.  Unreal uses C++ or BluePrint, a sort of drag and drop language.  Unreal as a result is not as flexible but is much easier to work with when doing the tasks it is best for.

Unity has a massive asset store.  Unreal not so much. In fact the Unreal Marketplace is pretty paltry.  With Unity I can find almost any object for free. Need a domino? It is there.  Unreal? Better know how to run Blender or the like.

VR is an unwieldy, unfriendly pig in Unity.  Finicky and version particular. Have to download various modules from the Asset Store and hope they work with this version of Unity.  Unreal has VR built in and is a piece of cake to get running. If you are going to work in VR, Unreal is the platform. It took me days to get the Oculus controllers to pick up objects in Unity and it was inconsistent.  It took minutes to pick something up in VR with Unreal. Unreal has a module that will load everything needed to do Oculus VR. But the trouble is I can find a tutorial that shows me how to make Beat Saber in Unity. I can only find a couple of intro tutorials for VR in Unreal.  I need to start searching because the VR is so easy to get started with in Unreal and I really want to get that Oculus ticking.

First person shooter is built into Unreal.  With Unity it takes some work and some C#. Build FPS in Unreal.  But again there are not a lot of quality tutorials compared to Unity.

At the moment I cannot give a real unbiased opinion.  I have a lot more experience with Unity so almost everything is easier in Unity.  After three years of dabbling in Unity C# I can actually debug issues and know what the code is doing.  Unreal’s BluePrint is still a mystery. By far the biggest separator between the two, at least for me, is the lack of free assets in the Unreal Marketplace.  I can learn Unreal but I cannot build all the cool assets Unity has available. For teaching these are just so handy.

Right now I am working through the exercises I give my Unity classes to make a real comparison.  The learning curve is not too steep, it just takes time.

More adventures in teaching Unity

February 7, 2020

This semester I have 25 kids taking my Unity course.  They are split up in three different periods. Six of them are taking a second semester of Unity.  Two of those six are working with the Oculus. (I only have one Oculus which is a good thing considering there is only one computer in the school that can run it).  The other four are building a Wolfenstein first person shooter.

As usual I am having computer issues. Usually with the small number of kids that I typically have in the class (5-8) I only have to provide a couple of school laptops.  I know which laptops ran Unity before so I loan those out. This time I am loaning 6 or 7 laptops and two of my poor old laptops were having issues with Unity. Those two laptops would not save the license.  After about 4 hours of troubleshooting (yes, I did have other laptops I could have loaned but it was the principle of the thing) I figured it out. It was some weird permissions issue with the student’s user account. After another hour or so trying to rebuild the student’s user folder with the proper account settings I finally sat back to think.  Why these two and not the others? I sat and stared. Then in a moment of brilliance (rare but I do have them) it hit me, I had just imaged those two laptops. Something is wrong with the image. I throw the Windows 10 cd into one of the laptops, hose the whole thing and start from scratch.  An hour or so later I install Unity and amazingly it works. I image that laptop, install the image on the second laptop and it works. The lesson here? Be prepared for weird things to happen and be real flexible with due dates. The two kids who were going to use those two computers are at least a day behind now.  It would also help if my loaner laptops were eight years younger.

Now to the Oculus.  It is the Rift S model, pretty fancy and super cool.  I borrowed it from the local university and only got it the week before the semester started.  I did not have time to fiddle with it or proof the YouTube I was going to use as the introduction to building for the Oculus with Unity.  Of course the two kids I have working with it have hit a glitch in the YouTube video. These are two of my brighter kids so I imagine the issue is not trivial.  Since I cannot work on the Oculus at home (my home computer is not even close to min requirements, this thing takes a pretty hefty video card) it looks like I am spending Saturday or Sunday or both at school.  Since I have a head cold I should not go snowboarding and the wife is in Belize so no big deal. Of course looking into that screen is not going to help my sinus headache. I have been wanting to tinker with this thing but simply have not had the time.  (I told my principal yesterday that next year I am not teaching full time and being full time IT. Both have suffered.)

Now more lessons learned with Unity.  I use a Unity asset package called Standard Assets regularly.  It has the scripts for moving characters around among other cool things.  I updated to the latest version of Unity, 2019.3, and the Standard Assets package has major issues.  Go back a version, 2019.2, and it works just fine. If I was paying for Unity I would be very upset but since it is free I cannot gripe too much.  I will stay with 2019.2 until Unity updates the Standard Assets package.  

Teaching Unity is a major effort.  Regular updates that break things, laptops spazzing out, YouTube videos that do not work, the time required to troubleshoot things (videos, installs, hardware) all contribute to Unity being a pain in the rear.  But it is just too much fun to quit on. The kids enjoy it and they learn a lot of troubleshooting, critical thinking (why does this not do what I want it to do), some programming and all around how to use their computer.  Unity is like digital Legos. You can build cool stuff and then play with it.

Sometimes it is the simplest things in life

January 23, 2020

I have three monitors on my desk all plugged into one computer.  Being the IT guy for the school I need them. I have had these same monitors on my desk for a number of years.  Today I dropped a paperclip on the base of the right monitor. It stuck. The base is magnetic! What the heck! I did not know that.  So cool. Sometimes it is the simplest things in life.

Now I have to go grade semester finals.  Not so simple.

30 minutes with the Oculus Rift S

January 22, 2020

OMG!  Is that simple enough? 

I teach a game programming class using Unity.  It is mostly some original teaching ideas and a lot of YouTube.  We do some simple 2D and 3D exercises that can lead to very simple games.  Mostly we learn how to use Unity. (I use “we” because I am still learning Unity and the kids often show me interesting things on how to use Unity.)  Last week I borrowed an Oculus Rift S from the local university. I had to buy a high end video card and got it installed yesterday. After school I hooked in the Oculus.  If I did not have an appointment yesterday afternoon I would probably still be under the influence. This thing is a black hole. I cannot wait to start building for this thing.  I am very glad I cannot afford a new home computer. I would have to buy one of these things and then my real world life would be over. Matrix here I come.

Second semester I am offering a Game Making 2 course using the Oculus and Google Cardboard.  Having only one Oculus and only one computer capable of running it may cause a bit of a choke point but this is a Catholic school, we shall overcome.

Computer Science on the Cheap does not always work

January 12, 2020

I teach at a Catholic school.  We are small (158 in the high school) and for a private high school we are fairly cheap ($10200 is the highest tuition but it is prorated on income) so our budget is a bit challenged.  As a result the budget for my CS program is $0. All my computers are donations or come from the Montana State recycle warehouse. All the software I teach with is free or has a free version, i.e.  Python, Visual Studio, Unity and whatever else I use. This has worked for years with very few limitations on what I teach.  

This year I have hit the hardware limit wall twice, hard. The first time was with Android Studio.  It runs on the old i3 and i5 towers and laptops I have but the emulator is dead slow. Since most of the kids have iPhones I have to use the emulator to test an app.  So the app building class I was thinking of using Android Studio in is out. No great loss, I was not looking forward to having to learn AS as it seems to be a real steep learning curve.  Still, it would have been interesting.

Yesterday I hit the second wall.  The local university’s Graphic Design department loaned me an Oculus Rift S for my Unity game class.  One of the instructors is a friend and arranged it for me. The video card requirements far surpass anything the school owns.  Bummer. I was hoping I could get a little luck and it would run on some of the older cards I have but it is not looking good. The Oculus uses Displayport.  The few cards that have Displayport are really cheap and old. But I have a solution. I thought of having a bake sale but I am a terrible baker and do not want to poison staff or students so I have to get more clever than that.  So I am going to ask for money. I suck at asking for money because I have gotten really good at patching things together with old hardware. It had become sort of a weird personal goal, how cheap can I do a quality CS program. (I actually do a presentation at education conferences titled “CS on the Cheap” where I talk about how cheap it is to get a CS program going with free software and the Montana State recycle warehouse hardware.)  If the school does not have it I am going to hit the richer parents. I have a number of parents that work in the tech field and I consider rich. I hate hitting up parents for something like this, after all these parents are already paying the maximum tuition, but I really do not see a better solution at the moment. I will see what happens.

All of this does show the weakness of my present hardware acquisition system.  It is looking like a lot of the newer tech I want to work with takes newer tech to work.  Ten year old i5s work fine with a standard programming class, but as soon as I want to do something with modern hardware; cellphones, VR, AR, and whatever, I am hurting.  For next year’s budget I had requested six $1000 computers. All fine and good except I really need those computers tomorrow.

Is it all that critical that I teach a course involving the Oculus?  No, but I do think AR and VR are very important and besides it looks like a lot of fun.  And it is very important to find fun things for students to do in high school.

Fun with C#, Visual Basic, Thunkable and other stuff

December 19, 2019

I want to introduce my Intro to Programming students to Visual Studio and Visual Basic or C# to finish off the semester.  I just want to make a simple form and a simple bit of code for the buttons on the form. We just did the quadratic formula in Python and built a Thunkable app doing this so I might as well carry it over.  Since I have not used VB or written in C# in a few years (Unity C# does not count. The usage is very different.) I figured I better refresh. I whipped up the VB app pretty quickly using a couple of references.  Yippee. I did the same quadratic program in C#. I learned some very useful things. First, to get a form built in VB over to C# is very easy. It is a copy and paste. I thought it cannot be that easy. Yes it is.  Coding in C# vs VB is a bit more work, semi-colons, curly brackets and a few other issues, but the references I had were good for the needed examples. After coding the same app in both I am convinced that I will have the kids tinker in VB instead of C#.  VB is just simpler.

I had the kids build the quadratic app in Thunkable.  They all agree block coding is a real pain in the posterior.  I am happy I am not alone.

I had the Math 2 Honors kids do the quadratic in Small Basic then code up the Law of Cosines.  At least one student is now working on a Law of Sines program on his own. It is interesting how some kids are really attracted to coding and others are extremely ambivalent to the whole concept.

For next year I requested money for six new computers for my “lab” (my office).   I want to see if they will give me $6000 for some new i7 – i10 computers with real video cards. Presently I use Montana State hand-me-downs that are 5 – 10 years old or the occasional donation.  Right now the best computer in the school (a 5 year old i7) was donated by a telephone company here in town. The i5s I am mostly using, both towers and laptops, are being maxed out by my Unity class kids.  I also want to try Android Studio next school year and the built in emulator is a real pig. If I get the money (slim chance comes to mind) I am going to have my students build them from online parts as part of the class.  I can get better computers cheaper this way and the kids get to participate in the process. I will build six identical computers, I am not crazy enough to try different builds. I have a couple of kids that are in to speccing dream computers.  I figure I can tone them down a bit to get an affordable computer in the budget. We have not had a new computer for students to use in the school in 13 years. The state hand-me-downs have been more than enough for the average use and they fit our $0 tech budget nicely.

Rebuilding Programming 1 and 2 Courses

December 16, 2019

The teacher that taught our Computer Apps, Programming 1 and 2 courses moved on at the end of last year.  He found a job in a public school for twice the pay and a retirement plan that actually lets you retire after 20 years.  Our retirement plan is “teach until death”. This year we are not offering the two intro programming courses he taught because my day is full and his replacements (two part-time teachers) do not do programming.  Since programming/CS teachers are a bit scarce in Montana, as everywhere else, I may have to pick up the courses next year. What he taught fit his programming knowledge and comfort level: Scratch primarily and a little Small Basic at the end of Programming 1, and then more Small Basic and some Visual Basic for Programming 2.  The Programming 1 course is intended for kids who had never programmed before. It gets filled with a lot of kids just filling a graduation requirement or that have no place else to go that period so it is not a bunch of enthusiasts. Some suffer greatly having to think in the organized manner programming requires. Scratch works pretty good for these kids but being an old fart used to line code Scratch is a real pain for me.  I find it extremely limiting and requires a bit of a brain shift. Like I said, I am an old fart. But if I do not use Scratch where should I go?  

I am tempted by Thunkable for the Programming 1.  It does have some glitches but it is drag and drop and it has more longevity as a useful tool than Scratch.  It is also a bit more entertaining for the kids to build phone apps that they can show others. To paraphrase Field of Dreams “Make it interesting and they will come”.  For an intro course for “first and only” programmers this might be the way to go.

As for the Programming 2 I may just not worry about it until I see what I decide to do for the Programming 1.  Depending on who I get for Programming 1 can determine what I can do for 2.

I only have 4 months to figure this out.  I think I have the time.

Want to teach Unity but do not have the time to build a curriculum?

November 21, 2019

I stumbled on this the other day.  https://learn.unity.com/course/create-with-code   It is a complete package on teaching Unity by Unity.  Teacher setup, resources, lesson plans and detailed videos are all there.  I think a non-Unity experienced teacher could actually run with this. It might take a little extra work on the teacher’s part to fill in some gaps but it would be doable.  I already teach a Unity course this semester but I think next semester I will use part of this curriculum. It is more detailed than the YouTube videos I typically use and the sequence is just slightly more organized than my random wanderings.  It also goes a bit slower than my present sequence. Probably a good thing considering half my students get behind because they refuse to listen closely to the YouTube videos. These course videos are very slow which drives me buggy but they are probably the right speed for the kids.  They are also much more detailed than the YouTube videos I have been using.

My present assemblage of YouTube videos and text tutorials leads to a lot of code cutting and pasting or blind typing of code that is not understood, not really a good way to learn C#, coding or develop an understanding of anything.  I need to watch more of this course to see what type of detail they go into when they hit the coding section. I am just now getting there. I wanted to be sure to watch through all the previous beginning videos to see if it makes sense for a beginner.  There are some holes but nothing that cannot be fixed with a little show and tell. The lesson plans that come with the course are outlines of the videos and are no way as detailed. Using the lesson plans it is possible to zip through the course and yet not have a clue how the code in the various scripts work.  I really wish these lesson plans were available on an editable format. I have enough experience with Unity that I would really like to be able to fill in the places I know the students will have questions.

The Unity course I teach has become one of the more difficult courses I teach for several reasons.  One is my rather limited experience with Unity. I have reached the point where I can troubleshoot most problems the kids encounter but it can be time consuming, there are glitches that just happen as any programming/software teacher is well aware of.  Another issue is a limitation of hardware. Unity takes a halfway decent computer, something many of the kids do not have. I have loaner laptops that do the trick but the kids are reluctant to haul the things home, they are old and pretty good sized. My old laptops also have battery issues, that is how I got them, recycled Montana State laptops with many miles on them.  One kid lost about an hours work when someone pulled his cord. (He is now intimately familiar with what it means to save regularly.) I have some kids working on some good towers in my office so they are limited to those computers. (A Unity project is not something you quickly stick on a thumb drive. The things are BIG.) The course is also very time intensive for the kids.  It takes time to watch the YouTube videos and build the scenes and characters. Since the kids are pretty much limited to in-class time this means an hour and a half every other day. Working on a computer that long at a stretch is simply not realistic for most kids. I have trouble sitting in front of a screen that long and I enjoy programming! I expect them to take sanity breaks.  For most of the students taking Unity home is not a feasible option. There is also the issue of skill and interest. I have a couple of kids that are good at this stuff. They are detail oriented, can read instructions and watch videos and get everything out of them. They actually remember what they did. They also enjoy the building of scenes.  They whip though an assignment in a very short time. Others in the class can not read the IKEA instructions to build a three shelf bookshelf.  In a class that requires following directions closely they suffer greatly. This canned Unity curriculum goes slow enough and has enough redundancy that those without the ability to follow directions closely might do better.

I am not one to typically use canned curriculum but sometimes limits in knowledge and time require their incorporation into an overall scheme.  This curriculum seems to be worth the time to modify and use for an intro Unity course.  I will give this a try Spring semester.