"Learning a new language opens a wealth of opportunities. But there's one language family that provides benefits like no other: the languages of computer programming. Now widely taught in schools-even in elementary schools-programming is an eminently learnable skill that gives you unrivalled problem-solving power you can apply in all areas of life. Programming is also a fun, creative activity that imparts deep insights into how we control the devices that influence virtually every aspect of our lives. Writing computer code has truly gone mainstream in recent years. Simple, general-purpose computer languages that resemble English can be readily used by anyone, thanks to fundamental building blocks that allow even complete beginners to write short pieces of working code, while also taking the mystery and complexity out of more complicated scripts. Remarkable advances in hardware and in user interfaces mean that skills that were once highly technical, complicated, and difficult to learn are today within the reach of everyone who is willing to engage with a computer. And now a pathbreaking guide is available with How to Program: Computer Science Concepts and Python Exercises. These 24 engaging and information-rich half-hour lessons use one of the world's most accessible, popular, and powerful computer languages, Python 3, as a gateway to the universe of programming. Taught by Professor John Keyser of the Department of Computer Science and Engineering at Texas A&M University, one of the top-ranked computer science programs in the country, this unique video course offers the following advantages: From the very first lesson, Professor Keyser plunges you into Python coding and the concepts of computer science, with a friendly and accessible style that has won him numerous teaching awards. The Python computer language (named after the comedy troupe Monty Python) is ideal for beginners, with code based on ordinary English words and the flexibility to create many useful and creative programs. The course covers fundamental ideas with clarity and depth, teaching you programming from the most basic commands to the techniques that help you develop ambitious pieces of software. Professor Keyser focuses on practical problem-solving, presenting dozens of real-life examples and exercises, walking you through solutions, and helping you practice and build your skills. Following some of the lessons, Professor Keyser leads you through supplementary problems that reinforce key programming strategies. In addition, the guidebook that accompanies the course features dozens of additional drills and practice exercises, always with answers, together with a reference section that includes definitions of computer science terms, important Python commands, and other useful information. No matter what level of experience and skill you have with computers, you can rest assured that this course will suit your needs from the first step: walking you through how to install Python 3 and the programming editor PyCharm, both of which are available free online. Programming Made Crystal Clear Assuming no prior background in computer science, Professor Keyser's lessons are so clear, carefully paced, and comprehensive that they will appeal to both novice and experienced programmers. Even those who use Python often will learn new and useful tips that fill gaps in their understanding, clarify concepts that were previously obscure, and broaden one-task tricks into versatile tools. As a result, this course is perfect for beginners and students-from teenagers to retirees-who have never written a line of code; self-taught programmers who want to deepen their knowledge of program design and make their code more efficient and elegant; programmers new to Python, and Python users who want to upgrade their skills to the newest version of Python and more effectively exploit its many features; professionals at any stage of their career who recognize the benefits of better understanding the technology that modern businesses rely on; anyone wanting a fascinating insider's perspective on how to think about all the ways we tell those who never dreamed that coding could be as exciting, intellectually stimulating, and rewarding as it truly is. Build Your Programming Fluency There are numerous programming tutorials and videos available online, but they are generally brief or narrow, giving you only specific and specialized instructions without context. How to Program is a college-level course with more than a semester's worth of material explored over 12 hours of lessons that you can pause, practice, and watch again as you hone your skills, guided by an expert teacher. And while you can find snippets of pre-written Python code online that may or may not work for your needs, this course takes you from writing individual lines of code to designing and thinking about code like a programmer, teaching you broadly applicable rules and tools that you use to create your own custom-made programs. Professor Keyser begins with the basic code commands, and you start programming with him right away. In Lesson 1, you write a one-line program knowing just one command! You quickly build from there, mastering core principles and tools, including operators and variables, conditionals and loops, strings and files, functions, modules, packages, and more. By the end of the first half of the course, you will have tried out all of the most important fundamentals of programming. The first half of the course provides the foundation of programming, while the second half of the course explores a wider range of applications and deeper principles, both of which also help you further consolidate your understanding of programming fundamentals. Applications include the coding behind games and graphics, as well as teaching you how to analyze sports statistics, simulate a retirement fund, and direct the path of a simple robot. Along the way, you get a feel for when to use a top-down design or a bottom-up strategy. You discover the power of object-oriented programming and the trade-offs of sequential programming versus event-driven programming. And you see for yourself how data structures and algorithms make possible even more powerful programs. Best of all, these and many other concepts become second nature as your programming fluency grows. Discover a New World in Coding "I got hooked writing my first simple computer program back in third grade," recalls Professor Keyser. This course will show you how fun, creative, and empowering programming can be. Professor Keyser's approach is clear, practical, and engaging-it's easy to see why his teaching has been honored so many times. Throughout the course, he offers tips on how to be a better programmer, hard-won lessons from decades of coding, and reflections on the aspects of programming that are most rewarding: Practical: Often it's faster to write a program to perform a task, such as repeated calculations or opening two applications in tandem, than it is to track down an existing piece of software that does exactly what you need. And as your coding skill grows, you'll find that you are creating unique programs that other people need. Exhilarating: Figuring out how to apply the tools to solve each programming problem is a unique challenge, a puzzle that often has several solutions-but which is fastest, simplest, most efficient? Even debugging offers new and exciting mysteries to solve. When the pieces finally fall into place, you get a wonderful feeling of accomplishment that a mental model has been turned into working software. Creative: Programming lets you express your creativity, allowing you to implement your ideas in code. And just as there is never simply one way to express a thought in a language, there are usually many ways to get a program to do what you want. A good design sense will point you to the optimum solution for your particular problem. Transformational: Programming transforms the way you think, training you to look at problems logically, develop plans that can be followed sequentially, and recognize how to break down a complex task into more manageable pieces. All of these are useful approaches in areas outside of computing. So, as with any new language, programming opens up a new world, while also influencing the way you look at your old, familiar world. It may be that as you work through the enjoyable and challenging exercises in How to Program, the most important benefit you are gaining is not only a toolkit to help you create your own programs in Python 3-it's also a set of enhanced mental tools for every sphere of life. "