When games were good


That should open up room for argument!

Recently, I had a chat with a teacher who complained that the computer setup at her school was essentially a multi-plex movie theatre with every student having their own screen watching YouTube video!

I one-upped her by recalling the good old days.  My computer lab was actually an arcade.  During lunch, before and after school, of course.  Students were allowed to use the computers and there were a few games that we available for play.  Hang in there; there’s a good educational story to come.

But first, big news from the Internet Archive

Another few thousand DOS Games are playable at the Internet Archive! Since our initial announcement in 2015, we’ve added occasional new games here and there to the collection, but this will be our biggest update yet, ranging from tiny recent independent productions to long-forgotten big-name releases from decades ago.

I had to click on over and see what was there.

Holy smokes!  What a huge collection!  So huge, in fact, that there were so many titles that I had never heard of.  Truthfully, most of them!

Of course, I had to try a couple of them out.  They run directly from the website in a DOS box right in your browser.  Here’s a classic!

Screenshot 2019-10-16 at 11.18.42

Who hasn’t played around the The Incredible Machine.  You can now relive your inner Rube Goldberg!

Now, the educational part.  While the original games had initial appeal for Computer Science students, the win came when they had the desire to write games of their own to try to out-do the commercial products.

The standard curriculum used smaller, simpler programs to write because students were learning the programming concepts.  As any Computer Science teacher will affirm, they aren’t always the most exciting or motivating thing to write.  But, turn students on to writing games that they can actually play or challenge friends with and they catch on fire.  They’ll research and learn new techniques; research parts of the language that they need to make something happen; and consider the person who’s actually going to play the game.  Bottom line, they’ll go much further on their own than you would ever hope to see in the regular class.

Admittedly, current technology is far more sophisticated than these games but they’re still enjoyable.

It’s a nice reminder that we all started somewhere.

Advertisements

Creative Coding in Python


I ran into Sheena Vaidyanathan at the recently CSTA Conference. (See my interview with her here. It includes links to resources that she’s created.)

Now, running into Sheena isn’t strange; she’s a regular at this conference. It was the circumstance that was strange. Just five minutes before I saw her, I had cleaned up the check-in desk and saw that someone had left a book on the counter. It was called “Creative Coding in Python” and written by Sheena with a 2019 Copyright.

I had a quick flip through the book, noting all the colourful pages and then put it on the back shelf for the owner to claim it.

When I saw Sheena, I figured she had to be the owner and was showing it off. I had a quick discussion about it, thinking that she was selling them at the conference but no, she wasn’t. And, this copy wasn’t hers. She told me to take it if nobody came looking for it.

Fortunately for me, I guess, nobody came to ask about it so it came home with me and provided me with the chance to read it cover to cover on the flight home. Now, I did have a couple of other books on my iPad to read that would be considered more recreational but I’ve given up being worried about looking geeky long ago!

I was nicely surprised with the format. I’ll admit, your typical Computer Science book isn’t exactly a page turner! But this one was. I didn’t have Python on my computer to try the examples but I did them in my head and it wasn’t long before I was at the end of the book.

I found the content a nice combination of old and new school content. I wondered to myself if you actually had to be old school to recognize the old school content.

There are five chapters, each devoted to a specific content that introduced and expanded on the concepts.

  • Chapter 1 – Create your own chatbots
  • Chapter 2 – Create your own art masterpieces
  • Chapter 3 – Create your own adventure games
  • Chapter 4 – Create your own dice games
  • Chapter 5 – Create your own apps and games

As to be expected, new concepts are added as you go along and the programs become more sophisticated as you work your way through the book. In the side columns, Sheena introduces and fleshes our computer concepts along the way.

So, who is the audience? Sheena teaches middle school and the writing level and activities would fit very nicely there. Of course, there are all kinds of tools for development of code in Python; she goes conservative and talks about using IDLE. I could see this book being used as a reference for a teacher learning and using Python with students. I could also see it being in the Resource Centre for students to check out if their regular classes are using a block based application for those who want to go further.

Of course, keeping with tradition, the first program is a “Hello world”.

The book is available through Amazon here. Click the cover and explore things.

Nifty


One of my favourite sessions that is held at the CSTA Conference is “Nifty Assignments”.

Nifty Assignments is a project to gather and distribute great assignment ideas and their materials by K-12 CS teachers for K-12 CS teachers. Each year a few assignments are showcased by the authors at the Nifty Assignments session held at the annual CSTA conference.  It is intended to be a replica of (and homage to) the highly successful, and longstanding, Nifty Assignments session at the Annual ACM SIGCSE conference devised by Nick Parlante.

Of course, there are rules – and a philosophy.

Anyone who has ever taught Computer Science knows that the problems included in textbooks can be simple and often not all that inspiring. You know that you end up creating many (most?) problems on your own. Make them relevant to your class, cover the concepts you’re teaching, engage students, etc.

Well, there’s one great Computer Science textbook – the greatest of all time Oh! Pascal! But beyond that, Computer Science teachers know the drill.

So, Nifty Assignments is an attempt, via session at the conference to address that. It’s very popular; whatever room it’s held in seems to always be packed and this year was no different.

The nifty resource can be found here.

This year’s collection has the following topics.

The slidedeck for the presentation is available as well. Check it out here.

https://docs.google.com/presentation/d/1SRXQjHb321b3QNb5VxUVNgf6MTLNo8RXOFgVhpsWSVE/edit

Follow the links on the individual topics to get to the details for these five great, er, nifty assignments.

It should come with a manual


My 11-year old received a #sphero for Christmas and he is passionately coding it to read “Happy New Year’. Really powerful to see him figure this stuff out. Reminds me of my early days with #Logo and #turtlegraphics. @peterskillen @dougpete— Stephen Hurley (@Stephen_Hurley) December 27, 2018

This, from Stephen Hurley, was one of the first Twitter messages that I read Thursday morning that really sunk in. Rolland Chidiac got into the conversation and was part of a further thought from Stephen.

I’ve been thinking about the deeper thinking about this contained in Papert’s Mindstorms. That was required reading in my teacher ed program!— Stephen Hurley (@Stephen_Hurley) December 27, 2018

It got me thinking just a little bit.

So often, toys, gadgets, and instruments of learning come with their own user manual. In many cases, it’s about the mechanics to get something to work and then, presumably you’re off to play and discover.

I wonder how many people actually visit the support website of the gadget to see the support that is provided to turn whatever it is into a powerful instrument of learning? Vendors such as Sphero have huge support, not only by the company, but by good educators doing great things in the classroom with the device. It’s only then that you take a minimal investment and unleash the power within.

It’s not a new thing. Stephen had tagged both Peter Skillen and me in the original message. Peter has long thought and learned deeply about what the child can do when programming takes place meaningfully. I instantly recalled a conversation with him when he “lost it” over a comment that there is so much research done today and little done in the past.

It inspired Peter to write this post. It’s as meaningful these days after Christmas and all the gifts that are in play. I would encourage anyone who has given such a gift this year to read it.

And, the manual? Perhaps this should be sold along with every device manual. At the very least, check it out at your local library.

A text version is available here for free.

Hopscotch for iPad


I will admit to a certain level of geekyness.  I’m not apologetic about it either.  Sometimes, I just like to sit down and write a program for the fun of it.  It’ll never go anywhere and I don’t share it with others.  I find it just something enjoyable to do.

One of the playthings that I’ve been poking about with is Hopscotch for the iPad.  You’re not going to mistake this for another productivity language and that’s not its goal.  The goal is to bring a programming environment for the younger, beginning programmer to the iPad.  I think it does it nicely.  There are some enhancements that are coming and you can read about them on the developer blog.  It definitely looks like the developers are listening to users.  That’s great.

At present, this is what you have.  You’ve got a development environment for the iPad, not dissimilar to Daisy the Dinosaur which had previously been reviewed on this blog.

If you’ve used the Scratch programming language, you’ll recognize the concepts immediately.  From the left menu, you have actions categorized by type – Movement, Lines, Controls, Looks, and Operators.  Just drag and drop onto the workspace and enter any required parameters.  You’ll recognized the concepts of sequencing, repetition, modifying parameters, etc.

The steps and presentation are well designed for the intended programming audience.  The cool thing is that it brings these concepts to students at an early age, on a device that they’re infatuated with, and in a context that is just fun.

What I find particularly interesting is that Hopscotch lets you program primitive actions or gestures your product.  It’s done easily and adds just another helpful dimension to the program.

If you’re looking for a creative environment for students or your children to break away from gaming or other activities, Hopscotch is definitely worth a look.  Just like the original Lego, they’ll soon be seduced into drawing and actions on their screen.  Dare we suggest they might learn a little mathematics while at it?

Powered by Qumana

 

Why Do We Have To Test?


 

Next time you get that question in Computer Science, make reference to this link.

It’s why testing and checking your code is so important.  The typical Grade 11 program may not necessarily be seen by anyone else other than the student and the teacher but there may come a day when the student gets a job and their code goes live.

One little bug … and the media is all over it.

That’s why we test and re-test and look for every possible user input…

You hate to see any company singled out like this but the incident can certainly serve as a lesson to others.

 

Entry Points


 

I make no apologies when I admit my preferences and soft heart for computer science.  Over the years, no other subject has changed so much in content and pedagogical approach.  It’s a terrific computer science teacher who stays on top of all of this.

Over the years, there has been no shortage of debate as to what to teach, when to teach it, how to teach it, …

If you do reading from many blogs who address one concept of computer science – coding – you’ll find that there are a number of posts giving “## reasons to teach coding to students”.  Some talk about it generally so that it could be understood that it should be taught somewhere in a child’s educational career and others specifically make reference to why you’d want to teach coding in elementary schools.  My preference would be, given the large number of places that computers are used in other ways in the curriculum, that the earlier the better.

But the kids aren’t ready!  Really?  How many have helped mom and dad program their smartphone?  How many have their own and have customized it to their liking.  They’re already tinkering and learning.  They are ready.

I’m a firm believer that since we’re big fans of technology, we really want to ensure that students become educated users of the technology, and part of that is to just get a sense of what it’s all about.  Now, I don’t think that we’re expecting our students to create the next great web browser, but there’s so much value in knowing what coding is all about and a sense of how it’s done.  I’ve mentioned it in this blog before but I really believe in the message of Douglas Rushkoff’s “Program or be Programmed“.  Your school’s teacher-librarian needs to have a copy of that in your professional library.

Through the introduction of this awareness, it also opens the doors to the whole discipline where the students just may wish to extend their abilities.

The real question, to me, remains largely unanswered.  Where should coding, as an introduction to computer science, be introduced?  It’s amazing the number of teachers who will agree that it’s a good skill to have as long as someone else introduces it!

I’ve been playing around with Code Monster from Crunchzilla and can see where it may solve the problem for implementation.

Code Monster is a number of things.  It’s an environment to learn about Javascript (not to be confused with Java), it’s a play as you go tutorial, it’s a place to see immediate results for instant feedback, and it’s a conversation with a monster who steps you through the process.

The use of the tutorial provides feedback to the learner and gives an instant sense of achievement.  Recently, I tried it out here at dougpete labs.  (which is really a couch and two recliner chairs with a dog who wants to be part of everything)  Within minutes, my guinea pig made the comment “Hey, I could actually do this … it isn’t all that hard.”  The more I started to think about Code Monster, the more I liked it.

As a beginning learning environment, you’re not presented with a large confusing interface with a tonne of options like you would find in a professional IDE and the concept of the code in one window and the results in another window right beside generates that instant feeling of gratification that comes from writing good code.

With your friendly monster leading the way, learning is quick, efficient, and fun.  The deeper you get into the tutorials, the more you want to experience.

I can see an application like this having multiple entry points in schools:

  • in a computer studies class, an introduction to Javascript with a proceed at your own pace functionality;
  • in an elementary school classroom, where the desire is there to easily introduce coding to students;
  • in a computer club where students learn the concepts on their own in a group setting.

Working through the tutorial with the monster will indeed give a sense of what coding is about and hopefully generate enough interest to take on something else.  There is so much available once you get started – Scratch, Alice, GameMaker – and a good start to coding is a great way to ensure success.

Powered by Qumana