Archive for September, 2019

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.