Welcome to computer science in the 21st century. Did you ever wonder how computers represent DNA? How they can download a web page containing population data and analyze it to spot trends? Or how they can change the colors in a color photograph? If so, this book is for you. By the time you're done, you'll know how to do all of that and a lot more. And Python makes it easy and fun. Computers are used in every part of science from ecology to particle physics. This introduction to computer science continually reinforces those ties by using real-world science problems as examples. Anyone who has taken a high school science class will be able to follow along as the book introduces the basics of programming, then goes on to show readers how to work with databases, download data from the web automatically, build graphical interfaces, and most importantly, how to think like a professional programmer. Topics covered include: Basic elements of programming from arithmetic to loops and if statements. Using functions and modules to organize programs. Using lists, sets, and dictionaries to organize data. Designing algorithms systematically. Debugging things when they go wrong. Creating and querying databases. Building graphical interfaces to make programs easier to use. Object-oriented programming and programming patterns.