"Learn to Program with Small Basic" launched on May 2nd, 2016! This blog post thoroughly covers the book, and it also houses excerpts from the various book reviews, so this page will be evolving as we go!
I teamed with author Majed Marji (Senior Engineer at General Motors/GM; author of Learn to Program with Scratch) to write a fantastic new book from No Starch Press… Learn to Program with Small Basic: An Introduction to Programming with Games, Art, Science, and Math.
It’s written to about a 12-year old audience, but kids can start reading it at a younger age (10 is fine; I've gone through it with 8 year olds), and adults will find it as one of the best ways to ease into text-based computer programming! It’s designed so that anybody can read it on their own, but it’s packed full of useful problems and challenges to be an asset for teachers and students. That includes the code from all the programs you learn in the book (both incomplete versions, to challenge the students, and the final versions of the code to compare and learn from), as well as both for all the challenges and practice assignments. And it also includes a list of test-like questions and online resources for every chapter as well! And finally, it features a thread of random humor (to keep students on their toes) and some valuable connections into the Small Basic online community engagements.
An Introduction to Programming with Games, Art, Science, and Math
by Dr. Majed Marji and Ed Price
May 2016, 304 pp.
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!
About the Authors
Dr. Majed Marji is a Senior Development Engineer at General Motors. He holds a PhD in Electrical Engineering (Wayne State), an MBA in Strategic Management (Davenport), and he is an adjunct faculty member at Wayne State University in Michigan. He is the author of Learn to Program with Scratch. Majed is currently working on Powertrain, electronic throttle control, and torque safety. He develops, debugs, and tests software using C/C++ and Matlab/Simulink. He has taught engineering communication, microprocessors, algorithms, and control systems at different universities.
Ed Price is a Senior Program Manager in Engineering at Microsoft. He holds an AA in computer art and animation from DigiPen Institute of Technology, a Bachelor of Science in Business Management, an MBA in Technology Management, and has been a professor at Bellevue College (teaching 25 classes). He ran Microsoft customer feedback programs for Azure Development and Platform services, as well as Visual Studio and Small Basic. Before Cloud and Development, his previous Microsoft teams he was an engineer for include Power BI, SQL Server, SharePoint, Hardware (mice, keyboards, webcams), and Microsoft Surface. He was previously a technical writer at Microsoft for 6 years and recently transitioned into content publishing at scale (publishes 100+ whitepapers, technical articles, and ebooks a year). He holds 5 patent awards for multi-touch designs on Microsoft Surface, as well as 13 Microsoft Hackathon awards for innovations in Help, Search, and Computer Programming. Ed has worked with teenagers for volunteer organizations for 13 years, and before Microsoft, he worked at Disneyland for 3 years, worked on videogames for Nintendo, IBM, Jaleco, and Square/Enix, and he ran two animation studios, creating CG cartoons. He is a father of 5 children (four girls), his children begin learning programming by age 4, and they move on (from tile and block-based programming) to text-based professional programming (using this book) by age 7 or 8. For a list of his publications, see Ed Price – Bibliography.
Check out the Learn to Program with Small Basic video
View on YouTube: https://www.youtube.com/watch?v=Qpse5sy0fOM
Table of Contents
Chapter 1: Introducing Small Basic
Chapter 2: Getting Started
Chapter 3: Drawing Basics
Chapter 4: Using Variables
Chapter 5: Drawing Shapes with Turtle Graphics
Chapter 6: Getting User Input
Chapter 7: Empowering Programs with Math
Chapter 8: Making Decisions with If Statements
Chapter 9: Using Decisions to Make Games
Chapter 10: Solving Problems with Subroutines
Chapter 11: Event-Driven Programming
Chapter 12: Building Graphical User Interfaces
Chapter 13: Repeating For Loops
Chapter 14: Creating Conditional While Loops
Chapter 15: Grouping Data in One-Dimensional Arrays
Chapter 16: Storing Data with Associative Arrays
Chapter 17: Expanding to Higher-Dimension Arrays
Chapter 18: Advanced Text Magic
Chapter 19: Receiving File Input and Output
“Learn to Program with Small Basic is clearly designed with multiple audiences in mind. It could be picked up off the shelf by an 8-14 year old with a new interest in computer programming. It can be a guide for an adult just starting out on their journey. It can provide the framework for a homeschooling course. It can be the backbone for a teacher’s course or a club. In all of these situations, Learn to Program with Small Basic takes its readers from the most basic of computer science questions (“What is a Computer?”) and accompanies them on a journey of discovery in computer programming... It is the structure within those chapters and Marji and Price’s engaging writing style that really sets this book apart. It is clearly written with an eye towards a middle school audience. The text is easy to read and filled with little jokes and gags that are guaranteed to make the coolest 13-year-old roll her eyes (that’s a good thing)... my favorite part of the book by far is that each chapter provides the reader with challenges that utilize the new content introduced in the chapter and draw on what has been previously learned... I am certain that Learn to Program with Small Basic will be a trusted companion as I expand this portion of my course, and I am thrilled that such a resource is available."
“This book... assumes no prior knowledge of programming and introduces readers to projects that take them from basic programming concepts (such as understanding variables, and user input) to more complex aspects (such as arrays)... The examples are relevant to middle school and high school students, and the narrative flows easily for the target audience to understand.
Each chapter shows example code and encourages readers to try out the code to see how it behaves. This approach creates some intrigue and a sense of curiosity to try out the code. At the end of the chapter are "Programming Challenges" that readers can do. While soFlutions to the exercises can be found, they are not in the book but on a website. The additional step to lookup the solutions encourages readers to work on the program first, then lookup the solution later. This book has some unique approaches to helping readers learn programming. Pros: Easy to understand, Helpful examples, and Well-written."
“I feel the examples and exercises given in “Learn to Program with Small Basic” provide a fun and informative way of delivering the concepts... I found the book easy to read and follow; the examples are clear and well explained.
The use of colour coding and visuals enables students to easily follow along and gives them the confidence to try coding themselves."
"I am a teacher in a small University here in Brazil. I discovered Small Basic a few months ago and began to use it to create and test small algorithms to show my students. I have the paperback version of this book and it is amazing... It also has a lot of exercises that you can test and discover new ways to program with Small Basic. A special note here is that this book explains in a useful way how to use graphics... And I also believe that this is a good start for game programming because it has a few example games.
It is obvious that this book was written with love and dedication. It is clear for me that the authors are deeply involved with the Small Basic Community. My 14 year-old son will also use this to learn programming, and I am planning to create a small course focused to teach kids about programming in my city. This book is very easy to read and filled with examples. Buy this book and have fun, especially if you used Basic in the past!"
“Skillfully introduces programming through the Small Basic language. This book is not only good for middle and high school students, but is a great starting point for adults. The lessons are focused on teaching programming concepts rather than just making projects. Even if you aren’t a beginner, this book is great to have as a reference.”
"This book has been really fun to read and the instructions are very detailed and very easy to follow. No previous experience is needed, and I was impressed by how quickly I went from no experience to writing simple programs. My 8-year-old son was watching over my shoulder when I was writing some of the code and his first question was "when can I try it too!". I'm excited to move beyond the basic skills and try out some of the activities in the later sections of the book... this book is the best tool I could ever want!"
"Great for kids: Like a lot of kids (and adults), my son enjoys computer games... I showed my son that he could download the program for free... This book offers a thorough introduction into Small Basic. It’s laid out like a simplified text book... it offers simple stories that introduce the programming basics that every language uses — if this happens, then do that — in fun and engaging ways. Once my son learns the “basics” of Small Basic, I think he’ll be ready to learn new ways to do the same things in other programming languages."
“I’m happy to see Learn to Program with Small Basic come alive and be available for everyone who wants to take their first step into programming. The book does a great job of introducing beginners to programming concepts while keeping the content fun and engaging.”
—Vijaye Raji, Creator of Small Basic, from the Foreword
"Share the Joy with the Next Generation: ...This book will help you teach basic to immediate programming skills on the Windows platform. Interesting projects with sound and graphics will keep kids engaged, while teaching them math and science skills."
"Very Useful: Two-level table of contents in the front and detailed index in the back make it easy to find out what is covered. The instruction proceeds through many tiny lessons and examples... Learn to Program ... is much more useful given all of the help to look things up."
This has been a fantastic journey. I’ve had a ton of fun, and I want to thank my co-author Majed Marji and my friends at No Starch Press for going on this journey with us!
Small and Basically yours,
– Ninja Ed