TNWikiSummit15 Presentation: Small Basic Basics


Let’s take a look at the Small Basic talk I gave this week at the International TechNet Wiki Summit 2015. Here’s a write up…

 

I started with the very beginning (which is a very good place to start)…

Hello World (Small Basic Blog)

 

Vijaye learned on BASIC. (My first programming language I learned was BASIC, and my second was Visual Basic.) Vijaye loved the simplicity of BASIC as a first language to learn. And then one day a friend sent him this article…

Why Johnny Can’t Code (Salon Blog)

 

In that post, the author calls out Microsoft with a challenge:

“… whenever I mention the problem to some computer industry maven at a conference or social gathering, the answer is always the same: “There are still BASIC programs in textbooks?” At least a dozen senior Microsoft officials have given me the exact same response. After taking this to be a symptom of cluelessness in the textbook industry, they then talk about how obsolete BASIC is, and how many more things you can do with higher-level languages.”

“All right, here’s a challenge. Get past all the rationalizations. (Because that is what they are.) It would be trivial for Microsoft to provide a version of BASIC that kids could use, whenever they wanted, to type in all those textbook examples. Maybe with some cool tutorial suites to guide them along, plus samples of higher-order tools. It would take up a scintilla of disk space and maybe even encourage many of them to move on up. To (for example) Visual Basic!”

 

Although many Microsoft employees have criticized BASIC as a programming language to learn off of, nobody I know at Microsoft (including myself) share that opinion.

And Small Basic took the challenge literally of moving up to Visual Basic… you just click the big Graduate button to move your code into VB!

Well, Vijaye was inspired. And he personally took on the challenge. Microsoft has supported him through it in a variety of ways, and we’re still working on building future versions and building out the community.

 

Here are the tenets of Small Basic (originally written by Vijaye):

Small Basic – Fun, Simple, Social, Gradual (Small Basic Blog)

  

Small Basic is the only text-based programming language written for kids to learn programming in a way that’s Fun, Simple, Social, and Gradual (moving you up to VB in the click of a button)!

Dig deeper on the details of what the Fun, Simple, Social, and Gradual features are:

The Unique Features of the Small Basic Language (TechNet Wiki)

You can also find this Wiki article in other languages:

  

In the talk, I switched over to Small Basic to give a basic (and small) demo and to show how Vijaye nailed the Simple tenet…

 

And as you type (or click a word), the Help Area shows you information about your code (the Turtle object in this case) and explains your associated operation (such as Hide) or property (such as Angle). As far as I know, this is the only UI I’ve ever seen that has a large dedicated area to real-time Help content like this.

 IntelliSense list

  

As you type, IntelliSense pops up to give you options to scroll through, in a fun, and easy way, describing each option for you! 

  

I explained the Social aspects, including the Publish button in the UI, which sends your program into the cloud, where you can share the URL with your friends, so that they can run your program. Also, you can embed your program in a site, or you can import a program using the provided code, to build off your friend’s program and collaborate. Our community members have used this to collaborate on program iterations, even when on separate parts of the world!

Another social aspect that I briefly mentioned is the Monthly Challenges run by LitDev, a member of our Small Basic Community Council. Here, Nonki made a list of the challenges for you to browse through:

Small Basic: Challenge of the Month (TechNet Wiki)

 

Next I talked a little about the Graduate button and how you can use it to “graduate” to Visual Basic.

 

That led to a comment about how we’re continuing to build new versions of Small Basic. For 1.1, we’re looking to upgrade to .NET Framework 4.5, which will enable new upcoming features in future versions. We’ll also be fixing the Flickr bug, which was presented when they updated their API. See the progress we’ve been making with bug fixes for 1.1 and 1.2 here:

Small Basic V-Next – Fixing Bugs (Small Basic Blog)

 

The next topic was the audience. Although Small Basic is used by new learners of all ages, if you can read and write, then you can learn Small Basic! Today, we’re presented with the idea that kids can learn software. So we teach them some basic programming logic using something like Scratch (if even that) and throw them into Java or Visual Basic as the first text-based programming language. But the reality is that many kids are struggling with their programming classes. These programming languages aren’t ideal for junior high students or younger. They’re even hard for high school students. Or you might go to a Python conference and see a 13-year old on the stage talking about how he taught himself Python and now is teaching his peers. The crowd cheers. And then you find a “Python for Kids” book (great book, by the way), and you begin to think that kids are learning Python. But the reality is that the one kid is the Doogie Howser of programming, his friends are struggling to learn it, that book is really written at a 14-year old level plus, and the average reader is closer to 17 or 18, because adults are buying it for themselves as a sort of “Python for Dummies” type of book.

In other words, programming for kids is mostly smoke and mirrors. The kids they point to are more the exceptions than the rule. I had one friend who tried to teach his teenage daughter Visual Basic. She bolted and hasn’t looked at programming since. Makes sense to me. I remember scratching my head a little, when I learned Visual Basic in college. I would have LOVED to have started learning on Small Basic, even in college! Going back to the “Why Johnny Can’t Code” article, the author and his son, Ben, ended up buying an old computer with BASIC on it just to have a good first-programming-language learning experience! They had the right idea. And Small Basic greatly expands on that experience!

So why mention how the other programming languages point to the exceptions of kids learning to code? Well, because the difference with Small Basic is that kids learning to code are the rule, not the exception. Kids will be able to learn every time! Here’s the proof:

Small Basic Student Testimonies (TechNet Wiki)

 

In that article, you’ll see 48 student testimonials, of kids from age 8-13, who successfully enjoyed learning Small Basic! I highlighted one example…

You’re eyes don’t deceive you! That’s an 11-year old girl, reading a piece of paper (from a curriculum provided by Kidware), teaching herself Small Basic! Every kid has been able to learn (and enjoy learning) Small Basic! And if kids enjoy it, then any teenager or adult can easily learn it!

Using Kodu, you can teach kids as young as 4 to learn the basic programming logic and constructs (it’s 3D and the tutorials are basically building out videogames, so to them it’s a videogame, even though they’re learning about programming). And once they can read and type well enough (age 7, 8, or 9), they can learn Small Basic!

   

Now, other than the 3 Wiki article links above, what does all this have to do with TechNet Wiki?

Well it was decided that Small Basic would have it’s content live on TechNet Wiki! First, here is the table of contents of the Small Basic content library on TechNet Wiki:

Wiki: Small Basic Portal  (TechNet Wiki) 

 

Output

That includes some larger content sets…

Small Basic Curriculum: Online  (TechNet Wiki) 

Small Basic Curriculum: Lesson 1.1: Introduction  (TechNet Wiki)                               

 

The curriculum includes PowerPoint decks for the teachers to use!

 

Or if you’re looking for an in-depth guide to learn from (and don’t plan to teach it), then you can use the…

Small Basic Getting Started Guide (TechNet Wiki) 

 

That guide is available in PDF and Word download. It’s basically a large whitepaper. We divided the chapters up for different Wiki articles, so that you can easily browse the content. But you also download the whole file and read it that way (also good for printing it out).

 

And the Reference documentation is also on the Wiki:

Small Basic: Reference Documentation (TechNet Wiki)      

 

  

All those resources are free! If you’re looking for some books to buy, we have sample chapters from some great Kidware books here:

Small Basic Programming Books (TechNet Wiki)      

 

  

Also, along the way, I mentioned the Turtle object and it makes one wonder, “Why a turtle?”

Well, I quickly went over the answer here:

Small Basic: The History of the Logo Turtle (TechNet Wiki)                              

 

And afterward, we had a good discussion about whether I only meant that English-speaking children could start using it when they can read and write.

Well, most children can use it:

Small Basic – International Resouces Update

 

You’ll see how the IDE is in 20 languages!

 

So there you go!

 

Small and Basically yours,

   – Ninja Ed

Comments (4)

  1. So what's the takeaway here?

    One is that Small Basic took the best learning features from the different languages. The simplicity of BASIC, the object model in a simplified form, a fun and simple evolution of IntelliSense, Turtle graphics from Logo, etc.

    Another takeaway is that while other text-based programming languages point at exceptions of teaching kids how to program (meaning that it's rare and really difficult for most kids), Small Basic is the rule. Every kid is able to learn it and enjoy it.

  2. Thanks for your session.

  3. anonymouscommenter says:

    Glad to see the community active. I have been teaching kids programming (4th – 6th graders) and, as much as I try (because some sinus pounding "Axe man" thinks Python + command line+ notepad is the end all to everything), I can find nothing better than Small Basic.

    In a prior life I did all sorts of cool open source/ruby/CI/TDD/#BayAreaWankers/blah blah blah and it's so nice to see a product built for the problem that needs to get solved. Nice job.

    One observation:

    I have more than a handful of friends in the US/India/China who have 4/5/6 years old kids who can write code in Python/Java/whatever. My observation is, kids tend to learn to speak the language(s) spoken at home. Well, these kids parents, and in many cases grandparents, "speak" VB/Java/Python/SQL/C++…… In the US, it became cool to become a banker or lawyer and we tended to shun the IT path. So, these "languages" are not spoken in the home in the US. We kind of skipped it when compared to other counties. I am sure people like Ed, me, others can teach their kids VB or C# or PASCAL but as stated, that's managing to the exception, not the rule.

    What's great about SB is not JUST that it's easy for a kid to pick up, BUT IT'S EASY for a teacher (think 4th grade social studies teacher) or parent to pick up. This is critical because so many kids come from "programming language illiterate" homes they have to learn at school. So this means the teachers need something they can grok and then teach.

    Best thing for me about SB is now I am starting to teach teachers how to teach. I tried to teach a few Py with Geany and it was a total glazed over non starter. SB works for both teacher and student so kudos…..

    PS:

    There is a lot we need to do. I my son's school they have a great computer lab. And they are taught how to use YouTube to learn about how a bill becomes a law. Or how to make presentations. It's all application focused because, I THINK, that's what they know how to teach (and some standards I am sure). That's just sad. It's like using a calculator in a cooking class to determine measurements and calling it a calculator class, not a cooking class. Scratch and code.org fall way too short. Pictures are part of the problem as the David Brin eludes to in Johnny Can't Code….plus teachers need to be there to mentor and, ah, teach!

  4. Thanks John. Thanks for the good insight.

    I'd love to learn more about your experiences as a teacher.

Skip to main content