Conditions of Use
I've taught programming for about four years. The topics that I covered in my courses include fundamental concepts and topics in Python programming, web scraping, and Python for data analytics. I've struggled a long time to find a textbook that... read more
I've taught programming for about four years. The topics that I covered in my courses include fundamental concepts and topics in Python programming, web scraping, and Python for data analytics. I've struggled a long time to find a textbook that covers all these three topics until I reviewed this one. It combines all these three topics in the right sequence. I think students will have a good understanding of how to use Python for basic programming, web scraping, and processing data after reading this book. However, I think the author can provide more examples in each section. Further, I think there can be one or two chapters about how to analyze data in between chapter 15 and chapter 16 -- I think it is a little bit fast to move directly from using databases to visualization.
As far as I can tell, the content in this textbook is quite accurate.
The content is relatively up-to-date, but I think some more up-to-date content can be introduced in this textbook. For example, as I mentioned in the "Comprehensiveness" comment, I think one or two chapters can be added between chapter 15 and chapter 16. Here, the author can introduce Numpy and Pandas libraries for data analytics.
The book is written in a clear manner. However, I think some places can be extended to make the concept easier for readers to understand. For example, Chapter 4.8, Flow of execution: The author provides a very clear explanation about how Python executes the code with functions. Yet, this is the part where students have a lot of questions in my class. I usually need to use four or five programming examples to let them fully understand how the flow of execution works. If this part is not clear to the students, they will get even more confused about the flow of execution when I introduce objects and classes. In summary, I think for some very important sections, the author can add more content and examples in it.
This textbook is internally consistent in terms of terminology and framework.
I think chapters 1 to 10 and chapter 14 can be a module about Python fundamentals; chapters 11 to 13 can be a module about text processing or web scraping; chapters 15 and 16 can be a module about data processing and visualization. Overall, I think the structure and the sequence of the chapters work for new Python learners. However, I think the content of chapter 14 is more closely related to chapters 1 to 10.
The topics in the textbook are presented in a logical and clear fashion, but I think in some sub-sections, more examples and more graphs will help the readers understand the concepts better.
I think the textbook has no significant interface issues.
I did not find major grammatical errors.
I do not find any culturally insensitive content in this book.
This is a great introductory textbook addressing the main aspects of Python. Topics are covered with up-to-the-point discussions and meaningful examples. It is a powerful resource for beginners in the topic, meaningfully supporting the Open... read more
This is a great introductory textbook addressing the main aspects of Python. Topics are covered with up-to-the-point discussions and meaningful examples. It is a powerful resource for beginners in the topic, meaningfully supporting the Open Resource literature on Python.
The book is very accurate considering its intended audience.
The subject is very relevant due to its widespread use in the industry. However, this also implies that it is constantly evolving, which can demand updates in relatively small periods of time.
The book is very clear and provides adequate background to the covered topics (considering an introductory perspective). Still, some topics could benefit from more in-depth discussions.
The textbook may feel like a two-part work. Each part is very consistent on itself, however complexity and detailing changes significantly when comparing them.
The book is easy to follow through. Its chapters are very organized, presenting topics with clear modularity.
The book chapters and content presentation follow a clearly sequence.
The book presents a clean interface that is easy to navigate and follow through.
It is a well written textbook without major grammatical errors.
This book does not address culturally insensitive or offensive topics.
This is great resource for students that would like to be introduced to Python programming. It presents an up-to-the point approach, which makes it adequate for beginners.
This text can be broken down into two parts: the first ten chapters constitute a comprehensive introduction to basic Python concepts while the remaining chapters explore topics related to data acquisition and visualization (web, databases, SQL).... read more
This text can be broken down into two parts: the first ten chapters constitute a comprehensive introduction to basic Python concepts while the remaining chapters explore topics related to data acquisition and visualization (web, databases, SQL). The book does not address commonly used libraries in Python such as NumPy, pandas, matplotlib, etc… A glossary is included at the end of each chapter, and an index at the end of the book. It is an excellent introduction to Python.
I found the content to be accurate, easy to read, and unbiased.
The book uses Python 3, but relevance is more related to the structure of the textbook. Updates should be easy to introduce in the future. However, modifications to cover transitional topics between the first 10 chapters and the last 5 chapters might be needed and require extensive work and rearrangement of the modules.
The book is clear, provides adequate examples and explanation of the code introduced.
The book is consistent in its flow of terminology and framework. However, the last five chapters seem to increase in complexity without transitional material.
The text chapters are modular. The first 10-11 chapters can be assigned in different order once the introductory parts are covered. I have assigned chapters 3 through 10 in different orders and I have found the text to work very well without causing a disruption.
The book is well organized as it introduces the basic Python functionalities in the first part, in a modular way that permits rearrangement. It jumps in complexity in the parts discussing web scraping and databases.
I did not encounter any problem with the interface (pdf). A bigger font in the pdf version could have been easier to read. The charts are clear and easy to read and follow.
I have not found any major grammatical errors. The language is clear and concise.
This book does not contain any biased or offensive material as far as I could tell.
This is a comprehensive introductory book for new Python learners. It might need to be complemented with other resources prior to a learner mastering the web and databases sections of the book. It can be used for a semester-long introductory Python course.
The text covers all areas and ideas of the subject appropriately and provides an effective glossary at the end of every chapter. read more
The text covers all areas and ideas of the subject appropriately and provides an effective glossary at the end of every chapter.
The content in this text is accurate, error-free and unbiased.
Based on the text's content, I believe that the text, although printing history is 2016, is content that is up-to-date and will not become obsolete within a short period of time. Additionally, I found that it is written in such away that necessary updates will be relatively easy and straightforward to implement.
In regards to clarity, the text is written clearly and provides adequate context for the jargon/technical terminology that is used.
The text is internally consistent in terms of terminology and framework. I rated this as 5 because the key terms of every chapter are presented in the Glossary section of each chapter. The Glossary section reinforces the content represented in each chapter.
The text presents the structure of its sections as concise and relevant blocks of information that does not overwhelm the reader.
Based on my review of the text, the topics have a logical and clear flow.
I had no issues navigating the .pdf interface and the images/charts were without distortions.
The text had little to no grammatical errors.
The author used geographical references in the Visualization chapter that would be suitable as an inference to the inclusiveness of a variety of races, ethnicities, and backgrounds based on geographic locations.
The text provides very understandable concepts, examples, and diagrams that I believe will benefit learners along their journey to being confident in applying them to class activities and eventually within respective industries. I plan on using this text for future courses.
This book presents majority of the Python Programming critical areas and explains with useful examples. read more
This book presents majority of the Python Programming critical areas and explains with useful examples.
This book provides an unbiased approach with all possible ways and scenarios. This book presents information in organized way. The information is up to date and current with requirements.
This book is highly relevant to a regular reader who wants to learn how to use Python for data analysis tasks for AI & ML.
This book presents the material with clarity, details and relevant real examples as possible
Information is focused and delivers required knowledge with good sequence and consistency.
Content of this book is very well organized in chapters.
Author did excellent work by putting every critical area and topic in separate chapters making the flow transition smooth with rising level of difficulty.
The book's interface is well written without navigation, distortion of images / charts, or other display failures. Visual display works well.
I could not find any grammatical errors during review of the book text.
No negative impact or relation on any culture or community.
I like this book’s title and material included. This book can be an excellent reference & textbook for Python Programming and Data Analysis courses.
This book great for beginner programmer who does not know anything about programming. This text can be used in the computer science and information technology field. Even though it is targeted towards beginners, it contains advanced topics but... read more
This book great for beginner programmer who does not know anything about programming. This text can be used in the computer science and information technology field. Even though it is targeted towards beginners, it contains advanced topics but explains it very easily using plain English which motivates the reader to continue with the book. It provides a lot of examples, videos, and all the resources needed to learn to program. It is hard to find a book targeted towards beginner programmers that also cover object-orient programming, database, and SQL altogether.
I found that the content was all very much up-to-date at present and it was structured in a manner that would be amenable to easy updates for future revisions. As an instructor, it was also important that learning outcomes are easy to customize.
The content, in particular the Python syntax, video lectures are accurate and error-free, and unbiased.
I found the text to be very accessible yet accurate in its use of technical terminology when needed. This is important as many readers may not have English as a first language or are beginners without familiarity.
The terminology and framework of this text were consistent throughout especially at the end of the chapter when terms of terminology were provided for the reader.
The modularity of this book is an important aspect as it is essential for teachers to be able to assign different sections in different orders. In addition, it is very clear and organized. However, exercise titles would be helpful for teachers to guide their students (example: Exercise 1.1, 1.2 etc).
Chapters are organized in a level increase in difficulties and providing heading and subheadings helps the reader to find topics in a logical and clear fashion.
This text is very easy to navigate using pdf side-bar navigation tabs. I did not find any significant interface issues.
I did not find any grammatical errors.
Overall, I did not find any examples within the text to be culturally insensitive. However, using “God” in examples like 1.5 may come across as offensive or careless to some readers. This could be replaced with someone else easily.
After reviewing this book, I have decided to adopt this book in my own classes.
As the title suggests, the intended audience of this book is "everybody" who wants to explore Python for data analysis work. The book does cover the basics of Python programming, giving sufficient amount of subject details for a new programmer.... read more
As the title suggests, the intended audience of this book is "everybody" who wants to explore Python for data analysis work. The book does cover the basics of Python programming, giving sufficient amount of subject details for a new programmer. The book does provide a glossary after each chapter.
The core content is accurate in my opinion. Moreover, I do not remember any occasion when I have felt the book is biased. Neither I remember to have found a typo in the book.
The main content of the book is highly relevant to a regular reader who wants to learn how to use Python for data analysis tasks. Furthermore, the examples and exercise problems are taken from practical scenarios (e.g., web scraping, google APIs, Twitter data, and many more), which are highly relevant to our daily life. However, as a programming language like Python often experiences new releases, it is expected that a coding book would need a new edition every few years.
The text is written in lucid, easy-to-understand language. The author has done an awesome job on the metric of clarity.
The text has used the standard terminology of computer science and data science. The chapters are consistent in terms of terminology. Furthermore, similar framework is used across the chapters.
The text is highly modular. The whole book is nicely divided in about 16 chapters. This book would serve well as a textbook of a course.
The book is well organized. I am glad to observe a few common threads which tie the whole book. As an example, most of the examples in the book are on text processing whereas their complexity grows gradually from chapter to chapter. Another common thread that the author has masterly used is about the “file” concept which ties an earlier chapter (Chapter 7) with later chapters (Chapter 12, Chapter 15, and more)
I did not encounter any navigation issue while reading the pdf from cover to cover. The images and charts are in good shape.
I did not experience any significant grammatical issue.
The text is not culturally offensive in any way.
As the title suggests, the intended audience of this book is “everybody” who wants to do data analysis with Python. Ideally speaking, such a book needs to do the following tasks: (a) walk the reader through the basic constructs of Python without overwhelming them (b) motivate the reader in Python programming by illustrating the power of Python with simple yet practical examples, (c) have something extra for the more “enthusiast” readers to experiment with. In my opinion, the current book has excelled in all of the above. I am glad to observe a few common threads which tie the whole book. As an example, most of the examples are on text processing, and in many occasions their complexity grows gradually, which is helpful for learning new concepts. Another common thread that the author has masterly used is about the “file” concept. The textbook first introduces how to access ‘local files’ (which might hold text to process), then it shows that we can use the same “file” concept to process online text (e.g., webpages, or output of a web service), and then it further shows that we can store/retrieve data to/from a database in a similar style. The textbook also offers a culminating project experience, which are especially beneficial for the “enthusiast” readers. It presents three projects involving web service APIs, database, visualization, and more. The book also provides a rich set of code and data repositories so that students get started fast. These can excite the readers in performing practical data analysis tasks. Notably good features: debugging tips and a glossary after each chapter. Limitations: More exercise problems will be helpful if this book is used as a textbook.
Dr. Charles R. Severance's book introduces the fundamentals of Python programming in Chapters 1-10, without diving deeply into object-oriented programming. These chapters focus on code examples manipulating text and text files. Given the title, it... read more
Dr. Charles R. Severance's book introduces the fundamentals of Python programming in Chapters 1-10, without diving deeply into object-oriented programming. These chapters focus on code examples manipulating text and text files. Given the title, it would have been nice to have examples of other types of data as well, e.g., employee data, species data and income data. Chapters 11–16 branch out to gathering and manipulating text from different sources, including scraping the web. These later chapters also manipulate different types of data, including geographic data. The end of each chapter has a glossary and exercises, with sample code and data files available at the book's website.
Because Chapters 1-10 only touches upon object-oriented program, definitions and explanations can become convoluted. For example, the definition for immutable in Chapter 6 is confusing compared to the more accurate definition "an object with a fixed value". The book could be more accurate by giving readers a gentle treatment of object-oriented programming from the beginning. For example, this is nicely done in Chapter 8 when explaining string objects versus list objects. There is one small error when print is referred to as a statement, instead of a function.
The content is up-to-date for learning how to program. The reader is given timeless advice on how to approach a problem, debug issues, and deal with aggravations that are typical when programming.
The book is written clearly, although explanations are oversimplified at times. The glossary at the end of each chapter is helpful for clearing up confusion on terminology.
Each chapter is consistent in terms of terminology. As terms are explained in greater detail in subsequent chapters, it would be helpful if the revised definitions could be included in the chapter glossary.
Each chapter in the book was well organized into separate modules.
The chapters are presented in a logical order, although as previously stated, it would be helpful to build upon object-oriented concepts throughout the text, rather than waiting to Chapter 14 to address them fully.
I had no problem with the links at the book's website.
The text contains no grammatical errors as far as I could tell.
The text is not culturally biased as far as I could tell.
The book focuses on basic Python programming, along with advanced topics in Structured Query Language, databases, and visualizing data. The subject matter is clearly explained for all beginners. Good programming practices are reinforced throughout the book.
This book is an approachable introduction to both Python the language and its application to information science -- namely retrieving, cleaning, and storing data for later analysis. Chapters two through ten are based heavily on Allen Downey and... read more
This book is an approachable introduction to both Python the language and its application to information science -- namely retrieving, cleaning, and storing data for later analysis. Chapters two through ten are based heavily on Allen Downey and Jeff Elkner's excellent book, "Think Python: How to Think Like a Computer Scientist." While Severance has reworked many of the examples in these chapters to better reflect the book's overarching theme of data exploration Downey and Elkner's clear and concise introduction to the Python language is still prevalent and makes the early material easily accessible for new programmers. Given that the book is written with data exploration in mind I found it somewhat odd that its treatment of data visualization was fairly light with only three examples given in Chapter 16. Even odder was that there was no mention of libraries such as Pandas, NumPy, SciPy for data wrangling nor visualization packages such as Matplotlib, Seaborn, Bokeh, or GGplot. The latter I suspect is due at least in part to the text's age. The book is also lacking in its coverage of string formatting in Python, discussing only the most basic string formatting features and capabilities of the language while completely eschewing the .format() method and f-strings. Also missing is coverage of useful topics such as comprehensions, generators, and lambda expressions. The word "recursion" only appears in the book once, in the preface, where the author states that the word does not appear in the book at all. Finally, there is essentially no treatment of the Python standard library nor any hint that readers should look into it for the amazing wealth of functionality it provides. Overall, this book serves as an introduction to the basics of the Python programming language and its application to data exploration. It teaches enough Python in the early chapters to support the later ones. However, it is not an introduction to programming nor an introduction to computer science using Python as the teaching language.
The content of the book is accurate given its intended scope, even if it is a little dated in its approach to some material, such as string formatting. I found no typographical or layout errors in the HTML-based version I reviewed. Readers are also welcome to provide corrections/edits to the text via pull requests to its git repository.
The scope of the book is somewhat narrow: an introduction to enough Python to do simple data acquisition, wrangling, and visualization. However, as Python has become a, if not the, leading language in data science and the number and capabilities of related libraries have grown any text on data exploration that does not at least touch on libraries such as Pandas, NumPy, Matplotlib, or any of the numerous such libraries is going to quickly find itself becoming less and less relevant in the field.
The chapters based on Downey and Elkner's earlier book are very clear if, again, limited in scope. The later chapters jump in complexity at the expense of clarity in my opinion. However, the author does explore possible errors throughout the text and helps the reader understand what is causing them so as to aid in future debugging.
All the chapters are uniformly formatted and are consistent in their use of terminology.
The book is broken up into logical chapters and each chapter is further divided into meaningful and accessible portions. I did not find any subsection to be overly long and overall each chapter is short enough to be assigned as a single reading. Chapters build upon those that proceeded them as is to be expected in an introductory programming text.
The topics are presented in a logical order.
The text in the browser by default is on the small side but this can be corrected by zooming in on the page. This has the effect, however, of making the section headers overly large. I would also argue that using syntax colorization in the code examples would go a long way towards making the material easier to understand.
I found no grammatical errors in my reading.
I found no offensive content.
As previously stated, this text is not intended to be an introduction to either programming or computer science. Rather, it is an introduction to information science that teaches just enough programming to allow for the topic to be explored. I do think that the book does itself a disservice by not addressing Python's emerging role in data science and by neglecting the many tools the language offers in the form of its impressive library of functionality for that purpose.
The book is a comprehensive and approachable introduction to Python. The first nine chapters are terse, but comprehensive introduction to Python. Given the title, I had expected some discussion of the pandas Python package. It is more geared... read more
The book is a comprehensive and approachable introduction to Python. The first nine chapters are terse, but comprehensive introduction to Python. Given the title, I had expected some discussion of the pandas Python package. It is more geared toward acquiring data (web, databases and SQL).
I found no issues with the content, but there are a few typographical errors from LaTex in the text. They are obvious and don't impact the understanding.
Python 3 is the current standard, but the relevance is more a consequence of the subject matter than the approach.
The first 9 chapters were very clear, but there seemed to be a good jump in difficulty (and likely due to the subject matter) when introducing regex, networked programs. It could be jarring as a reader/learner.
Clear and well written with consistent notation and terminology.
I think any of the chapters could fairly easily turned into a module, so the particular chapters could be included or excluded as needed.
As noted above, the sequence is logical and clear, but the difficulty seems to jump considerably at chapters 10 or 11 (tuples and networked programs).
No issues that I noted.
Little to none that I noticed.
I think this is very good quick-and-dirty introduction to Python, but, as stated above, given the level of the first nine chapters, the remaining chapters might have benefited from talking a slightly lower-level approach. Still a quality book and resource.
This book is a remix of the excellent Think Python book by Allen Downey. The book keeps the clarity of the original while including examples skewed towards data applications, particularly text processing. The remix adds chapters on regular... read more
This book is a remix of the excellent Think Python book by Allen Downey. The book keeps the clarity of the original while including examples skewed towards data applications, particularly text processing. The remix adds chapters on regular expressions, web services, databases and visualization. It drops topics like algorithm analysis and GUIs, and slims down the discussion of classes significantly. These changes make this a good information science textbook and less of a computer science textbook. Students are led on the path of developing web-scraping programs. Programs that can pull raw data from online sources and process it a useful way. The book does not cover data science, plotting, or Python libraries like pandas. The coverage of the Python language is generally thorough, but misses topics like list comprehensions and lambda expressions. The additions are well-thought out and provide students with a useful toolkit that they can start applying right away. The visualization chapter is the only one that is lacking. It provides three well-documented examples of web-scraping programs that use visualization. But it does not provide a general treatment of visualization tools nor a discussion of how to use them effectively.
The overview of the Python language is accurate. The discussion of applications is accurate with regards to common practices of web-scraping programs.
The use of Python 3 ensures that chapters regarding syntax and data structures will remain valid for the foreseeable future. Chapters regarding web services, databases and visualization are more at risk. The author plays it conservatively by discussing XML and JSON for web services and SQLite for databases. These are good choices because they are widely used, but increasingly XML is falling by the wayside and tasks that used to be handled with relational databases are instead being run on NoSQL systems. One of the three visualization examples is based on the Gmane interface to mailing lists, which is likely not very relevant for students and Gmane's continued existence is in doubt. These chapters may need to be updated in a few years.
The book does an excellent job of explaining the Python language, always providing a context in which topics are useful. Information is imparted, not just to be comprehensive, but to help the reader be a better programmer. The examples are well-explained and motivated. The author frequently includes interludes on understanding errors and sections on debugging, providing valuable information for a novice programmer.
The chapters have a consistent style and use of terminology. The Python in the book follows the conventions in the Style Guide for Python.
There is a limit to how modular an introductory textbook on programming can be. The book generally strikes a good balance. Chapters do build on each other, but a course could skip some chapters without encountering much loss of continuity. The later chapters that focus on building up to web-scraping programs are not particularly modular and would need to be taught in order. The chapter on visualization is unfortunately dependent on the database chapter. The book would benefit from making visualization stand more on its own.
The book is well-organized and has a coherent flow through the chapters. Some topics, such as exception handling, are introduced earlier than is typical. But these introductions are done with a light touch and with an eye towards why the topic is immediately useful.
The links to code and outside sites worked. Code downloads nicely into a directory with a helpful Readme file.
No grammatical errors were found by this reviewer.
The book doesn't make use of many cultural references. The examples of text processing are clear and straight-forward and shouldn't be an issue for readers whose first language is not English.
A clear, well-constructed book that would serve an information science curriculum well.
Table of Contents
- 1 Why should you learn to write programs?
- 2 Variables, expressions, and statements
- 3 Conditional execution
- 4 Functions
- 5 Iteration
- 6 Strings
- 7 Files
- 8 Lists
- 9 Dictionaries
- 10 Tuples
- 11 Regular expressions
- 12 Networked programs
- 13 Using Web Services
- 14 Object-Oriented Programming
- 15 Using databases and SQL
- 16 Visualizing data
- A Contributions
- B Copyright Detail
About the Book
I never seemed to find the perfect data-oriented Python book for my course, so I set out to write just such a book. Luckily at a faculty meeting three weeks before I was about to start my new book from scratch over the holiday break, Dr. Atul Prakash showed me the Think Python book which he had used to teach his Python course that semester. It is a well-written Computer Science text with a focus on short, direct explanations and ease of learning.The overall book structure has been changed to get to doing data analysis problems as quickly as possible and have a series of running examples and exercises about data analysis from the very beginning.
Chapters 2–10 are similar to the Think Python book, but there have been major changes. Number-oriented examples and exercises have been replaced with data- oriented exercises. Topics are presented in the order needed to build increasingly sophisticated data analysis solutions. Some topics like try and except are pulled forward and presented as part of the chapter on conditionals. Functions are given very light treatment until they are needed to handle program complexity rather than introduced as an early lesson in abstraction. Nearly all user-defined functions have been removed from the example code and exercises outside of Chapter 4. The word “recursion”1 does not appear in the book at all.
In chapters 1 and 11–16, all of the material is brand new, focusing on real-world uses and simple examples of Python for data analysis including regular expressions for searching and parsing, automating tasks on your computer, retrieving data across the network, scraping web pages for data, object-oriented programming, using web services, parsing XML and JSON data, creating and using databases using Structured Query Language, and visualizing data.
The ultimate goal of all of these changes is a shift from a Computer Science to an Informatics focus is to only include topics into a first technology class that can be useful even if one chooses not to become a professional programmer.
About the Contributors
Charles Severance is a Clinical Associate Professor at the University of Michigan School of Information.