About the author

Steven C. Shaffer is Associate Teaching Professor at Penn State University Park, where he has taught computer science and software engineering since 1999. Prior to joining the faculty at Penn State, Dr. Shaffer spent 20 years in industry as a software and quality assurance engineer. He achieved the designations of Certified Systems Specialist in 1989 and Certified Software Quality Engineer in 1995.

About the book

This book is written for beginners! Some reviewers of my previous book entitled A Gentle Introduction to Computer Programming Fundamentals found fault with that book because it was for beginners. If you are not a beginning programmer, you will likely not like this book because it is not for you.

This book also gets right to the point when discussing new concepts. Many programming books are, in my opinion, too explanation-heavy. Just like when you learn a foreign language, the best way to learn to program is to dive right in. So, the book is designed to get you programming right away with step-by-step examples.

Video tutorials, including solutions to the problems, and free use of learning software are available for 6 months. These items are specifically designed to work with this book and to help you learn the material as quickly and thoroughly as possible.


Programming is fast becoming a basic literacy. Software is pervasive in society and therefore it is needed in virtually every occupation. But for some people, programming feels very unnatural; that’s where this book comes in! This book is written in a step-by-step, tutorial style that makes programming available to pretty much anyone who cares to take the time to learn. It’s the result of my years of experience and research into teaching introductory programming.

You can start using this book right away, without buying anything else and without having to install anything on your computer! Within a few days, you will understand the basics of how computer programs work. The “50 steps” method used here gives you a step-by-step incremental approach that makes the journey much easier.

Included with the book is access to video instructions and special (browser-based) learning software for 6 months. Instructions for how to access this are below.

I’ve used Python in this book because (1) the syntax of the language is considered easier to learn than languages such as C++ or Java, and (2) Python is becoming very popular, even for “non computer science” folks.  Note that I really like languages like C, C++, Java and PHP, and write in these languages myself quite often; however, for a basic introduction to programming, Python is the way to go! This book uses Python 3 syntax, as that is the latest version as of this writing.

With that being said, this is not a book for experienced programmers. The focus is on introductory concepts using Python as the target language. If you are an experienced programmer, you will find this book tedious.

For those of you who are novices at programming, this is the book for you! When you’re finished with this book, the world of programming will be opened up for you; from here, you can go in any direction you wish. Enjoy!

How to use this book

The only way to learn how to program is to write programs! So, the best way to use this book is to sit the book beside you on your desk or computer screen and type all of the examples and exercises into your Python interface and run them.

Supplemental material

If you buy the electronic edition, you will automatically receive access to the videos and the learning software for 6 months. If you buy (or already bought) the book from Amazon or a bookstore, see this link to register and get access to the supplemental material. Please note that purchasing the book used does not enable access to the supplemental materials.