Series: MIT Press
Paperback: 320 pages
Publisher: The MIT Press; revised and expanded edition edition (August 9, 2013)
Product Dimensions: 8.5 x 0.5 x 11 inches
Shipping Weight: 1.6 pounds (View shipping rates and policies)
Average Customer Review: 4.3 out of 5 stars See all reviews (51 customer reviews)
Best Sellers Rank: #99,327 in Books (See Top 100 in Books) #103 in Books > Computers & Technology > Programming > Languages & Tools > Python #208 in Books > Computers & Technology > Programming > Introductory & Beginning #251 in Books > Computers & Technology > Programming > Web Programming
Let me post a disclaimer first. I bought the paperback from MIT-press' website since it was cheaper after the edX discount.Now the real deal : The book is excellent. It is the perfect companion to MIT's course on edX. I attended the course on a whim, since I already have a masters degree in computer engineer, but I thoroughly enjoyed it. The book takes a beginner from the basics to some of the most important aspects of computer science. There is a bit of graph theory, a bit of statistics, a bit of sorting, linear regression, data plotting using Pylab, and even the knapsack problem thrown in. I loved the book as well as the course, and will readily recommend both to people interested in computer science, irrespective of the level of their expertise (there is something for everyone).I have read bad reviews about the Kindle edition of this book and so I will add that a DRM free e-book is also available for purchase from MIT-press' website. If you want the ability to open your e-book with any PDF reader, buy that instead of the Kindle version.
Bought this for the MIT Computer Science course 6.00.1x. It is a fast paced but very readable first year text for Computer Science. It uses Python 2.X as its language and you will come up to speed in Python quickly, and then spend the bulk of the book learning algorithms and computational techniques.I am very pleased with the book. It is terse and fast. If you require a more leisurely pace, John Zelle's Python Programming, an Introduction to Computer Science takes 425 pages to cover what this book covers in 110 pages, and then has a short chapter just touching on what this book covers more deeply in the remaining 200 pages. Zelle's book is also a popular first year CS text, but obviously for a different audience. Obviously, you will learn more with this book if you can take the pace. I bought Zelle's book also and have used it for extra exercises and the occasional alternative explanation.I also am using Problem Solving with Algorithms and Data Structures by Miller and Ranum to supplement/flesh out my algorithms knowledge during breaks in the class. This also seems to be a good book, and uses Python as its language for examples.Buy Guttag for sure, or Zelle if you feel the need for a slower pace, and Miller and Ranum to flesh out your algorithms.Dave
Taking the edX class. I thought this book would help and it does: it repeats the content of the class, but adds very little. My issue with the book is that: 1) It isn't easy to search. 2) It covers concepts too quickly - very little review. 3) Programming terminology is "bolded", but no glossary is provided at the back.I recommend the book to those taking the edX class simply because it helps reduce note-taking. But if you are a beginner at programming and just looking for a book to start learning Python, I am sure there are better ones out there (i.e. clearer books that are a little more "hands-on"). I have enjoyed learning web related languages with Sitepoint and O'reilly books, so I'll probably look into getting one of those to deepen my understanding of Python.
As the title suggests, it is a book on computation, and Python is used as a programming tool. It assumes no prior knowledge of programming, but readers are expected to have good mathematical maturity as it goes on to discuss techniques from a wide variety of topics from numerical analysis to clustering. If you already know programming, and just want to learn Python data and control mechanisms, this is not the book for you.
I used this textbook along with the MIT online course 6.01 on edX.com. Overall I thought it was well written and structured, my biggest qualm was that explanations were not always given for code. Considering how small the text is, I think they could have given readers better explanations in certain places without making the book too long.Pros:-Covers a little material on many subjects and provides a thorough introduction to computer science.Cons:-Like other reviewers have said, much of the textbook is word for word from the online lectures.-Does not fully explain every piece of code. When explanations are given, they are not comprehensive and the reader is expected to look at other sources.-Not really a standalone introduction, without the online course one will not fully grasp the concepts.
As a result of taking the video course from MIT, I bought the book. It augments the video course and fills the gaps.
I'm taking a "Computer Science Foundations" program at my university and this is one of the required texts; although we mostly use Think Python (which I like a lot better as a textbook) and an interactive book "[...]This is an excellent book if it will be your first and only book in your quest to become a Computer Scientist. It focuses--as stated by the author-- "on breadth rather than depth" and it moves FAST. By the end of the second chapter, you will have covered iteration, variables, assignments, types, operators, and will have gone over the basics of an IDLE: the book assumes you can, by then, write a small program that involves using all that you have learned up until that point.If you instead want to learn a specific computer language (Python, Java, C++, etc), then I would suggest something specific and tailored to that language.It's a good book, but it moves too fast for me, and assumes too much from a "beginner"; it's trying to teach us how to use Python to solve computational problems, rather than simply learning the computer language Python. :)