All posts by

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.

Minecraft Coding

minecraftI’ve spent a good part of my spring break investigating coding in Minecraft. Actually, I’ve been looking at all kinds of avenues to do this over the past several months. Why? Because Minecraft is an amazingly awesome piece of software, kids love it, and it can be a fantastic gateway to learning coding.

There are so many approaches, however. I’m not the only one who noticed the above, and there are a raft of avenues out there touting their awesomeness for teaching coding through Minecraft. I’ve looked at many of them, and there is no One Way to do it. So much depends on the age and experience of the kids you’re teaching, what you feel comfortable with, etc. I’m doing it in my 8th grade classes, as a bridge between GameMaker and Small Basic. So kind of a first introduction to text-based programming. Or as I call it: Taking the Training Wheels Off.

After looking at modding in Java, writing plugins in Java, some Snap and Javascript, I think I’ve found what’s going to work for me in my situation. The Computercraft mod uses the Lua scripting language, and Lua is just simple enough that I think it’s workable for an intro to text-based coding. Shameless plug — I’ll be presenting on Teaching Programming in the Middle School Using Minecraft at the CSTA conference in Dallas this July.

Stay tuned for more.

Teenage Mutant Ninja Turtle Graphics

squarePinwheelIn my last post, I wrote about my decision to go with Small Basic as the best introduction to text-based coding in my classes. We make the jump in 8th grade CS, after having spent a month or so with GameMaker.

As I explained to my students, it was now time to take the training wheels off. We started with your basic TextWindow stuff: Hello World, getting user’s name and saying hello, calculating the user’s age in dog years, a simple savings calculator, a tip calculator. We slogged through my examples and students picked up some of the basics — variables, if statements, math calculation. All well and good. Not exciting but a good start.

After 2-3 days of that, I introduced the GraphicsWindow. We did shapes, fills, lines, background colors. Interest rose, as they could see the results of their code and the added benefits of color. The other day I introduced the Turtle… and BOOM! Knowledge and enthusiasm explosion.

I introduced FOR loops (with some trepidation, since I’ve found it’s a tricky concept for most middle schoolers). I casually demoed making some cool art with FOR loops. EVERYONE wanted to know how I did it. Showed them the simple code and challenged them to change it up, make it more colorful, experiment with different angles and movements. I had already introduced GetRandomColor, and kids went crazy. Some wanted to have a Turtle Art Exhibit.

Next up… making the art interactive. But I feel even more convinced that Small Basic is the right choice.

And the winner is…

sb_logo… so far: Small Basic. Here’s why:

  • English-like commands
  • Intellisense
  • Auto-complete
  • Turtles!
  • Limited # of objects
  • Can be a path to Visual Studio (has a “graduate” feature to VB)
  • It makes sense to me

I admit to being a bit skeptical before trying it. I didn’t like the dot notation and thought kids would get confused by it. I didn’t like the length of some of the commands (like GraphicsWindow.GetRandomColor!). And frankly, I was prejudiced against it because it was a Microsoft product.

So I devoted some hours to poring over tutorials, learning some basic coding, making my own game, learning keyboard controls, etc. Once I got immersed in it (“down the rabbit hole”), I started to love it. Now I have had some experience with Visual Basic years ago, and perhaps that’s what made it make sense to me.

Tried it with my 8th graders, and they caught on to the basics pretty quickly. Intellisense was a HUGE plus, as was autocomplete. And turtles, FTW!

Is it perfect? No. You could easily make a case for Python or Processing. And I haven’t eliminated them from the possibilities. But for now, I’m liking what I’m seeing.

Finding the best coding language for beginners

if-kids-in-third-grade-can-handle-coding-so-can-youThe title is a red herring. First, what do we mean by beginners? Second, I don’t think there is a “best” language, even if we could define who those beginners are. Here are some thoughts from the trenches, though.

I started a new job this fall teaching CS in grades 7-9, so I’ve covered a pretty wide spectrum of “beginners” with various backgrounds and levels of understanding CS. Here’s what I’ve done by grade:

7th grade — HTML, Scratch, LEGO Robotics (and a little 3D modelling using MinecraftEDU.
8th grade — HTML, GameMaker, a bit of Minecraft exploring, Small Basic.
9th grade — Blitz Basic, S2 Robots, App Inventor.

We’re trying to find the right combination of challenge and enjoyment, correct scaffolding, what works, what doesn’t…. It’s been quite a ride. Things that I thought would be a slam dunk because I’d done them before, like Scratch, were more challenging than I expected. Things that I thought my 8th graders would love, like GameMaker, weren’t loved. Small Basic, which I thought would be too confusing, went really well once we got into turtle graphics.

To be fair, I’ve had to learn an incredible amount of stuff. I’d never heard of Blitz Basic till I started here. Never dabbled in Small Basic and have never used the SR robots and the Propeller language. My lab is a dual boot environment, with a Mac platform and Boot Camp for Win7. It took a few weeks to get everything running smoothly technically. Which is all to say that I was teaching stuff that I was learning just ahead of the kids.

More conclusions in the next post…..

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.

Hard-earned lessons on hard fun

So I just finished teaching my Introduction to Robotics (IROB) course at the CTY camp in Baltimore. The students were rising 7th graders. For the last day, I asked the 14 students to write some advice to future students of this class. As I expected, their responses were fabulous. Here are some excerpts:

“Don’t feel down when you fail. It’s normal, it takes hard work to succeed. You feel awesome when you succeed. You’ll want to quit, but don’t. It’s worth the work.”

“In IROB, the classes aren’t just fun, they are HARD fun. If you learn to enjoy the hard parts as well as the fun parts, you will LOVE IROB. Do not get upset when you fail, learn from it. If a light sensor isn’t working check and see it is plugged in. As Thomas Edison said, ‘I didn’t fail. I found 10,000 ways it didn’t work.’ Don’t give up and do your best.”

“One important thing to remember is that Simple is always better. Also remembering that if you add a lot of things your robot will be less stable. I do think that it is fun to learn some lessons the hard way because you remember the lessons better.”

“IROB is a great course. However, I need to tell you few things to make it even better. First, learn the phrase ‘hard fun.’ You also need to learn to not get frustrated easily. If you are a type of person that gets frustrated easily, you may have a tough time.”

“If you like building with legos and Scratch without instructions, this will be twice the fun. For sumobots keep the center of gravity in the middle and low. For everything but dragbot and the mountain climber use at least 2 motors. Gear ratio is very important sometimes.”

“You have made a good decision to take IROB. The first few days are easy, but the rest is not difficult but frustrating. You will fail a lot, because getting a piece or program just so is extremely annoying. That makes getting it right all the more rewarding. Good luck, and build on.”

“During the course, it’s not completely difficult, but it’s not easy. Hard fun, one of Mr. Bob’s favorite terms, is true. But even if you find 10,000 ways that don’t work, not getting frustrated easily will help. Think of NAO, Stanley, Atlas, and Asimo. I guarantee the 1st versions all failed. As long as you don’t give up, the result is completely worth it.”

“In this course of IROB, you should take these next few statements very seriously. You must always make your robot stable, so it doesn’t fall over. You must program your robot exactly what you wanted it to do, step by step, because robots aren’t very bright. Finally, don’t get frustrated in this course if your robot doesn’t do what you want it to do right away. We have a saying in IROB: fail early and fail often.”

waving-robot-22623701“Always continue to improve your robot, but remember that simpler is always better. When designing your first robot, if it doesn’t work, keep trying before you come up with new ideas. Fix every problem one step at a time, so you can learn the causes of the problems and how to prevent them in the future. Most importantly, robotics is a perfect example of hard fun.”

“Within this course, building your own robots may be difficult, if not very difficult. Always make sure to never give up, as the solution to your problem may follow. Also, if you don’t contribute enough work and effort, a mediocre robot will inevitably follow. Also make sure to have hard fun, because it’s only three weeks. Make the best out of it!”

“IROB is a very fun class where you learn a lot about robots. You do a bunch of fun activities like sumobots and dragbots. In the last week you get to build a robot that does whatever you want, but remember to keep it as simple as possible.”

“I know sometimes, you feel like you want to rip your bot apart, LIMB from LIMB, but it’s okay. Things will get better, just because you failed doesn’t mean you can give up. Just keep swimmin’. Remember, it’s fun, but hard fun.”

“In IROB, you will encounter a lot of strenuous testing and failures. You will come close to fainting from exhaustion by thinking about how to fix or improve your bot. But there is so much fun also: the feeling of having accomplished something, the excitement of participating in competitions, the relaxation of watching a robot YouTube video for a break. But with persistence and hard work, you will enjoy IROB like no other class you’ve ever taken before. Just make sure you follow the rules.”

Robots robots robots

20140708_081720If you were a 12 year old with a techie bent, and someone offered you the chance to spend 3 weeks of the summer at a camp where you got to build and program robots pretty much all day, what would you say?

If you’re like the 14 students I have at just such a camp, you’d probably say, “Well, all right!” We are now in week two of Introduction to Robotics at a camp run by the Johns Hopkins Center for Talented Youth (known colloquially as just CTY). This is my 8th rodeo, and I can tell you from the instructor’s perspective, it’s intense and intensive. We move fast.

I have three of my mantras on the board. The first two are standard. “Hard fun” is my mantra from my hero Seymour Papert, and I guarantee every student will have some of this. I don’t know where the second one came from (“Fail early, fail often”), but it’s a good way to set expectations. Students at this camp are bright (that’s where the “talented” comes in), and are often the top students in their respective classes. They are used to achieving academic success as defined by most schools. They are not used to failing: having their robots fall apart, not do what they wanted them to do, lose a race, or get pushed out of the sumobot ring. But that failure is an important part of the course, and life itself, of course. As Thomas Edison said “I didn’t fail, I just found 10,000 ways it wouldn’t work.”

The third is an acronym. HOLEF stands for “Hands Off Legos, Eyes Front”. It’s my magical word for focusing attention on something everyone needs to hear or see.

New coordinates

logo

For all of my readers, I am excited to announce that I have taken a position teaching Computer Science at the Porter-Gaud School in Charleston, SC. It’s an exciting move, both in my career and geographically, and I can’t wait to get started. PG has a fabulously innovative CS program, led by Doug Bergman, and I’m flattered and jazzed to be a part of it.

This summer will be crazy busy, as we pack and move. More to come!

Loved this Minecraft book

mc_book_coverJust read Minecraft: The Unlikely Tale of Markus “Notch” Persson and the Game that Changed Everything. Man, what a read! If you are a Minecraft fan, or if you want to know how it all started, get this book.

There’s a fair bit on his youth, family issues, and the first computer he learned to program, the Commodore 128 (yes, I had one. Loved that computer!). You can read this book for so many angles: a follow-your-dreams inspirational story, a history of the videogaming industry, a plea for indie games, or just a narrative of one of the most surprising success stories of the 21st century. And there’s a whole chapter on MinecraftEdu, the version I use in my Minecraft Club.

It’s such an unlikely game to sell millions of copies. But as I said in another post here, I have never seen anything like the response of my middle school students to anything that happened in my computer lab. When I asked for beta testers over lunch one day, I had a dozen students actually run into my lab to get seats and start. Why?

I think it’s the combination of imagination, strategy, open-endedness (copyrighted word), collaborative play, and funky old-school graphics. As teachers, we would be out of our minds NOT to find some ways to use this in our classes! The Google group of MinecraftEdu teachers is a great place to start.

Highly recommended.