Description
Python is one of the most popular programming languages, widely used for data analysis and modelling, and is fast becoming the leading choice for scientists and engineers. Unlike other textbooks introducing Python, typically organised by language syntax, this book uses many examples from across Biology, Chemistry, Physics, Earth science, and Engineering to teach and motivate students in science and engineering. The text is organised by the tasks and workflows students undertake day-to-day, helping them see the connections between programming tools and their disciplines. The pace of study is carefully developed for complete beginners, and a spiral pedagogy is used so concepts are introduced across multiple chapters, allowing readers to engage with topics more than once. “Try This!” exercises and online Jupyter notebooks encourage students to test their new knowledge, and further develop their programming skills. Online solutions are available for instructors, alongside discipline-specific homework problems across the sciences and engineering.
Deviates and improves upon the traditional computer science-centric approach of teaching Python to science and engineering students
Chapters lead with practical examples from across the sciences and engineering, helping students connect programming tools with real tasks
Concepts are introduced across multiple chapters, allowing readers to engage with topics numerous times
Introduces software engineering tools and the best-practices used by professional developers in Part IV, to prepare students for writing their own high-quality code
Online digital resources include numerous Jupyter notebooks, 'Try This!' exercises, student homework problems, and solutions for course instructors
Table of Contents Part I. Getting Basic Tasks Done:
1. Prologue: Preparing to Program
2. Python as a Basic Calculator
3. Python as a Scientific Calculator
4. Basic Line and Scatter Plots
5. Customized Line and Scatter Plots
6. Basic Diagnostic Data Analysis
7. Two-Dimensional Diagnostic Data Analysis
8. Basic Prognostic Modeling
9. Reading In and Writing Out Text Data
10. Managing Files, Directories, and Programs
Part II. Doing More Complex Tasks:
11. Segue: How to Write Programs
12. n-Dimensional Diagnostic Data Analysis
13. Basic Image Processing
14. Contour Plots and Animation
15. Handling Missing Data
Part III. Advanced Programming Concepts:
16. More Data and Execution Structures
17. Classes and Inheritance
18. More Ways of Storing Information in Files
19. Basic Searching and Sorting
20. Recursion
Part IV. Going From a Program Working to Working Well
21. Make it Usable to Others: Documentation and Sphinx
22. Make it Fast: Performance
23. Make it Correct: Linting and Unit Testing
24. Make it Manageable: Version Control and Build Management
25. Make it Talk to Other Languages.
Johnny Wei-Bing Lin, University of Washington, Bothell Hannah Aizenman, City College, City University of New York Erin Manette Cartas Espinel, Envestnet Tamarac, Washington Kim Gunnerson, University of Washington, Bothell Joanne Liu, Biota Technology Inc., California