This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of "data science" for using computation to m This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of "data science" for using computation to model and interpret data. The book is based on an MIT course (which became the most popular course offered through MIT's OpenCourseWare) and was developed for use not only in a conventional classroom but in in a massive open online course (or MOOC) offered by the pioneering MIT--Harvard collaboration edX. Students are introduced to Python and the basics of programming in the context of such computational concepts and techniques as exhaustive enumeration, bisection search, and efficient approximation algorithms. The book does not require knowledge of mathematics beyond high school algebra, but does assume that readers are comfortable with rigorous thinking and not intimidated by mathematical concepts. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. Introduction to Computation and Programming Using Python can serve as a stepping-stone to more advanced computer science courses, or as a basic grounding in computational problem solving for students in other disciplines.

# Introduction to Computation and Programming Using Python

This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of "data science" for using computation to m This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of "data science" for using computation to model and interpret data. The book is based on an MIT course (which became the most popular course offered through MIT's OpenCourseWare) and was developed for use not only in a conventional classroom but in in a massive open online course (or MOOC) offered by the pioneering MIT--Harvard collaboration edX. Students are introduced to Python and the basics of programming in the context of such computational concepts and techniques as exhaustive enumeration, bisection search, and efficient approximation algorithms. The book does not require knowledge of mathematics beyond high school algebra, but does assume that readers are comfortable with rigorous thinking and not intimidated by mathematical concepts. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. Introduction to Computation and Programming Using Python can serve as a stepping-stone to more advanced computer science courses, or as a basic grounding in computational problem solving for students in other disciplines.

Compare

4out of 5BCS–I chose to read and review this book purely based on the title rather than doing my normal level of research. I was interested in learning more about the Python language, partly because I use Jython on a regular basis (Jython is an implementation of Python, written in Java). Had I done my research more fully, I would have read this paragraph, which clearly outlines the purpose and content of the book: ‘This book introduces students with little or no prior programming experience to the art of com I chose to read and review this book purely based on the title rather than doing my normal level of research. I was interested in learning more about the Python language, partly because I use Jython on a regular basis (Jython is an implementation of Python, written in Java). Had I done my research more fully, I would have read this paragraph, which clearly outlines the purpose and content of the book: ‘This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of “data science” for using computation to model and interpret data.’ This book should not be considered an introduction to Python; it is, in fact, precisely what the title suggests: an introduction to computation and programming using Python. The difference may sound quite subtle, and perhaps a bit negative. However, that is the precise opposite of what I want to suggest - this is an excellent book, one that I would have dearly loved to have when I first started to learn the subject of computer science back in the 1980s. The book begins by introducing Python, including the basic elements of the language such as objects, expressions, typing, variables, branches and strings. Much of this is very translatable to other languages and would be useful to anyone learning the basic fundamentals of computer programming, regardless of the language. It then continues to explain the fundamentals of programming, including functions, abstraction, testing, debugging, exception handling and object-oriented (OO) programming. At that point, the book dives into the science element of computer science, including algorithmic complexity, probability theory, graphing and statistical analysis. At every stage, the author provides copious examples of how each particular problem can be illustrated/ solved using Python, using the building blocks introduced in the early chapters. In its entirety, the book should be considered an excellent introduction to computer science and programming - as mentioned previously, I'd have loved to have this book when I started out in information science some 30 years ago. However, if one's objective is to learn Python, it will be necessary to supplement this book with some specific Python tutorials, although the first few chapters will definitely help to establish context and understand the fundamental building blocks of the language. Even one such as I, who has been working in the IT industry for nearly 30 years, got a huge amount of value from this book, as much of the content provided some good reminders of things that I'd since forgot, including probability and statistical analysis. In conclusion, I can strongly recommend this book (provided that one reads the title in full) as a manual for budding computer scientists, as well as an introduction to the Python programming language. Reviewed by David Hay MBCS CITP, IBM Software Services for WebSphere (ISSW)

5out of 5龍帝–It's a good book, a bit too academic and too abstract explaining OOP... If read while following the MITx lecture it's handy but still complicated for an Introduction, because it's full of computer science jargon that doesn't explain anything to novice. If you are not already a programmer and want to learn python, read "Python the hard way" and the educational materials from the Google dev center. It's a good book, a bit too academic and too abstract explaining OOP... If read while following the MITx lecture it's handy but still complicated for an Introduction, because it's full of computer science jargon that doesn't explain anything to novice. If you are not already a programmer and want to learn python, read "Python the hard way" and the educational materials from the Google dev center.

4out of 5Loukas Arvanitis–Very good introductory book - used it as part of EdX's MOOC course and it helped me a lot. Highly recommended. Very good introductory book - used it as part of EdX's MOOC course and it helped me a lot. Highly recommended.

5out of 5Ji–This is obviously one of the best written technical books. The teaching style is fun and straightforward. The material is rid of any redundancy so that a quick learning of the essential parts about computation was made possible. Definitely worth reading and re-reading.

4out of 5Steven–An introduction to sotware engineering and data science for beginners, who are generally assumed to be non-specialist engineering or science students with a background in algebra and the scientific method. Data science is maybe taking it too far: really it's basic computational statistical analytics. Both halves of the book use Python. It's a college textbook, used in the MIT subject 6.00 and its online MOOC counterpart 6.00x. This edition of the book is based on Python 2.7; more recent editions An introduction to sotware engineering and data science for beginners, who are generally assumed to be non-specialist engineering or science students with a background in algebra and the scientific method. Data science is maybe taking it too far: really it's basic computational statistical analytics. Both halves of the book use Python. It's a college textbook, used in the MIT subject 6.00 and its online MOOC counterpart 6.00x. This edition of the book is based on Python 2.7; more recent editions use 3.5. As in many MIT presentations, there's not a lot of hand-holding -- things move fast and you may have to supplement with other material to fill in leaps in the exposition. But the overall arc of the book provides a solid course of study for those just getting started with computer programming and computational data analysis, two skills no scientist or engineer should be without.

4out of 5Muhammad Yousef–A practical introduction to computation from MIT Press. This book walks you through the vast majority of computational techniques that you need to know as a software engineer. It covers a wide range of traditional topics such as computational complexity, basic data structures, Object-oriented programming and dynamic programming. also, It provides students with a comprehensive bird's eye to Data Science so, if you are interested, I can assure you that it will be an excellent place to start. Although A practical introduction to computation from MIT Press. This book walks you through the vast majority of computational techniques that you need to know as a software engineer. It covers a wide range of traditional topics such as computational complexity, basic data structures, Object-oriented programming and dynamic programming. also, It provides students with a comprehensive bird's eye to Data Science so, if you are interested, I can assure you that it will be an excellent place to start. Although it uses Python, this is not a python book! so, If you have no experience with the language yet, I encourage you to learn about it before you dive deeply in the contents of this book.

4out of 5Ender Yolagel–This text by The MIT Press covers MITx's program of Computational Thinking using Python on edX. You can also take OCW versions of these courses for free. Chapters 1-11 covers 6.0001 and 11-24 covers 6.0002. * 6.0001 - Introduction to Computer Science and Programming in Python (Fall 2016) * 6.0002 - Introduction to Computational Thinking and Data Science (Fall 2016) The book is an introduction to software engineering. It's a computer science course, not a Python course! It covers a wide range of top This text by The MIT Press covers MITx's program of Computational Thinking using Python on edX. You can also take OCW versions of these courses for free. Chapters 1-11 covers 6.0001 and 11-24 covers 6.0002. * 6.0001 - Introduction to Computer Science and Programming in Python (Fall 2016) * 6.0002 - Introduction to Computational Thinking and Data Science (Fall 2016) The book is an introduction to software engineering. It's a computer science course, not a Python course! It covers a wide range of topics computational complexity, data structures, OOP and dynamic programming etc. During some parts, it leads you think/question as if this is Python, not C# or Java, but remember it's a CS course. So the introduction has to be general enough that it gives you a feel for everything. Code examples, particularly for the implementation of different computational models (optimization, statistical and simulation models), guide you on how to think like a computer scientist.

5out of 5Senthil Kumaran–I skimmed through the book picking up the concepts taught from the author's point of view. The interesting part here was, the author introduces a number of scientific methods and presents a real-world use-case before demonstrating the scientific method using Python. One interesting thing I had picked up from this book was Buffon's method for calculating Pi, which was extremely simple and serves good exercise to do in any programming language. I think this book is aimed at science students, like I skimmed through the book picking up the concepts taught from the author's point of view. The interesting part here was, the author introduces a number of scientific methods and presents a real-world use-case before demonstrating the scientific method using Python. One interesting thing I had picked up from this book was Buffon's method for calculating Pi, which was extremely simple and serves good exercise to do in any programming language. I think this book is aimed at science students, like high school or bachelor who have learned science the traditional way and want to pick up computation and python.

5out of 5jacques tree cartesian–still half way of all pages, but i think that's enough to accomplished my purpose to learn about basic of computer science with python. the other half page is about how to solving problem like knapsack problem and most of them about statistics probability, getting to know the data and machine learning. grateful to know and read this as my first reference as i was have no knowledge of computer science or programming before. it really covers the basic and best as pair when watching playlist of mit still half way of all pages, but i think that's enough to accomplished my purpose to learn about basic of computer science with python. the other half page is about how to solving problem like knapsack problem and most of them about statistics probability, getting to know the data and machine learning. grateful to know and read this as my first reference as i was have no knowledge of computer science or programming before. it really covers the basic and best as pair when watching playlist of mit 6.0001.

4out of 5AJ–I got 2/3 of the way through but it's just too abstract with it's examples to be helpful. It would probably be a good reference if you were reading it while taking the MIT free course but if you are just looking to read and do problems on your own, then find an easier book to follow. I got 2/3 of the way through but it's just too abstract with it's examples to be helpful. It would probably be a good reference if you were reading it while taking the MIT free course but if you are just looking to read and do problems on your own, then find an easier book to follow.

5out of 5Neal–Very detailed. Could be shorter

4out of 5Raymond Lewis–Good college level overview.

4out of 5Gilvane Ferret–Revised and Expanded Edition

4out of 5TallabAbdelhakim–Very Technical Book, and Very Detailed One. Worth Your Time. if you find it hard to read, start with Zelle's Python Programming. Very Technical Book, and Very Detailed One. Worth Your Time. if you find it hard to read, start with Zelle's Python Programming.

5out of 5Yannik–Only read the first half of the book that corresponds to the lectures in the MITx 6.00.1 course. Might come back in the future to browse through the second half.

4out of 5Asa Myth–Good introduction on C&S.

4out of 5Andrew Breza–I'm a data scientist with extensive experience using the R programming language. I'm adding Python to my toolkit and this is exactly the right book for learning not only Python syntax but also how to use object oriented code to solve real problems. I'm a data scientist with extensive experience using the R programming language. I'm adding Python to my toolkit and this is exactly the right book for learning not only Python syntax but also how to use object oriented code to solve real problems.

5out of 5Jovany Agathe–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 boug 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.

4out of 5Carl–Read this book for the Mitx course on edx.org. It is a very good introduction to computer science and python programming. And the e 6.00.1x/6.00.2x courses were very good as well, even as a part time student. I would not have liked to have taken the course without this book. The only thing about this book was it was a little bit heavy on the academic side and mathematical side. While i understand that it is a part of learning CS, this book will not be easy someone new on the subject. That being sa Read this book for the Mitx course on edx.org. It is a very good introduction to computer science and python programming. And the e 6.00.1x/6.00.2x courses were very good as well, even as a part time student. I would not have liked to have taken the course without this book. The only thing about this book was it was a little bit heavy on the academic side and mathematical side. While i understand that it is a part of learning CS, this book will not be easy someone new on the subject. That being said the only parts that stumped me were the parts where it was mathematically based. Like on the chapters about probability, where my knowledge was laughably bad. Luckily Khan Academy has some courses.

5out of 5Rodrigo Rivera–The best introductory CS textbook I have come across. Very didactic and ideal for all audiences. The book is extremely easy to read and offers a very broad perspective. Nevertheless, its readers will obtain a very solid foundation. It covers traditional OO topics as well as basic statistics and data manipulation using Python. Great material for anyone trying to learn computer programming or the python language itself.

4out of 5Tom Meyer–Though I preferred Zelle's introduction to the subject, this was an interesting and very useful text I used for the edX series. Unsurprisingly, it has a much more math-centered focus, which was interesting. The chapter on computational complexity was downright fascinating. Though I preferred Zelle's introduction to the subject, this was an interesting and very useful text I used for the edX series. Unsurprisingly, it has a much more math-centered focus, which was interesting. The chapter on computational complexity was downright fascinating.

5out of 5Ketil Moland–This book is written in a relatively dense fashion, but when read in conjunction with the MITx 6.00.1x course at edX, it works well. It helped me get a better grasp of some of the key concepts from the 6.00.1x video lectures.

4out of 5Becky–This is some tough reading, but well worth it. I want to log some more hours practicing Python basics then return to this one for another go. I got about 30 pages in and found it very challenging - maybe too much so for a beginner.

5out of 5Adam Dodd–I'm enjoying this book, and the moreso because I am now using it in conjunction with the edX course that it accompanies. The course is excellent and the book has a sufficiently entertaining style that makes the foothills of learning to program less tedious than they might otherwise be. I'm enjoying this book, and the moreso because I am now using it in conjunction with the edX course that it accompanies. The course is excellent and the book has a sufficiently entertaining style that makes the foothills of learning to program less tedious than they might otherwise be.

4out of 5Gary Boland–Great book, some great examples on running trials

4out of 5Alex–If you know a bit python syntax, this is the best self-contained intro book to computer and data science.

5out of 5JAYANT PAUL–its a good book want to learn foe educational perpse

5out of 5Adam McCartney–Super book, provides a nice light introduction to some of the foundations of algorithms. It's used as a close companion to the OCW course, whose videos are available on youtube. Super book, provides a nice light introduction to some of the foundations of algorithms. It's used as a close companion to the OCW course, whose videos are available on youtube.

5out of 5Quazirfan–This is easily the best first book for anyone who wants to learn to program. But this book requires more effort than other introductory books but the extra work will set you on the right track.

4out of 5Hema–This is an amazing book if you are interested in Probability and Professor Guttag explains it in a fun way.