Category Archives: Uncategorized

Coding on the Raspberry Pi

You can do a lot of amazing, creative and cool stuff with a Raspberry Pi. But for our purposes here, we’re going to discuss how you can use it in a middle school computer science context. And while that’s not strictly limited to code, that’s our emphasis.

So for beginners, RP comes with two standalone versions of Scratch: 1.4 and 2.0. What, no web-based Scratch with all the social and sharing features? Afraid not, but what we can do on the RP is pretty awesome. We can code using the GPIO pins using Scratch, which opens up a whole new world of physical computing, electronics, and digital making. Don’t get me wrong, I love online Scratch and its community. But RP Scratch allows your students to go beyond code-in-a-window and get it to interface with lights, buzzers, cameras, and anything else you can connect to your GPIO pins. Because it’s still block-based Scratch, it’s an excellent jumping off point to learning how to code physical things, like LED’s. And there are many resources available that allow you to create the same program in Python. So then your students can make that jump to text-based coding with the same setup. For instance, they can attach an LED and a resistor to a breadboard, get that LED blinking with Scratch, then when they’re ready, they can accomplish the same feat in Python. Doing the same thing in two languages increases the understanding, especially when you do them side by side. And that eases that sometimes tricky on-ramp to text-based coding.

Scratch 2.0 looks and acts a lot more like online Scratch. So why would you use 1.4? At this point, 2.0 is still a bit slow in executing code, and we all know how patient most middle schoolers are! For that reason, I’m still using 1.4. But I’m ready to switch up when a future version is zippier!

Once your students are comfortable with Scratch and block-based coding and ready to make the leap to text-based code, RP has Python 2 and 3 built in. Both run IDLE as the IDE, and while it’s pretty bare bones, sometimes that’s a good thing. Especially when students are learning not only a whole new language, but a whole new paradigm. Thonny, which is a great Python editor with many more bells and whistles, is also included in the install, but I’ve found it’s overkill for beginning Python students and creates unnecessary complexity.

I would highly recommend using Scratch, a breadboard, an LED, and a resistor to do your first “blinky lights”, which is the physical computing version of Hello World. It takes some patience and a serious attention to detail. If you’re also looking for a good way to introduce some electronics concepts (which are useful in understanding computers), such as voltage, resistance, ground, positive and negative… this is a great entry way. Once you get everything hooked up correctly, then you write the code in Scratch to use a particular pin as your output/input pin, and use those Scratch concepts that are so familiar: forever loops, waits, and broadcasts. And voila! Lights are blinking! From there, add something else — perhaps a different color LED or two, make some traffic lights… add a buzzer that sounds when your character reaches a certain score. Suddenly you’ve got code that works in two “dimensions” — on-screen and in the real world. Now it’s starting to get exciting!

The next step for students after Scratch is a subject of a lot of debate in the computer science education world. How do we get from dragging blocks, where it’s nearly impossible to create a syntax error, to text, where it’s nearly impossible NOT to have a syntax error? I personally agree with the Computing At School curriculum in the UK that Python is the next logical step. I have a couple of reasons for this. First off, the language is more “English-like” than other possibilities, like Javascript. Secondly, it’s an actual real-world language which has loads of libraries available for all kinds of applications. And there are actual Python jobs out there, so learning this language might someday lead to some money! I do like other introductory languages, like SmallBasic, but it’s a dead end.

Another plus with Python and the RP is the abundance of support material available. The RP website alone has hundreds of sample projects, code samples, and ideas, as well as Python tutorials. And there is a whole awesome Python code library for controlling the GPIO pins (gpiozero), which has built-in functions in the API that support many of the most popular hardware add-ons (called HATs in RP lingo — Hardware Attached to Top). I’ve found that segueing over from Scratch to Python using gpiozero code is a relatively painless transition.

Of course, no matter what you choose as your first foray into text-based coding, there is still a hurdle to overcome. Here are some strategies that I’ve found helpful for students.

The first one is reminding them that 1. computers are dumb and 2. you have to speak to them ONLY in the way they understand. Error messages are Python’s way of training you how it wants you to speak to it. I find that putting it this way, while it doesn’t eliminate frustration, does help the students to understand that it’s the computer that’s dumb, not them. A small shift in thinking, but powerful.

The second thing I do is to demo “live coding”. I pick a sample easy intro bit and code where they can see it, and I talk through it as I code. I say out loud what I’m thinking as I code. And inevitably I make mistakes. Then I look at the error message and talk through reading it and trying to figure out what it’s saying. You would be amazed how effective this is, for several reasons. First, I’m modelling the thought process of coding. That removes some of the mystique (and gypsy magic) of coding. And perhaps more importantly, I model that I, the supposedly know-it-all teacher, make boneheaded mistakes. Many times. And I have to fix them. Which includes reading the error messages, trying to puzzle it out, changing the code, trying again, getting another error perhaps, puzzling through that one, changing the code again, etc. It’s a process that EVERY coder must go through. Students who are not used to failure and fear it as a plague will learn that it’s all part of the process. Even Mr Irving fails all the time. That’s just normal.

On a more Python-specific note, I usually talk or demo the importance of indents. Python does not have much in the way of squiggly brackets, semi-colons, etc., that other languages do. What it does have is indents. And they really matter.

Raspberry Pi — the little computer that could

 

In the last few years, we’ve seen a slew of single board computers (SBC’s): Arduino, Beagle Board, Raspberry Pi…. They all have their place, and we’ll speak a bit later about what those places are. But I’m here to tell you that for all-around computer science use and mega bang-for-the-buck, you just can’t beat the Raspberry Pi.

By now, most people know about its back story, springing out of Cambridge University and a desire of their CS profs to acquaint their students with what a computer actually IS. There’s no doubt that computers are easy to use today, but that very ease of use has taken away some of the fun and excitement of learning how a computer works and how to get it to do what you want it to do. I’m totally dating myself here, but I do remember getting a Commodore 64 (cue the “backintheday” music as Grandpa regales the young’ns with tales of yesteryear). When the 64 first came out, there was a dearth of software available. But it did come with a thick spiral bound book called “Commodore Basic”. The expectation was that anyone who bought a computer would certainly want to program her own software, not just buy stuff off the shelf. And there were several magazines on the newstands that had “type-in” programs that ran several pages. I think some of it was even in assembly language! But the thinking was that computers helped you get stuff done, play games, etc., but also were things that you could use to make your own stuff.

Today, computers are a black-box technology, like a car. How does a computer work? I love asking that question and seeing the blank faces of my students! It’s easy, Mr I, you push the button! My personal favorite answer is “gypsy magic”; top points for creativity. But that doesn’t get us any closer to understanding what a computer actually is! Though it’s a wonderful fulfilment of Arthur C Clarke’s saying that any technology that we don’t understand is the same as magic. So if we can start to figure out how it works and get it to do stuff that we want it to do, then I guess we’re wizards! All right!

So this little credit-card sized, $35 computer is getting us closer to being magicians, and probably better than anything else available today. So how does it do this, exactly?

First of all, it’s not in a box. You can see the motherboard, the CPU, the traces on the board… You can plug sensors and wires into its 40 GPIO pins, which provide voltage and “channels” you can use to code attachments. And the attachments are plentiful and not too expensive, running the gamut from sensors to lights to buzzers to cameras to audio devices to… whatever! You can see both sides of the USB ports, so the mystery of the inside of the computer is laid bare.

The Raspberry Pi Foundation provides an updated OS, as well, called Raspian. It’s an offshoot of Linux (but so is the Apple OS, so don’t be scared). This OS has a modern looking GUI (graphical user interface) and comes with a host of programs that you can run right away. So it’s not too scary looking to students familiar with Windows and Apple: desktop, menus, icons, left and right clicks, etc. Pretty intuitive, we’d say. However, some tasks require digging into the terminal, a CLI (command line interface), which goes way back. And while that’s new and different to many students, it’s not impossible. Though, as I often remind them, spelling counts!

And it comes with an ever-changing assortment of free, open-source software (and that can actually be an interesting discussion. Why is this software free? Who writes and maintains it? I love seeing the students eyes widen as the catch a glimpse of an economic model that’s an alternative to individualized capitalism…). The current version as of this writing (Stretch, and yes, all of the versions of RP are named after characters in the Toy Story series. So if you had any doubts about how cool this all is….) includes the Libre Office productivity suite, Mathematica, a browser, some games, and most importantly for our purposes, a host of programming tools and environments. Scratch 1.4 and 2.0, Python 2 and 3, Java, Greenfoot. An older version of Minecraft is included FREE, and though it’s not the latest and greatest, it’s perfect for learning coding. Check out my chapter on that. And there’s even a live music coding application called Sonic Pi. While I wouldn’t use it for my everyday computer, it can do a lot that an everyday computer can’t do, like physical computing and attaching to other machines.

One thing that the Pi doesn’t have is a hard drive. In order to keep the form factor small and the cost down, they work by loading the OS (Raspian) from an SD card, which autoboots when the Pi is powered. Programs are saved to the SD card as well. So it’s a little bit of a throwback to DOS.

So what do you need to get started with RP in your classroom? Well, that $35 computer thing isn’t entirely accurate. You’ll need a few other things, but the RP people rightly figure that everybody already has a keyboard, mouse and monitor. All of these are plug and play. Latest version of the Pi has 4 USB ports and an HDMI port. You’ll also need some sort of power source, and the wall wart variety are available and usually come in a RP kit. In my classroom, I power them from power bars that have USB slots, which I’ve found preferable to having 25 wall warts to take care of. I use the power bar to power the monitor and the other computers I have in my room, which all run Windows 10.

How do you get Raspian on an SD card? Fortunately, www.raspberrypi.org has download links for the latest version, as well as instructions for how to download it and install it on an SD card. Once you put Raspian on the SD card, put the card in the Pi, and power it up, the installation software takes over, prompting you from time to time for your preferences. Don’t worry, all of the preferences can be changed from the settings menu on the Pi.

Because it’s based on Linux, which is based on Unix, which is a user-based system, the Pi requires a login. The initial default username is pi, and the password is raspberry. You should change that as soon as you can. One advantage to this is that if you have multiple students using the same Pi and the same SD card, you can set up different users so they don’t all save to the same folder. It’s not necessary but you might save yourself and your students some serious grief. I’m not sure why, but students sometimes all use the same filename when they save their Scratch game (“game” is a favorite). And if that happens, Johnny will overwrite Suzie’s Scratch “game”. Ouch.

Minecraft and Python — text-based coding!

For my first foray into text-based coding, I recently moved to coding Minecraft with Python. Or “Mython”, as I affectionately call it. I’ve tried other things, like Small Basic and GameMaker (GML, their text language) and, while students can learn from any platform, I felt Minecraft offered more bang for the buck.

The engagement factor is off the charts for Minecraft. I’d be crazy not to try to tap into that. So I launched a year-long exploration of various coding environments for Minecraft(you can see my now somewhat-dated presentation from CSTA 2015 here). My conclusion was that Python offered the best entry-point, and the amount of support available tipped the scales for me. Here’s why:

It’s fairly easy to install and available on Mac, PC, Linux, and Raspberry Pi. For the first three, you’ll need Minecraft, Python, and an implementation of a Bukkit server so that each student can run her own instance of Minecraft. She will also need a Minecraft license (which does cost $27US, but many kids have one already). The beauty of Mython on the Raspberry Pi is twofold — no need to purchase a Minecraft license, since Mojang donated an early version of Minecraft to the Raspberry Pi Foundation. And the Bukkit server is not needed. So there are two big steps you can skip, if you’ve got a set of Raspberry Pi’s (see my chapter on RPi for many reasons why you should consider this).

So why Minecraft?

Engagement level is super high.

Most kids have some familiarity with the game.

The ability to “mod” Minecraft is enticing (though this isn’t modding in the strict sense of the word).

Support is good. I highly recommend getting a copy of the Mython “bible”: Adventures in Minecraft by David Whaley and Martin O’Hanlon. These two gents from Great Britain literally wrote the book on coding Minecraft with Python, and it’s all laid out in an attractive, logical, and clear way, with lots of cool challenges to extend your learning. The authors host an awesome website (www.stuffaboutcode.com) which has a forum for those thorny questions. They are more than willing to help out, and I’ve found these two to be always helpful. In addition, they are on Twitter and have always responded quickly, kindly, and accurately to my questions. And version 2 of Adventures in Minecraft now has support for the Microbit board!

Check out the appendix of the book for more resources.

Here’s how I “teach” Mython. As you might gather from my pedagogy, there’s a reason I put “teaching” in quotes. I stole the idea of the “hackpack” from Chris Penn in Great Britain, as well as some of his excellent code ideas and challenges. I print out “hackpacks” for each student. These include anywhere from 4-7 programs on a particular topic (the first covers basics and building, the second covers triggers, etc.). The code is liberally commented with explanations of what the code does, how it works, analogues to Scratch, gotchas, and whatever I think will help the students understand the code.

And yes, I give them a printed paper copy of the code. That’s by design. I know that copy/paste works great for getting code, and I use it all the time. However, I believe when a student is learning a new language, the muscle memory that she uses by actually hitting the keys and looking at the screen is invaluable in making it stick. It also gives the student a fabulous opportunity to become personally acquainted with error messages! I tell them that error messages are their friends. They don’t believe me, of course, but it’s true, because Python is training them to speak in a way that it understands!

That, of course, is the big difference when we take the training wheels off! It’s now possible to make syntax mistakes! Spelling! Punctuation! Capitalization! Indents! All of it matters. And Python doesn’t know “what you meant”; it only knows “what you said”. Sorry! But welcome to the wonderful world of code.

The good news is that students want to make their code work, and they’re willing to keep at it, fixing errors, until it works. Aha, the magic of Minecraft! Much preferable to doing coding exercises that sort lists or do math or any of the other introductory exercises I’ve seen. I have to confess that my reaction to all of those is a great big “meh”. Who cares? I already know what 8 + 7 equals. Doing it in Python doesn’t make it much more palatable. But if I can figure out how to teleport myself 80 blocks up in the air and 40 blocks to the east, well, that’s cool! And incidentally it’s also teaching a 3-dimensional coordinate system, but shhh…. stealth teaching, remember?

So they get their hackpack, and they type in the code, and it works! Fiero! The dance of joy! But they don’t actually earn any credit for that. I tell them, “Congratulations, that means you can type.” To earn points, they must code what I call a “reverse”. That is, they have to take that code and do something different with it. For instance, one of the hackpacks has code that updates my position every second and displays it in the chat window with the relevant x, y, and z position. The “reverse” is to display it every 4 seconds. Hmm… how to do that? Well, where in the code do you say to display it every second? We look at the loop (while True:) and find the code that says to get my position and post it to the chat. Do you see anything that says to do it every second? Oh… time.sleep(1)! The light goes on, and they swap out the 1 for a 4! Easy peasy! But they’ve learned about a loop, they’ve learned how to get and update my position continually, they’ve learned how to print that to the user (Hello World!), and they’ve learned about delays as well (and that you have to import the time library in Python for it to work).

And I didn’t have to stand at the front of the class and say, “Today, class, we are going to learn about… now follow me as I type on the screen and type that exactly, all together now…” Yawn. Students do it at their own speed and find their own “aha moments”! And they get to see it actually happen in Minecraft, on their screen, caused by the code that they just typed in! Woohoo!

So you can see why I’m excited about using Minecraft for teaching coding!

Another carryover, I’m hoping, is that when they go from my class in 8th grade to our 9th grade CS class, where they will code their own original games using the Pygame library, that at least some of this will be burned into their brains. At the very least, they’ll remember they have to be careful with what they type, since they learned firsthand how picky “the Python” can be!

So if I had a standards-based curriculum, what CS standards and concepts have I “covered”? By the time we’ve finished the unit, we can check off: conditionals, events, triggers, 3D coordinate systems, for loops, variables… in Python, they’ve learned about importing libraries, proper indents, colons and why they’re essential, and how to read Python error messages. But again, shh…. let’s not spoil the fun.

Middle School Computer Science — whaat?

I’d like to say that this post will be the first in a series of posts. But I’m hesitating because I know how my relationship with this blog works. Kinda like a long-term friend that you know you should be contacting but somehow you don’t. And then you feel guilty.

So I’ll just start. I teach middle school computer science. That means grades 5-8 in my school. And I’m lucky that it’s a required course. I have every student in the middle school for a full quarter (about 9-10 weeks). 5th and 6th graders have me 3 times a week, 7th and 8th, 5 times. I’ve been at this for about 15 years and I’m busily building out my curriculum. As you know if you’re in this world, nothing ever remains the same. There’s always a new programming language, a new robot, a new board, a new computing platform… My job is to survey the landscape, see what’s new and cool, and decide what fits in my program.

I have a few guidelines that I use to decide what I incorporate. First and foremost, will kids love it? By that I mean, will they come running into the room, eager to fire up their computer or robot, and get started? If it doesn’t pass that test, it doesn’t make it into the program, sorry. So that means it’s got to have a fairly easy on ramp, and enough ceiling to keep even the advanced kids hopped up and moving ahead.

Secondly, will it work for what I call “stealth learning”? Will the projects and challenges that I use to frame their learning keep them engaged, challenge them, and advance their skills and knowledge in computer science? That’s the stealth part. I very rarely start a class with me talking about a concept (what the rest of the educational world calls “teaching”). I would much rather give them a challenge — as in, “Can you make this robot navigate around the room continually without bumping into anything?” I know this might go against the way that a lot of people frame learning, and I’m OK with that. I’m not saying it’s the only way to do this; it’s just the way that I prefer to do it. And I’m not opposed to “traditional teaching” if it’s obvious that it’s necessary for a student or a class. More on that later.

So for programming concepts, you can probably spot what the challenge up above requires. Events and loops, for starters. If/then… if the robot senses an obstacle, then do something to avoid it. And keep doing that, over and over again….

But how do they figure that out, you ask? You haven’t even introduced them to the programming environment! I’ve found that most middle schoolers only want enough “instruction” to get started and help them achieve their goal. So I give them as little as possible, and only when they’re wanting to learn it. It’s called just-in-time learning. Not a new concept, and I didn’t invent it. But I know it works.

Thirdly, will the tech support a big project? I believe in deep dives into the technology, and big projects that go for several weeks. I break them down into bite-size challenges, some hard and some easy-peasy. Finish all the required ones and you get an A- or 90. If your goal is to “level up” to an A+, you’ll have to complete an extra challenge of what I fondly call “extra awesomeness”. You’ll have to take the basics of what you’ve learned throughout this project and apply them and extend them in a new and creative way. And that’s your choice as a student. If you’re happy with that 90, that’s up to you. I will say that the great majority of my students opt to “level up”. But again, that’s up to them.

And lastly, where does this technology fit in providing an entry point into CS? There are so many avenues in — robotics, programming, game creation, physical computing, art and music… I try to make sure that each grade has a variety of entry points. What jazzes one kid won’t work for another, but I want to provide enough variety that every student will come out and say something was super fun for them!

And while we’re on that subject, let’s talk about the F-word.

Fun.

I know it’s a dirty word in some educational circles. If the kids are having fun, they obviously aren’t learning, because learning is supposed to be hard. My hero, Seymour Papert, coined a term that I live by: “hard fun”. I promise this to every class I have on Day One. I guarantee you that what you do will be fun… and it will be hard. And you may not know what I mean today, but in a few weeks, you will! The fun part is getting stuff to work, whether that’s a game mechanic or a robot challenge. But yes, it can be hard to get there. Fortunately, because it’s fun, you’ll stay engaged, on task, and working hard to get it going the way you want. And nothing is better than that feeling you get when it finally works!

Planning the Raspberry Pi invasion

raspberry-pi-logoIt’s the next to last day of school. So naturally my thoughts are on next year! I’m still in “school mode” and not in “summer mode” quite yet. Give me a few days…..

I’m planning to inject some serious Raspberry Pi goodness into my middle school curriculum next year. It’s exciting and terrifying all at once. So what’s exciting? I truly believe in the mission of the RPi Foundation…. bringing hands-on computing to students today. And I believe that the Pi is the best way forward and will bring back some of the excitement that many of us felt when personal computers were brand new.

And what’s terrifying? Truthfully, it’s the sheer magnitude of what you can do with these things.  Go through the forums, follow people on Twitter, read the MagPi magazine, and you’ll be overwhelmed with what you can do with these things: refrigerator monitors, space exploration, weather stations, Twitter feeds, Minecraft coding, live music coding, electronics, sensors, oh my! The list goes on and on.

Fortunately I ran a Creation Station club this year, where I got students to experiment with various projects on the Pi (among other things), so I have some ideas of what might work. I’ve got 20 Pi 3’s, and 20 Sense HATs. I figure that right there should give us enough to play with for year one. I also have an assortment of one-off pieces: floras, cameras, etc. So any of those might spark serious interest, too.

Along with those ideas, I’m also working on logistics — where do I store them, how do I share them between classes, how do I back up student work, how do we run them in our iMac lab…..

Stay tuned for further updates over the summer! Also hoping to be chosen for August’s Picademy in Baltimore!

TechFrenzy!

winterim_screenshotThe middle school at Porter-Gaud always starts the second semester with a great program called Winterim. It’s three days of programs that the students choose. Some are out of town, like going to Costa Rica, and some are in town. Several have a service component (mission trips, helping out at a local daycare or animal rescue). Several are just for fun (ropes courses, etc.). The last two years I have offered a 3-day intensive tech “camp” that I call TechFrenzy (shameless plug: that’s also the name of my YT channel.

Seventeen students signed up (14 boys and 3 girls, which is 3 more girls than I had last year). I’ve divided it up into one activity per day. Day 1 is NXT robots, culminating in The Grand Intergalactic Sumobot Challenge. Day 2 is Game Design. Day 3 is Minecraft. Here’s how it turned out….

Robots — those of us who teach robotics know the allure of making and programming your own robot. It’s the Secret Sauce! I’ve been doing it for over 10 years now. One of my fellow teachers, when he heard this (he teaches Latin) said, “Dude, you’re cutting edge!” I’d never thought of it like that….

But students love it! And when you combine that with The Grand Intergalactic Sumobot Challenge, well, you’ve got yourself some serious fun. I had a teacher who was down the hall tell me that the sounds coming out of my classroom were about the happiest sounds she’d ever heard! Aww….

Game Design — With a range of grades 6-8, and several levels of experience with creating games, I opened this up to student choice for the program they chose. Several used Scratch, quite a few used Kodu, a couple used GameMaker, and some used the PixelPress app on their iPads. Several students experimented with multiple environments. We finished the day with everyone sharing what they had learned, and then we played each other’s games. Who says learning can’t be fun?

Minecraft —  saved the best for last, of course. Again, we had a range of Minecraft experience from beginners to ultra hardcore types. It’s sometimes difficult to please everyone, but I decided to start out with a creative world in MinecraftEdu. The older laptops we were using were fairly laggy (4 fps!), and there were the usual requests for TNT, lava, monsters, PvP, etc. However, we stuck with that world and by lunchtime, no one wanted to go eat! They had created all kinds of amazing stuff, including some beautiful houses, a town hall, some beautiful pixel art (see above), and some redstone trickery.  For the last two hours, we moved to my lab with my more modern computers and I allowed them to check out Hypixel and Mineplex.  This made for some loud and raucous competition, and I think everyone left satisfied. And I felt even more convinced that my approach of “stealth teaching” really does work.

Now back to “real school” on Monday!

Finding the best coding language for beginners (revisited)

pythonProbably the most visited article on my site here is the original post on this topic. I wrote that about a year ago, and my conclusion was that Small Basic fit the bill best. It was written for beginners, had autocomplete, a syntax that made sense out of the box. Plus turtles!

However, I’m revising that assessment now. I still like Small Basic for all those reasons. But the introduction of two new approaches has made me rethink this (and what kind of teacher would I be if I wasn’t always willing reevaluate what I’m doing?). The two new gateways into coding that I’m using are Minecraft and the RaspberryPi. And I can do Python with both.

In some ways, Python isn’t as user-friendly as Small Basic. Indentation can bite you big-time, and while True loops don’t make sense to kids right away. But once you get those concepts at least manageable, and you get used to the syntax, the language itself makes a lot of sense to kids. Also, no curly braces! Plus it’s a language that kids can grow with. It’s a great beginner language, and it scales all the way up to professional. Sure, it’s not Java or C++, but there are jobs out there that require Python. And I have seen students move from Python turtles to Python Minecraft to programming sensors on the Raspberry Pi in Python.

And that’s a huge win. So, for now, I’ve got a new best coding language for beginners!

#CSTA15

CJ40XdMUcAA263HSo many firsts last week — first time in Dallas, first time at the Computer Science Teachers Association conference, first time presenting at CSTA, first preso on Minecraft…. Lots of cool stuff to report!

My presentation was on Teaching Coding in the Middle School with Minecraft. You can see the preso in Google Presentation form right here. I have wanted to use the power of Minecraft as a bridge to learning coding for some time, so I spent this school year experimenting with different approaches. My preso is a summation of those, with the proviso that I had some very specific goals in mind, which would probably be different from yours. So YMMV, etc. Spoiler alert: I finally settled on the approach used in Adventures in Minecraft book by Martin O’Hanlon and David Whale. It uses Python, and it seemed to work great with my classes.

My Twitter feed blew up the night before, as word got out about my preso. Got to say it was very cool to get all that support, especially from the aforementioned Martin(@martinohanlon) and David(@whaleygeek).  The actual preso was well attended and it seemed to fill a need, as most people were aware of Minecraft and were interested in seeing what they could do with it in their classes. Keep in mind that this was a CS teachers’ conference, so we were looking at that very narrow strip of MC usage.

I got an invitation at the end of my session to present a pre-conference on Minecraft next summer in Denver at ISTE. Cool!

So what I enjoyed about my first CSTA:

  • being at nerd central — coding, cool machines, cool apps, and
  • cool people! Special shoutout to Dr Sarah Guthals(@sarahguthals) from LearntoMod who has a great product and is an awesome fellow traveler on this coding in Minecraft journey sarahme
  • meeting some people I only knew from reading them, like Alfred Thompson(@alfredtwo) and Mark Guzdial, and Laura Blankenship(@lblanken)

 

 

So what’s next? Definitely a determination to learn more Minecraft — modding, servers, coding cool stuff in Python…. and a determination to connect with other educators doing this or interested in doing it. Would also love to connect with some modders and learn more about that…. got to finish my Digital Youth course on learning to mod in Java, follow up on LearntoMod’s growing product, learn some more javascript…. oh, and get ready for school… learn more GameMaker, App Inventor, Small Basic…. got to go!

Kinect for Small Basic

kinectI’m drowning in coolness right now. If this works as advertised, it’s going to be a busy summer, what with learning more coding with Minecraft/Lua, Python/Pygame, and now this!

I already do Small Basic in my 8th grade class and have blogged about it here. Love turtles, intellisense, the logic of the language…. makes it a fabulous first texting language. Now if you add Kinect capabilities, look out.

I did note that “some” of the capabilities available in Visual Studio are not available in the SB version. Can’t find any list of what is missing just yet, and I’m hoping it’s not something critical.

I’m upgrading my school laptop early next week to Win 8.1, so I’ll have to wait till then to do some serious hacking, but woohoo.

Javascript & JQuery

book coverReading this fabulous book by Jon Duckett. I’ve had a nodding acquaintance with JS just from doing some web design and dev. I decided it was time to formalize and solidify my understanding so I bought this book. If you’re a visual learner like me, you’ll probably get a lot out of this book. Some concepts I can get just from reading, looking at code, writing code, etc. But I’m finding that a well-designed visual approach really helps me understand things better. And since I’m a teacher, I’m always looking for ways that will help others get the concepts. This book is full of such examples.

It’s beautifully designed as well. Kind of a coffee table style. Lots of white space, large charts, color photos, etc. But it’s not just the design, though that certainly helps. The author takes the time to explain each concept carefully, with many commented examples. The scaffolding is also logical, as he introduces concepts clearly and then builds upon them.

Highly recommended.