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.

Programming Class Field Trip

November 3, 2019

This Monday I am taking my Intro to Programming and App Building students on a field trip.  This is not your normal CS field trip to a tech company or something like that. We are going to the Big Hole Battlefield near Wisdom MT, about 140 miles from Missoula.  The Battle of the Big Hole was a battle between the US Army and the Nez Perce on August 7, 1877. Nobody won. Years ago I used to give military groups tours of this battlefield.  I want the kids to think about building a battlefield tour app some what similar to this https://www.battlefields.org/visit/mobile-apps/gettysburg-battle-app.  We just completed a text based app on the Montana Indian reservations and I wanted to try something a bit more interactive.  The battlefield tour app is still a bit fuzzy concept-wise but I figure an actual tour around the battlefield might stimulate the kids and my thinking juices.  The battlefelds.org tour apps are nice but they are a bit to text base to my liking. Boring is another way of saying it. I am not sure we can come up with anything better but my goal is the road getting there, not the destination.  Something a bit more interesting is this Gettysburg AR tour.  I think this app is a bit poorly done but it is a great concept.  It is a bridge too far for my kids for now but something to think about.

When I originally started these projects I was just trying to find something interesting for the kids to build with Thunkable X.  The reservation apps the kids built turned out pretty good but the big prize was their expanded knowledge of Indian reservations in Montana.  That is when my goal shifted. I am now thinking the apps are a good idea but the better idea is how Indian Education For All can become the biggest goal of these projects.  It is not always easy to get cross curricular material into CS/programming but I think this is a home run.  

Montana has several large Indian reservations and they contribute a lot to Montana culture and economy.  We have several Native American students in the high school and I think it is important for my students to realize this is not just a label, but a whole state of being.  I want my students to see this culture more than they typically would. We offer a Native American Studies course this year but it is a senior course. (Personally I think it should be a sixth grade course because of its importance to understanding Montana.)

I hope this field trip will bring the kids more depth to their understanding of the connections and issues with whites and the Native Americans of early Montana.  I also hope we can come up with some interesting ideas for a tour app.

One minor drawback with this field trip.  It is supposed to be like 39 degrees in Wisdom Monday.  We are going to have to walk a lot to keep warm. I wish I had this idea in September.

Learning Thunkable: Not all Roses and Puppies

October 3, 2019

This semester I am teaching an app building course with Thunkable.  Why Thunkable? Because Android Studio is a pig to learn and a pig on my old computers.  I do not even want to talk about Swift. There is only so much time in the day. Thunkable is dual platform and since most of my students are iOS I figured Thunkable would be the ticket.  Now that I have been with Thunkable a month or so I am getting a handle on it. I am finding some issues. Coding with it is a piece of cake. It is App Inventor on steroids. Drag-and-drop and an easy to figure out interface.  But there were some surprises. If you go to Thunkable.com and click the Get Started button it sends you to their latest version of Thunkable, Thunkable X. One of my students found a second version of Thunkable I was not aware of so I started digging.  The old version (app.thunkable.com) is the original build using App Inventor as the engine. It works only with Android but is very complete with many functions and it works smoothly. It is what you would expect of a mature product. Very nice. Thunkable X, the default version and their latest version, is not so mature.  Thunkable X does not use App Inventor as its engine, it is a complete rewrite of the app. It looks the same but that is the only similarity. The people at Thunkable dove in and rewrote the thing from scratch. And it is not completed yet. I wrote a little app and played with Thunkable X a bit. It has a Live Test mode which is really slick.  You test your app in a live testing environment on your device. I have an Android and it worked pretty nice. I downloaded the completed app to my phone (this is the permanent install, not the live test mode) and things were not so good. The app is locked in portrait mode. A little research and some discussion with the Thunkable people and I learn there is no orientation sensor for the X version.  That is a pretty big issue but I figure I can do some kind of work around. The weird thing that had me going crazy is the orientation worked fine in Live Test mode. Download the app and it is locked in portrait. That is issue number one. Issue number two is it does not play well with iOS. (No surprise there, little plays well with iOS. That is why I am Android.) Most of my students are iPhones.  In Live Test mode the phone sees the app, it is in the app list, but sometimes they work, and sometimes they do not. Since I do not have an iPhone to play with I have not been able to test the issue extensively. One of my uber-geeks has been looking at the problem and cannot see a pattern. A Live Test app will not work one day and will work the next. Oh joy. Intermittent bugs are so much fun.

If I had Android students I would be more than satisfied with Thunkable.  Professional looking apps can be built. The iOS thing and the orientation issue with version X has me bummed.  I will hang in there with Thunkable because the options are limited. It is kind of interesting to work on software that is maturing as you use it.  As a teacher you just have to shift focus from app building to software testing and issue management. Real life in the computer science world. Sort of fun.

Finding cool projects for programming classes

September 26, 2019

This week both Alfred Thompson and Mike Zamansky made posts about programming projects they like to use in their programming classes.  I looked at Mike’s Pig Latin and immediately thought I need to use that one. Then I Googled “Python pig latin”.  Multiple tutorials and solutions are there ready to copy. Nuts. One of the big difficulties I have in my programming classes is finding fun projects that are not given on the internet in fine detail.  My students are smart enough to use Google and it takes them about two class periods to try to see if there is a solution on the internet. I actually show them stackoverflow. Heck, the pros use it. But it sure does screw up trying to get the kids to do a little original work.  I have a couple projects that are either not out there or are difficult to find. One is the simple program of having a small red square travel around the edge of the screen. Sort of a primitive animation. It is not complicated code but it does take some thinking to have the square travel the dimensions of the screen and not disappear off an edge.  It also takes some tinkering to make it look smooth as it travels. The project is not too original but it is not a 30 second Google for a code solution. At one time I thought my assignment of taking a file of Shakespeare’s insults and making sentences of them was pretty original. Nope, it is there.

Finding or thinking up projects not on the internet is not easy.  The textbook I use “How to Think Like a Computer Scientist: Learning Python 3 Documentation 3rd edition” by Wentworth, et. al. has a lot of good projects in it at the end of each chapter.  Cool. They are all searchable on Google. Not cool. Admittedly the kids really do not hit Google first. Usually they try to code it without help but they learn fast. They also find solutions using coding I did not teach them or they did not get from our textbook.  Good and bad. Good that they are going beyond the textbook solutions, bad that sometimes they have no idea how what they found works. Cut-and-paste coding. I usually have the kids explain their code if it is something I do not recognize and, believe it or not, 90% of the time they can, but sometimes I just have time to grade “it works” so I miss the cut-and-paste.

Good coding assignments are difficult to find or dream up.  Decent length, target the learning objective of what you are teaching, not so boring as to make kids think programming is a bore, not so difficult that the kids cannot find a decent solution, fun (pig latin, insults) and so on.  The internet is killing me.

Thinking on Thunkable: Coming up with App Projects

September 25, 2019

I have three students doing an app building course with Thunkable.  It is independent study because I am teaching something else in another room at the same time.  This sort of limits my teaching mode to YouTube and projects the kids can figure out by themselves.  YouTube is pretty good for Thunkable. I found nine short videos, “Thunkable X Beginner Tutorials”, that get the kids doing some of the major features of Thunkable.  To get them thinking more about apps and away from just coding/programming I had them research what makes a “good” app and write a short paper to turn in. Now I have to get clever (never my strong point),  I have to come up with some apps that might be interesting to build with their initial limited knowledge of Thunkable. I have an epiphany. In Montana schools we are supposed to incorporate Indian Education For All assignments.  Some courses lend themselves to IEA, history and social studies for instance, others, like Math, not so much. Back to my epiphany. I will have the kids build an app that gives information about the seven reservations and the tribes of Montana.  The home page of the app will list the seven reservations. Touch to reservation name/icon and go to a series of pages and links about the reservation and the tribes on that reservation. Here is what I am thinking of at the moment.

Thunkable Montana Reservation App.

Build an app that is a dictionary about each of the Indian reservations of Montana.  The first screen will have an icon representing each of the seven Montana reservations. If the reservation/tribe has a standard icon or flag, that should be the icon represented on the page.  Each icon will have the name of that reservation.  

Touching that icon will lead to a page or pages giving information about that reservation/tribe.

  1. Demographics – population on and off reservation, size of reservation, etc.  
  2. Brief history of tribe or tribes on that reservation.
  3. Brief history of reservation.
  4. Map of Montana with reservation.
  5. Map of reservation.
  6. Link to on-line tribal language dictionary if one exists.
  7. Link to tribal cultural events videos.  Dancing, powwows, whatever.

I actually like the idea which is not always true of some of the programming assignments I dream up.  I am a touch Blackfeet so I am interested in the culture and heritage of the Montana Native Americans so the assignment is relevant to me, and hopefully the kids, but it also accomplishes the IEA goal.  I am interested in what the kids think and what they design.

I am thinking I can actually develop another app project about the important battles of Native Americans against the US Army in the 1800s in Montana.  History, maps, maybe a battlefield guide with pictures as the app user tours the battlefield. The two biggies that get all the press are the Battle of the Little Bighorn and the Battle of the Big Hole.  I think they should be able to find enough on those two to make a decent app with a guide. I used to guide military groups at the Big Hole battlefield and I think an app would be cool.

I am on a roll.  Time to go take a nap.

And it begins.

September 1, 2019

Two days down, one hundred and seventy-eight or so to go.  Piece of cake. My phone apps class may be more of a challenge than expected.  I am using Thunkable which is an expanded and pretty bug free version of App Inventor.  I had a schedule sort of worked out for the next few weeks just to see how the kids were going to handle it.  This course is an independent study to some extent since I am teaching math at the same time. The schedule is toast already.  One of the kids did in one hour what I thought would take 4 – 5 class periods, which is 2 weeks in our block schedule. Smart little bugger. Now I have to dream up some new assignments.   I can always slow him down by throwing Corona SDK at him. Keeps me from getting bored. The game making course with Unity has gotten a bit more interesting too. Unity has changed the licensing procedure just to complicate things a little.  Not a major issue like GameMaker, which I had to stop using because of the licensing change, but an added complication to a packed schedule. One thing I need to target for the games course is less programming and more design. How to build a game should have a whole bunch of work before sitting down in front of a screen and diving into a game engine.  There a couple of indie game companies here in town. I need to chase them down and see if they would be willing to come into my class and talk. All in a day’s work.

Montana CS Standards now exist

August 11, 2019

Two weeks ago for three days I participated in the committee to write Montana State K-12 Computer Science Standards. This was purely volunteer with no compensation.  The word for volunteers was just an email to principals to be forwarded to possibly interested people. I was interested so I was game. Interesting experience. Four high school teachers and three Office of Public Instruction (OPI) folks with some past teaching experience, again all high school although one had research experience with kindergarten.  I was the only one who taught CS as one of my primary subjects, the others had taught a little programming.  

Notice something?  K-12 standards, high school teachers only.  Opps. This is less than optimal. Personally I think Standards should be written by people familiar with the grade level and computer science.  What did we do? Looked on the internet at other state CS standards, CSTA standards and massaged them a little and POOF, Montana State Standards.  Given only three days and the available personel I think what we generated is not all that bad. The K-8 is a bit fuzzy and K-8 teachers may think they are impractical (or “Are you nuts!”) but it is what it is.  To do this correctly OPI needed to find teachers actually doing CS in their classrooms and pay them to take some time out of their summer to work. Three days also seemed a bit hasty. Something that may be used to build a school’s CS curriculum needs a bit more research, input and time.

Montana State now has a draft of CS Standards.  Something we did not have three weeks ago. It is a start.  Now if we can just get some teachers that can read the standards and know what they mean.  Oh well, can’t have everything.

Garth goes racing (again).

July 29, 2019

Last Saturday I participated in a 25-mile mountain bike race, the Sorini 25, which is part of the Butte 50 and Butte 100 races.  I really did not race, I just consider it a large expensive group ride that happens to have a timer. I finished in 5 hours, 7 minutes.  I had only one goal, to beat anyone older than me. I succeeded. There was only one rider older and I beat him by 10 minutes. My time could have been better but I stopped to help a gal with a flat tire for about 15 minutes.  Like I said I do not see this so much as a race but more of a chance to have fun with a lot of riders I do not know. Two years ago when I last did the 25 my time was something like 4:45.  

I have done the Butte 50 twice.  The 50 is noted to be one of the most brutal races in the US.  8000+ feet of climbing and tops out at 7200 feet altitude. The first time I finished (and was not last) in something like 10 hours.  The second time I got cramps at 30 miles and had to quit. 105 degrees and the race has some brutal climbs. Over 50% of the racers did not finish that year so I do not feel bad.  

The Sorini 25 is supposed to be the “easy” ride for those that do not want to spend their life training.  It is not “easy”. 4000+ feet of climbing at 6200+ feet altitude. (I live at 3200 feet and that 3000 feet is very noticeable.)  The last mile is a push up a steep sandy 4-wheeler road. Ugh. I have to say it was worth the $75 entry fee except for that last mile.  Next year there is going to be a new course that will not have that sandy push. Hooray! I am in. For next year I do need to train a bit more.  I ride about 3-4 times a week but the rides were too short this year. I was getting pretty gassed near the end of the race and had to push things I should be able to ride.  I can pretty much smoke anyone on a single track downhill (low IQ and poor survival instinct) but the climbs kill me even when I think I am in shape. I need to get some 20 – 30 mile rides in with ugly climbs.

Now I have to spend the week recovering.  The 4th of August I am heading to Bend and Oakridge Oregon for three days of riding.  Just some place new and different in an area that is supposed to have wonderful trails.

The IT job and weird magic.

July 11, 2019

Doing the IT job for the school can be interesting and challenging.  Sometimes it is just weird magic. Last week I bought some new Ubiquity wireless access points for the elementary school.  It is necessary to adopt, update and configure the APs. To do this I usually just line them up on my workbench, plug a bunch in and set them up through the interface software.  Done it before with no problem. This time I plugged two in and the school’s network went down. No internet, zip. What the heck (or words to that effect). I unplugged one and the network came back up.  I plugged the second one back in and down it went. More what the heck (or words to that effect). Bad AP? Tried another. Nope, still died. Weird switch issue? Plugged the second one in to the main school switch.  Down she went. Time to go home and have a beer and think. The next morning I try to replicate the issue. It is still wacky. It did not vanish overnight. Nuts. I replace every part involved in the AP setup. No luck.  Network still dies when I plug in two APs. I sits and thinks. I have been troubleshooting for about two hours.  I have eliminated all the hardware variables so whatever is causing the problem must be non-hardware related. The APs are 12 inches apart on my bench. Could proximity be the issue?  Never has before but what the heck, I have pretty much eliminated everything else. These are new model APs I have not setup before. I move the second AP to another room. Everything works. I plug in a third AP in a third room. Everything is good.  Proximity. What the heck (or words to that effect). For some reason the two AP signals were interfering with each other enough to kill the school network. I will have to do some research. Arthur C. Clarke’s third law states “Any sufficiently advanced technology is indistinguishable from magic”.  At the moment this issue is magic. Weird magic at the moment but I will discover the why.  Later.

Like I said this job can be interesting and challenging.  I love it.

 

Thunkable, here we come.

July 3, 2019

I want to teach a phone app design and programming course.  Earlier this last school year I started the research on possible programming languages/platforms and talked about it in a couple of posts.  If I was going to do it Android Studio seemed to be the way to go.  So a few weeks ago I started testing the course I wanted to build. I found a decent and recent free textbook (“Android Programming for Beginners 2nd Ed” by Horton) to start with and handed it to my summer tech aide to try out.  I have some used second generation i7 laptops with 8 gigs of RAM I had planned to hand out to those kids that did not have a better laptop of their own. (I do not have a teaching computer lab, everything is BYOD or I give them a used laptop to keep.)  I had just acquired these from the free State recycle warehouse and they were better than anything I had and seemed like they would do the trick. I gave my aide one of these to test just to be sure. He immediately hit problems. The book was just fine, the computer was not so fine.  I looked up the requirements for Android Studio. 8 gigs is a minimum and more is suggested if using the emulator. Most of the kids have iPhones therefore I need the emulator. There are only 2 ram slots in the laptops and I only have 4 gig cards to rob from the extra laptops so 8 is it. Opps. Time to punt.

I am not crazy about App Inventor so it was low on my list of options but it hits the free requirement.  I had looked briefly at Thunkable, again hits the free requirement, but took only a glance because it looked like App Inventor (and it does).  Oh well, I am punting so I pointed my aide at it. (My summer aides typically help me fix computers and rebuild the computer labs. Sometimes I am lucky and get one that actually knows computer stuff.  This summer I got really lucky. My aide knows computers AND can think for himself.) Thunkable is not App Inventor. It has a lot more depth to it. It can test on iPhone and Android. Good punt. Now I just have to build a course and test a lot of material and learn the software.  The usual teacher summer.

When I picked up those laptops I also picked up some i5 towers.  I am going to take the RAM out of three and cram it all into one and see what happens just out of curiosity.