- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Python Programming: An Introduction to Computer Science, 2nd Ed. Paperback – Student Edition, May 7 2010
|New from||Used from|
Special Offers and Product Promotions
Customers Who Viewed This Item Also Viewed
To get the free app, enter your e-mail address or mobile phone number.
About the Author
There seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes: this time she found a little bottle on it, ('which certainly was not here before,' said Alice,) and round the neck of the bottle was a paper label, with the words 'DRINK ME' beautifully printed on it in large letters.
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
I highly recommend this book for beginners.
I have never learned a programming language before, but I am fairly knowledgeable about technology in general. I decided to take the plunge, and figured the best place to start would be learning the basics of computer science.
This book is fantastic for a number of reasons. The first reason is the choice of language. When I first developed an interest in programming, one of the things I struggled with was what language to learn. As someone who has a full time job and no easy access to developers, I wanted to make sure it was something that I could realistically learn on my own. Python is the perfect choice and I would recommend it to any beginner. The syntax is very simple, its high level and object oriented, and its very popular right now.
This book is also incredibly readable. Many other resources that I've looked at that are aimed at beginners overlook some basic concepts that need to be explained. The author's often have too much expertise, and something that seems obvious and self evident to them may not be as obvious to a complete beginner. This book doesn't make that mistake. Each concept is explained simply, but omitting no detail, and the syntax is explained thoroughly (which doesn't take much with Python).
After a few weeks of working with this book, I was writing simple programs to transform data arrays and produce CSV output files for my job. The fact that you can very quickly deploy what you've learned in a useful way really gets you excited and interested in learning more.
Anyone interested in learning Python, or programming in general, should start with this book. Its just excellent.
The key point I want to drive home, is that this book is designed to teach the theory and concepts of Computer Science as it relates to programming and computing. It's not a book that teaches you Python step by step, but you'll certainly be capable of programming in Python after a thorough reading. You really need to sit down and read over the book a couple of times. I do this for my math texts as well, understanding and reasoning the material is fundamental to obtaining the knowledge in it.
Because it's teaching broad theory that applies to all modern programming languages, I find it rich but it takes far more time to understand than say just a tutorial on language. However, this book is what should be your foundation for when you eventually will begin embarking on various programming languages and development tools.
The book's OK I guess. Though, in chapter 1 the author introduced "Chaos Theory" which is OK I guess, but I would have rather seen more and simpler coding examples, such as "here's a simple sequence of instructions", and especially "here's a simple for-loop" before putting it all together and talking about chaos theory.
Also, from the first chapter and throughout the book, the author repeatedly misused the eval() function. There was a so called example something like the following:
x = eval(input("Enter a floating-point number: "))
This is just bad practice. It's laziness on the author's part. It's bad to let the user type in anything and then call the eval() function since eval() evaluates whatever the user types in as Python code.
This is the kind of bad security practice that allows hackers to steal or destroy data.
This security problem was fixed in Python3 and the author is reducing things back to the Python2 level of insecurity.
What would be better is code such as the following:
x = float(input("Enter a floating-point number: "))
Then, if the user typed in something bad, an exception would be thrown.
Eventually, I would take it a step further and make a function to ask the user for a float:
x = askFloat("Enter a floating-point number: ")
Then, as the course progressed, I would add to the function askFloat() so that it would handle bad input, such as alphabetic input too, and loop and let the user try again.
Where I learned computer programming from, they taught us to develop programs that could correctly handle anything that the user could enter.
I've always wanted to learn computer programming since I was a kid, back in the days when computers were the scary things they had in school libraries that adults were scared of getting too close to. I even bought a book on C when I was young enough to only require one digit in my age, and I didn't even own a computer and probably had only used one a few dozen times. I have throughout my life bought, attempted to learn, and failed miserably at learning programming many times. Each time I get terribly stuck and confused. I curse the writers of these books who advertise "programming for the absolute beginner" who I seem so disconnected to. I figured it was me, that maybe I wasn't smart enough, or that for some reason I just could never learn how to do cool stuff with a computer. In my most recent spate I bought another book on computer programming - also on Python. While I did learn to do some stuff, there was still this weird disconnect.
But this book is different and now I finally realize what I had been struggling with: the author *actually explains* what each programming concept does. This sounds silly - of course all programming books do that! But you'd be wrong. Apparently understanding what something like "for i in range(10):" does and what each part is for and called is in the realm of 'computer science.' It sounds stupid, but it took me a while in my first couple of attempts at learning programming in the early days, to realize (because no one actually said it), that a computer program is executed from top to bottom, left to right. A program is more like a player piano. So in the first couple of chapters I was delighted that the author actually says that.
So I guess the difference between this book and all the others I've read is that even if the other books say it's for someone who has never programmed before, they make a lot of assumptions about what you know and what you should have figured out from the context. But this book actually explains each concept as it comes up. In fact, this book is more explanation than code. Which is good because when you're starting out you're full of funny concepts about how programming might work. You don't necessarily understand that when you write "x = 2 + y" and then later change the value of y, that won't actually change the value of x. And the reason you don't know that is because the author didn't bother explaining to you exactly how variables work in Python.
So for learning Python, this is a great resource and exactly what I needed after two decades of on-and-off spates or trying to learn programming. As for learning Computer Science? I guess I don't know a lot about it, but I don't think this would be a great resource. This book doesn't look like it explains binary code to you, or how transistors work, haw NAND and OR circuits work, or any of those sorts of things. There is some of that - it briefly explains the difference between hardware and software, CPU, RAM, etc. But really it's fairly superficial coverage. So the book really should be called Python Programming: A Concept-Based Approach. If I took a class called "an introduction to programming" I would be extremely happy if they assigned this book, but if the class was called "an introduction to computer science" I'd feel as if the class was misrepresented.
Also, I'd also say don't buy this book if you already have a good grounding in some other computer programming language. I think one of those many other books that I struggled with would be a much better fit for you. You won't be lost in poorly defined terminology or zip past what a thing does and focus mostly just on how Python does it. This book will spend way too much time explaining those things you've already figured out by now. If know C++ or Java or whatever, you probably already know the difference between a float and an integer and at the most just need a refresher.
Anyway, I didn't see any other reviews mention these points and I really am glad I found this book. So hopefully you guys will understand better what this book is really all about, which the description does a poor job of doing, in my opinion.
Look for similar items by category
- Books > Computers & Technology > Programming > Introductory & Beginning
- Books > Computers & Technology > Programming > Languages & Tools > Python
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Programming Languages