I was reminded by a friend about this site I told them about months ago, I think I remember seeing it in this TED talk by Mitch Resnick called Let’s Teach Kids to Code. The site was called CodeSpells. Essentially it’s a fun way to teach people how to code with a Fantasy type game environment.
Here’s the intro:
“The character wakes up in a strange place populated by gnome-like creatures. She has been sent here to learn the ways of magic. The gnomes are in need of her help, they know a little magic, but don’t have enough to accomplish simple tasks. They need her help, and she needs theirs.
With some guidance from the gnomes, she takes her first faltering steps with magic. She begins to master her power bit by bit, while trying to prepare for a scary and dark future.
Through a series of quests initiated by the denizens of the Enchanted Crater, she begins her training as a master wizard.”
Essentially master wizard in this case means master coder/programmer.
So I did a little digging and found some more games that do the same (see related article below).
Ok so there is method to this madness.
The intro to systematic design part one uses a programming language called Racket, or a variation of Racket called Beginning Student Language (BSL).
Now it is a little crazy to learn two different languages at the same time but I have to complete the Part One of the course to get to the Part 2 of the course that has a Python stream.
So here is some additional information about Racket for those that are interested.
The main site for the language is at http://racket-lang.org/
Where you can download DrRacket the shell and visualizer, as well as a nice introduction.
I can already see some language differences when writing simple expressions, for example
Python: 3 + 4
Racket (BSL): (+ 3 4 )
So it will be interesting to see the differences as time goes on and see if I can keep them straight in my head.
Also noticed this blog post about Racket:
I decided to take a leap of faith in my abilities to run multiple Coursera courses at the same time as I felt that the material in this one course would compliment my efforts in my other course.
Both Learn to Program: The Fundamentals and Introduction to Systematic Program Design – Part One are considered to be beginner level courses for people without any background in programming.
The systematic program design class seems to offer a pragmatic way to approach problem domains and more formulaic recipe designs which I think might help my coding efforts in all future coding endeavors.
I’m still debating whether I’m going to register for the signature track version of the course or just keep it as the free version, as I have a big trip right in the middle of the final couple of weeks – but I have three weeks to decide whether I want to upgrade to the signature track version of the course.
An added note here, after reading the following related blog posts, I’m starting to get a bit nervous about this course:
After reading an article on MOOC’s from Forbes – How MOOC’s will Revolutionize Corporate Learning and Development, I took a look at what Khan Academy had to offer.
Essentially Khan Academy is “a library of over 4,600 videos on everything from arithmetic to physics, finance, and history and hundreds of skills to practice, we’re on a mission to help you learn what you want, when you want, at your own pace.”
There is a whole section of stuff pertaining to Python Programming that could be useful for revision or to clarify key Python related programming concepts.
Leaning objectives for this week:
– IF statements