Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry.
Jennifer Campbell is a senior lecturer in the Department of Computer Science at the University of Toronto. Over the past 10 years, Jen's primary focus has been on teaching and curriculum design of introductory courses. Jen is involved in several projects exploring student experiences in introductory computer science courses and the factors that contribute to success, including the effectiveness of the inverted classroom.
Paul Gries has been teaching in the Department of Computer Science at the University of Toronto for more than 15 years. During his time at UofT, Paul has won numerous teaching awards, including UofT's most prestigious teaching award and an Ontario-wide teaching award. Paul has also co-authored two textbooks, has been a leader in departmental curriculum design and renewal, and, with Jen, got to teach Python to tens of thousands of students in a MOOC.
Jason Montojo is a research officer at the Donnelly Centre for Cellular and Biomolecular Research at the University of Toronto, where he develops scientific software for the Cytoscape and GeneMANIA projects. He has a strong interest in teaching computer science and frequently mentors students for Google's Summer of Code program.
Greg Wilson holds a Ph.D. in Computer Science from the University of Edinburgh, and has worked on high-performance scientific computing, data visualization, and computer security. He is the author of Data Crunching and Practical Parallel Programming (MIT Press, 1995), and is a contributing editor at Doctor Dobb's Journal, and an adjunct professor in Computer Science at the University of Toronto.
Born and raised on Vancouver Island; studied engineering at Queen's University in Ontario, worked for a while, then went to Edinburgh for a Master's, some more work, and a PhD. Traveled while writing my first book on parallel programming; came to Toronto "for a couple of years" in 1994, and have never left. I've worked for big corporations, startups, and myself (prefer the small to the large), been a university professor (enjoyed the teaching more than the red tape), and am now project lead for Software Carpentry, a crash course on software development for scientists and engineers. You can find me online at http://third-bit.com (personal stuff) or http://software-carpentry.org (the course).
I had not programmed for 30 years and wanted to do a bit for a small project. After trying several Python books I found this one. I suspect that no one programming book will appeal to all, but this one was a great book to get me started again. Well-written. Good examples. Clear explanations.
Was this review helpful to you?
I entered a graduate program in computational linguistics with a linguistics background with no computer science or programming experience. All of my specialization courses use Python and, unfortunately, my university doesn't offer Python courses. Discovering that I wasn't all that wonderful at self-teaching myself to program, I resolved to take an introductory Java programming course offered by my university's computer science department. The course served as an excellent foundation and made this text, which I think is already very clear and accessible, that much easier to follow. My opinion is that this book would make an excellent text for an introductory course in Python programming or a wonderful resource to someone who knows a bit about programming but would like to understand Python. I had tried other Python books in the past, but found myself either lost or bored. The authors of this book know how to hold their audience's attention.
As a result of superior pedagogy and a language that includes built in features like lists and dictionaries, and a standard library that comes with everything; this instructional book provides an introduction to Computer Science and Data Structures which excels using the modern programming language Python. This text is much more than a learn to program in "XXX" book, it gives a firm foundation for all subsequent courses in Computer Science and practical examples of how Data Structures are employed in real world problems involving graphics and databases. It also gives the necessary demonstrations of algorithms for Searching and Sorting, and a modern introduction to Object-Oriented programming.
In short, this volume provides an excellent foundation text in Computer Science, while incorporating instruction in the Python Language and giving practical examples of how to employ the Algorithms and Data Structures in real-world situations. It will give the student a strong basis for all further study in Computer Science and Programming.
I'm technical by nature and have programmed many years ago and wanted to get back into it. I got Learn to Program by Chris Pine which uses Ruby and this Practical Programming book which uses Python. I'm half way through both books. In comparison the Ruby book was smooth, easy to follow and few to none errors. I found the structure of the Ruby book excellent as each chapter built on the next. This book in contrast I'm finding much more of a chore. It does serve the purpose and will be a good intro to Python, BUT .... There a lot of errors in this book, small typos and such. Some exercises at the end of the chapter use methods from chapters that are further out and haven't been covered yet. Plenty of inaccurate page number references. Only the answers for the even exercises are found on the web, while the Ruby book gives all the answers. The Python book just doesn't seem as clear and easy to follow as the Ruby book. If you are just looking for a book to get into programming and not sure or care about language; I highly recommend the Ruby book over this one. If you need a Python intro I would say this book is okay, but leaves something to be desired and I feel the way the material is presented creates a slight unnecessary struggle. I haven't tried any other Python books to compare. And I will be continuing on and finishing this book even though I'm not raving about it. I'd say the python book reminds me of a mediocre college textbook with errors and a lack of clarity that might require an instructor to decipher. The Ruby book is smooth and easy to follow at home. Note this review is for the first edition, Publication Date: June 4, 2009 | ISBN-10: 1934356271 | ISBN-13: 978-1934356272 | Edition: 1 .. the same one selling here on Amazon.
While taking an online course (MIT OCW) that uses Python and had no book, I picked up this book as a reference for python specific syntax issues. It is a really great book (I got through the whole thing rather quickly), and I am sure it will stay near my workstation. The authors cover a broad range of topics in a rather short book. There are a ton of online, free books on programming and Python, however, if you prefer to read a physical book: this is a great choice.
This is an excellent introduction to Python. It covers plenty of the more general computer science concepts (that is, not Python-specific) missing from oft-recommended online "workbooks" like Codecademy and Learn Python the Hard Way, so it's proven very useful to me in my attempt to move from imitation to independence.
That said, the editing isn't quite up to par. An uncomfortable number of the raw code examples look like this (p19):