This book is designed to be used as the primary textbook in a college-level first course in computing. It takes a fairly traditional approach, emphasizing problem solving, design, and programming as the core skills of computer science. However, these ideas are illustrated using a non-traditional language, namely Python. Although Python is the language, teaching Python is not the main point of this book. Rather, Python is used to illustrate fundamental principles of design and programming that apply in any language or computing environment. In some places, certain Python features and idioms that are not generally found in other languages are avoided. There are already many good books about Python on the market; this book is intended as an introduction to computing.
This was one of the best books for beginner programmers I've seen. First, it is not a Python introduction book, it is a programming introduction book. There is a huge difference between the two. Many books targeted at beginners don't take into account that some concepts are hard to grasp and miss some crucial explanation with the examples they give. Not this one. Zelle introduces hard concepts at a good pace and has nice examples to go with them. And he also introduces Computer Science and a bit of software design to go with this book. Many introductory books skip the GUI part of programming and stick with CLI programming, which I think is terrible. Because the back end of a program is not as much fun to write for beginners. Writing an app that beginners can show it to others makes a great sense of accomplishment and is an ego boost which in the end, makes programming more fun. This book, on the other hand, starts graphical programming even before it talks about lists! Which is great in my opinion. The only problem is that it uses a custom module that the author prepared for this book specifically. Which made me skip most of the GUI parts because I didn't think they would benefit me in the long run( because I'm trying to learn Kivy and it is very different from Tkinter). Yet this minor issue aside, I recommend this book to anyone who doesn't have any prior knowledge of programming. It might be a good read for professionals too, but not as much.
This book is a very good first programming book for beginners. On reading the title, my first (cynical) reaction was, "Python as an introduction to computer science? Why not RPG or Snobol?" The point was that it seems on the surface quite difficult to introduce computer science adequately merely by teaching a somewhat exotic, string-oriented, high-level functional interpreter. For that matter, what does computer science as rigorously construed have to do with the languages used in modern software engineering? Computer programmers are evermore dealing less and less in computer science: We're becoming tailors using a set of patterns preordained by the language designer, patterns to which we cut our fabric all day. Like fish, we hardly notice the water in which we swim, live, and breathe.
The book serves two purposes: an introduction to computer science, and an introduction to Python as the first programming language.
It's easy to read because of its plain English, medium length (500 pages), well outlined chapters and sections.
It would be a nice textbook for liberal arts major undergraduate or high school students, a little bit shallow for serious computer software programmers.
The typeset is shabby. Font size shall be reduced to 11pt or 10pt. Diagrams shall be drawn in a consistent way. Look at p178, why do those two similar diagrams use two different font sizes? Maybe the author, a CS professor, outsourced part of the work?
Excellent Book for Learning Python. I've since been required to read some other free textbooks for classes I am taking and they are not even close to as good at explaining the concepts as this one is. Highly recommend it to anyone trying to learn Python.
A fantastic book for learning how to code in Python as well as the basics of computer science. I read this book for a beginner's Python class. It was easy to follow and did well explaining the various aspects of computer science using Python as an example. Each chapter builds nicely on the previous material.
At the end of each chapter are various review questions with true/false, multiple choice, and discussion formats. There are also programming exercises to put the lessons into practice. My only critique while reading the book was not having access to the official answers. This was especially frustrating for some of the trickier true/false questions. Since finishing it, the has been made available.
A very helpful read for those starting out in Python. There are also available such as slides, sample programs, and a zip file of program examples.
I highly recommend this for anyone interested in learning Python.
Great intro text. Would say book the book fairly quickly dives into advanced-beginner territory. Not necessarily a criticism, just an observation. It could be that I was completely new to programming and this text represented my exclusive introduction to it. Or, it could be that my aptitude for programming is below average, and this text is actually supposed be a breeze. However, I'm working through 'Practical Programming' by Gries and Campbell now, just to gain a different perspective on Python and CS and strengthen my understanding of the basics, and find that to be an easier, even more 'introductory' text. On the one hand I kind of wish I started with that first, on the other, I feel as though this book was a good challenge and hopefully pretty rapidly built my initial skill level at writing and understanding Python code and understanding some key aspects of computer science more broadly.
One thing is for sure. I found the end of chapter exercises to be very challenging. I simply could not have completed this book in a reasonable time frame without consulting solutions pretty often, though I would give a fair shot and try to at least partially complete some of the complex problems on my own before looking at the solutions. Compared to Practical Programming or other resources I've been using to learn Python, the problem sets in this text are definitely the hardest by far.
Even though Python programming language is used in this book just as a tool for explaning the basic Computer Science and programming concepts, it hard for me, as a Python fan, to read the Python code using cammelCase :) But even this didn't matter that much, as in my Kindle version of this book was the code almost non-readable.
Anyway I would say that this book fulfills its purpose, definitelly more valuable for beginner-intermediate programmers.
Great for learning Python and computer graphics. Of course, this book covers ALL aspects of Python, not just graphics. I'd gotten another Python book a few years ago - which I'd since forgotten - but it did not cover graphics. Also, to repeat, this book has great exercises for learning the language.
Uno de los mejores libros de introducci贸n a la programaci贸n con python. Espero que pronto salga una edici贸n actualizada con python 3.12, y que incluya un cap铆tulo con lamdas, generadores, y concurrencia (async) para poder darle las 5 estrellas. Buen contenido, bastantes ejercicios, y temas de discusi贸n.
It's one of the best Books about Introduction to Computer Science and Programming out there. Easy to read, lot of exercises to practice and Explanations worth investing your precious time in reading it.
its a computer science book that explains concepts using Python. great for people who are looking to learn basic Python while building a strong foundation in CS concepts. I wish this was my intro to CS textbook, and would use this as an intro to CS textbook if I were to ever teach
Exceptional intro as described in the title; however, the examples can be a bit hard and boring to grasp at first. Nothing that can't be solved with a couple re-reads.
A little too basic for an experienced programmer wanting to learn Python, but excellent for someone learning Python as their first programming language.
This book is great for someone who wants to start Python programming. It is especially good if you have previous experience coding in another language such as Java or C++. Even if you don't, you won't have any trouble following the material.
At first, I thought it was too simplistic and lacking much technical information on the language itself. Its depth does not come close to the level of depth that books such as have. But I have come to appreciate that the book manages to sustain the reader's attention by focusing on the most important concepts of every topic instead of straying off into the minute details. It covers the main concepts of programming using the Python language. Any extra syntax related information is freely available online. But to strengthen your grasp of the concepts using Python, this is a good book.
I really enjoyed this book as an introduction to Computer Science. It is not meant to teach Python as much as it is to introduce concepts that can be applied to any language you may decide to pursue. The use of Python is advantageous because of its relative ease for new programmers and its intuitive syntax. After learning these basics, I have had a much easier time dipping my toes into other languages. A fantastic read if you want to learn the basics of Computer Science as it is written in an understandable, friendly style and also includes challenging exercises.
Wonderful introduction - I read this book by myself and within a few months I had an internship where I independently wrote python programs to do image processing at a federal lab. I had some basic computer science background but had always been terribly confused on how everything worked. Zelle does a phenomenal job walking any reader through the basics and I highly highly highly recommend this book to anyone wanting to learn. I did a chapter or two a week and honestly had a great time doing the problems at the ends of each chapter.
If you think that this book can teach you to program with Python, you are going to be disappointed. This book teaches about computer science with Python, not how to program with Python. I think John Zelle either needs to start a new line of work or go back to the computer programming classroom, learn how to program with Python, and write a real instruction book on how to program with Python because he is another mediocre amateur.
I found this book very useful. I took Python as an introductory programming course at college. This book was a great resource for homework assignments and projects. Instructions and code were very clear and concise, and I enjoyed making my own way through the book, playing with Python outside of class time.
This is the required textbook for the first two introductory courses to computer science at Dixie State College of Utah. C++ used to be taught in the introductory courses, but Python is supposed be easier to learn than C++ for people who have never programmed before.
this book was extremely helpful in learning python. I have been coding for around 2 years, and I learned so much by reading this book--even after learning the basics. John Zelle makes understanding computer science simple and fun!
This could actually be a really good book for a person just learning to program. It is not really a book for someone who is an intermediate programmer or better.