You are the boss. You want a pile of files to be put away. You could do it yourself, but instead you instruct someone else to do it. There are a lot of them and they are all mixed up. So you write a memo to an employee that says “put the files away” and sis-bam-boom you’re all set.

Scratch is a seminal object oriented programming language that has had a great deal of influence on other languages. It is an entry level system designed for kids and adults new to programming. If you have a kid doing any kind of robotics or STEM programming in elementary school, they are using a programming langauge that derives from Scratch.

It comes out of MIT, and is usually used on their server, using a web interface.

That web interface is closing at 7 AM on January 2nd. Later that afternoon, it will be back up, but with Scratch 3.0!

First, in case you don’t know, “Scratch” is a programming language and environment.

Its mascot is a cat, of course, but the name “scratch” supposedly comes from the use of scratching by disk jockeys. Scratch was first developed at MIT back in the early 2000s, and has advanced considerably since then. You now see the basic format of this language either duplicated or mimicked in many different environments.

Scratch can be an online langauge or you can run a stand alone version, but the former is easier and better. To get started, go here and follow instructions.

The idea is simple. You put the stack of cards on your desk next to the computer, which is tuned to the MIT Scratch site. Then you try out the stuff in the cards. By the time you are done you (or your kid if you step aside and allow access to the computer) will be pretty good at scratch programming.

I used the 3 year and above cards with Huxley, and we are about to start on the 8 and above cards, although he is very advanced and we are likely to skip past the first several.

By the way, Scratch runs on the web so you can access it from any sort of desktop or laptop computer including Chromebooks,a nd there are iOS and Android versions. It runs on the Kindle Fire as well.

It covers how Python works, so someone familiar with programming languages can get up to speed. Then, the book tackles a number of key important tasks one may use a computer for. This includes working with Regular Expressions, file reading and writing, web scraping, interacting with Excel spreadsheets and PDF files, scheduling things, working with email, manipulating images, and messing around with the keyboard and mouse.

I wold like to see a second volume with yet more programming ideas and examples. It could be a series.

From the publishers:

If you’ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?

In Automate the Boring Stuff with Python, you’ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. Once you’ve mastered the basics of programming, you’ll create Python programs that effortlessly perform useful and impressive feats of automation to:

Search for text in a file or across multiple files

Create, update, move, and rename files and folders

Search the Web and download online content

Update and format data in Excel spreadsheets of any size

Split, merge, watermark, and encrypt PDFs

Send reminder emails and text notifications

Fill out online forms

Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.

Basic is an under-appreciated language. I wish I had a good basic compiler handy, and I’d love to see a basic scripting version that worked like bash. Can you see the value of that?

Anyway, Small Basic is an updated modernish basic that runs only on Windows, so while I can’t use it, you might, and this book looks like a good intro. From the publisher:

Small Basic is a free, beginner-friendly programming language created by Microsoft to inspire kids to learn to program. Based on BASIC, which introduced programming to millions of first-time PC owners in the 1970s and 1980s, Small Basic is a modern language that makes coding simple and fun.

Learn to Program with Small Basic brings code to life and introduces you to the empowering world of programming. You’ll master the basics with simple activities like displaying messages and drawing colorful pictures, and work your way up to programming playable games! You’ll learn how to:

Store and manipulate data with variables

Process user input to make interactive programs

Use if/else statements to make decisions

Create loops to automate repetitive code

Break up long programs into bite-sized subroutines

Inside, you’ll find hands-on projects that will challenge and inspire you. You’ll command a turtle to draw shapes, program magical moving text, solve all kinds of math problems, help a knight slay a fearsome dragon, and more! Each chapter ends with extra practice examples so you can take your programming skills to the next level!

In the first half of the book, you’ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You’ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you’ll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python’s super-handy libraries, and a simple web app you can deploy online.

Scratch, the colorful drag-and-drop programming language, is used by millions of first-time learners, and in Scratch Programming Playground, you’ll learn to program by making cool games. Get ready to destroy asteroids, shoot hoops, and slice and dice fruit!

Each game includes easy-to-follow instructions, review questions, and creative coding challenges to make the game your own. Want to add more levels or a cheat code? No problem, just write some code.

Invent Your Own Computer Games with Python will teach you how to make computer games using the popular Python programming language–even if you’ve never programmed before!

Begin by building classic games like Hangman, Guess the Number, and Tic-Tac-Toe, and then work your way up to more advanced games, like a text-based treasure hunting game and an animated collision-dodging game with sound effects. Along the way, you’ll learn key programming and math concepts that will help you take your game programming to the next level.

With the Scratch Coding Cards, kids learn to code as they create interactive games, stories, music, and animations. The short-and-simple activities provide an inviting entry point into Scratch, the graphical programming language used by millions of kids around the world.

Kids can use this colorful 75-card deck to create a variety of interactive programming projects. They’ll create their own version of Pong, Write an Interactive Story, Create a Virtual Pet, Play Hide and Seek, and more!

Each card features step-by-step instructions for beginners to start coding with Scratch. The front of the card shows an activity kids can do with Scratch–like animating a character or keeping score in a game. The back shows how to put together code blocks to make the projects come to life! Along the way, kids learn key coding concepts, such as sequencing, conditionals, and variables.

This collection of coding activity cards is perfect for sharing among small groups in homes and schools.

Minecraft is a gaming world. Or, if you like, a “sandbox.” This is a three dimensional world in which characters do things, all sorts of things. The context for the world of Minecraft is very open ended. The player builds things, moves things, gets things, does things, in a way that makes any one gamer’s game potentially very different from any other gamer’s game.

If you install Minecraft from Minecraft.net (about 30 bucks) and have Python 3, Java, the Minceraft Python API, and a Spigot Minecraft Server, you can program your own versions of the game using Python programming/scripting language.

But how? How do you do that?

Well, you can get Learn to Program with Minecraft: Transform Your World with the Power of Python. This book is intended to teach programming, in the Minecraft setting. The book is designed for kids 10 years and older, though I’m sure some younger kids can use it. Also, it must be admitted that a learning to program book like this may be most valuable for adults who are not coders but want to learn some coding, and happen to be gamers and like Minecraft.

The book, new on the market, provides excellent instructions for setting up all that stuff mentioned above. Everything should work on a Windows machine, on Mac OS X, and Linux.

The programming you do with this book is pretty sophisticated. You learn to create palaces, pyramids, to teleoport players around, to stack blocks, interact with Minecraft’s chat feature, blow stuff up, cast spells, and replicate sections of the Minecraft countryside.

Here is what is interesting about this approach. Python programming is pretty basic, and pretty useful, but one has to do a lot of work to develop something slick and fancy and highly functional (counting working video games or interfaces as highly functional). But working with the existing Minecraft system, via the API, allows some relatively simple programming to produce impressive results. This is “Hello World” on steroids, at the very least.

Of all the diverse No Starch Press programming guides, this one may turn out to be the most effective, as a teaching tools, for that special case where a person is already interested in Minecraft and wants to learn Python.

My first computer language was PL/1, but soon after I learned, among other languages, Basic, and I really liked Basic and I still do. Basic is linear, and I think in linear constructs when I do any kind of computer program. This is probably, in part, because user interfaces are the last thing I want to deal with. I want a series of numbers to be treated in a certain way, or a set of formulas to generate a database. The most non-linear I tend to get is multidimensional arrays, and that’s still linear.

Python is potentially, and in practice, very different, and is essentially used as an object-oriented language. Yet at the same time it can be used in any other way, to reproduce pretty much any sort of programming paradigm. People thought of Basic as not very readable, but in fact, it was in its more advanced form if you programmed right. Python is said to enforce readability, if by readability we mean enforced indentation. People are still free to ruin readability in a number of other ways. But most importantly, Python holds a very important feature in common with Basic: It is interpreted. In other words, at any point in time while you are writing your Python program, you can “run” it and see how it is going.

The biggest difference between a language like Basic even at its high water mark some years ago, and Python is that Phython has plenty of modules for use do do all sorts of cool things. I’m not sure if the Python library is the biggest and vastest and most amazingest of all, but it probably is. So, if you are going to pick a programming language with paradigmatic flexibility, reasonable readability, and a powerful and diverse library of functionality, the Python is probably the way to go.

Python for Kids is a lighthearted introduction to the Python programming language, full of fun examples and color illustrations. Jason Briggs begins with the basics of how to install Python and write simple commands. In bite-sized chapters, he explains essential programming concepts. And by the end of the book, kids have built simple games and created cool drawings with Python’s graphics library, Turtle. Each chapter closes with offbeat exercises that challenge the reader to put their newly acquired knowledge to the test.

The first thing that you need to know is this: If your computer has any sort of development environment set up on it, the instructions for installing Python provided in this book may be problematic or at least slightly difficult. I recommend using this book an an installation that is virtualized or simply a different computer than you otherwise develop on, not just so that your kid does not accidentally delete, or worse, alter and publish, your pet projects. Part of the process of modern programming, after all, is learning about the development environment.

There are a handful of good “learn to program in python” books out there and this one is similar; it is hard to know at which point someone using the book will pass from “Oh, I see, that’s easy” to “Huh?” which usually occurs a chapter or two after the person stopped paying attention to details. Python for Kids: A Playful Introduction to Programming does a good job of avoiding this problem by including a complete and rather extensive project, a game called the “Mr Sick Man Game” (which should be read “Mr. Stick-man game” and not “Mr. Stick… Mangame!”) There are plenty of other projects and individual programs that the book guides the reader through prior to the mangum stick opus. The book uses the “Turtle” module, based on LOGO, for much of this work. as well as the tkinter TH GUI toolkit interface. So if you don’t want your children near those modules, look for a different book, just in case you are involved in some sort of emacs-vim style code war.

Python for Kids is not available at this time but will be shipped in December, so this is a viable stocking stuffer option.

Now in Kindle, Soon in Print:

Sometimes called the "fourth African ape," Sungudogo is not a Gorilla, not a Chimpanzee, not a Bonobo, and possibly not even real. Years ago, Sungudogo drew the interest of the world famous primatologist Dieter Phillips, who was funded by a secret society of "scholars and gentlemen" to launch an expedition to determine the veracity of this mysterious primate. Dieter never returned from that expedition, and as the years passed, the whole story drifted into obscurity. But the watchers were always watching, always waiting, for clues of the fate of this expedition. When new evidence came to light, the investigation was renewed into the outcome of Phillip's ill fated trek into the Rain Forest. Who better to follow Dieter Phillip's tracks than his former student, aided by an explorer and mercenary familiar with the area, assisted by two willing Congolese park guards?They were to learn things that went beyond their wildest imaginations, and they would discover secrets about Phillip's expedition, about the rift valley, about themselves, about humanity, that they would never be able to share but that would change their lives forever.