Introduction to Computer Programming
Building Apps and Games with Python
Introduction

In this book, I will introduce you to the concept of computer programming as well as introduce you to the Python programming language. We will look at many real code examples, and you will build several small games and applications as you learn.
Why This Book Exists
When it comes to programming books and courses, you have many options. Dozens of highly regarded books exist that introduce programming as well as countless online tutorials. There are also many online video and interactive courses offered through esteemed colleges and large tech corporations. What is apparently lacking, however, are quality materials designed specifically for independent learners and homeschoolers who are looking for a structured course, especially tailored for those new to programming. Of the few marketed for home learning, they either offer a quality education at a high price, or they offer a simplistic “interactive” coding envirmonment that is little more than a glorified game.
This curriculum was built to address some of the common problems I have seen in other programming books and courses:
- Real Software Development: Many beginner courses use heavily locked-down “drag-and-drop” blocks. They teach a very limited idea of coding. In this book, you will type real code, build real applications, and use the exact same logic structures and software tools that software engineers use every day.
- For Beginners: This course is designed to be a first introduction to real programming. While there are many free online tutorials for various programming languages, this course attempts to give you a complete, strutured, and careful introduction to programming and computer science.
- Free and Accessible: This curriculum is completely free and open to anyone who wants to learn. Use it online, download it, print it, or buy a physical copy.
- Built-In Support: Learning on your own can be tough, and software can be especially tricky. This course includes resources, updates, and free online support when you get stuck. Checkout our online community at discuss.mainlooppress.org.
Our Tool of Choice: Python
In this book we will be using a programming language called Python. Python is a free, open-source programming language that is widely used in the software industry.
It is a great programming language for beginners because it is easy to read and understand, but it is also a powerful language that can be used to build complex software. It is not a “dumbed-down” or “toy” language that you will outgrow.
In fact, Python is heavily used in many real world applications. Here a few examples:
- Artificial Intelligence: Tools like ChatGPT rely heavily on Python to process data and “learn.”
- Space Exploration: NASA uses Python for heavy scientific computing and analyzing data from deep space telescopes and satellite missions.
- Logistics: Uber uses Python to power calculations for ETA, pricing algorithms, real-time demand matching, and ride routing.
- Finance: JPMorgan Chase uses Python for financial market forecasting, trading, and risk management platforms.
- Web & Entertainment: Companies like Netflix, Spotify, and Instagram use Python to manage data and power their algorithms.
- Software Tools: Google has used Python since its very early days to build and automate massive parts of their search engine.
By learning Python, you are mastering a tool that is highly respected, widely used, and capable of building industry-grade software.
What to Expect
Here is how we are going to approach our journey:
- Learning Through Action: You are going to learn programming concepts by putting them straight into action. We will see how concepts work through simple games and apps that you can extend and modify as you learn.
- Fundamentals Over Flashiness: The games you’ll create in this book will seem simple compared to modern games built by huge studios with millions of dollars to spend. Those games are made by massive teams using complex graphical engines. We are stripping all of that away so you can focus entirely on the basics of coding. You will find that games don’t need fancy graphics to be incredibly rewarding to build and modify!
- Patience and Practice: Programming is basically giving very specific instructions to a computer. Computers are extremely powerful, but they need you to tell them exactly what to do. You will be introduced to many brand new concepts that may take awhile to fully grasp. As you continue to follow the logic through the examples and complete the projects, the concepts should fall into place.
Let’s begin!