Introduction to Computation and Programming Using Python with Application to Computational Modeling and Understanding Data
"Introduces students with little or no programming experience to computational problem solving using Python and various Python libraries"--
Saved in:
Main Author: | |
---|---|
Format: | Book |
Language: | English |
Published: |
Cambridge, Massachusetts
The MIT Press
2021
|
Edition: | third edition |
Subjects: | |
Online Access: | Click Here to View Status and Holdings. |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
MARC
LEADER | 00000nam a2200000#i 4501 | ||
---|---|---|---|
001 | wils-975695 | ||
005 | 20220710951 | ||
008 | 220411t2021 -US a|# ##001 #|eng|D | ||
020 | # | # | |a 9780262542364 |q paperback |
020 | # | # | |a 0262542366 |q paperback |
040 | # | # | |a DLC |b eng |d UiTM |e rda |
041 | 0 | # | |a eng |
090 | 0 | 0 | |a QA76.73.P98 |b G88 2021 |
100 | 1 | # | |a Guttag, John V. |d 1949- |e author |
245 | 1 | 0 | |a Introduction to Computation and Programming Using Python |b with Application to Computational Modeling and Understanding Data |c John V. Guttag |
250 | # | # | |a third edition |
264 | # | 1 | |a Cambridge, Massachusetts |b The MIT Press |c 2021 |
264 | # | 4 | |c ©2021 |
300 | # | # | |a xviii, 637 pages |b illustrations |c 23 cm |
336 | # | # | |a text |2 rdacontent |
337 | # | # | |a unmediated |2 rdamedia |
338 | # | # | |a volume |2 rdacarrier |
500 | # | # | |a Includes index |
505 | 0 | # | |a Machine generated contents note: 1.1. Terms introduced in chapter -- 2.1. Installing Python and Python IDEs -- 2.2. The basic elements of Python -- 2.2.1. Objects, expressions, and numerical types -- 2.2.2. Variables and assignment -- 2.3. Branching programs -- 2.4. Strings and input -- 2.4.1. Input -- 2.4.2. A digression about character encoding -- 2.5. While loops -- 2.6. For loops and range -- 2.7. Style matters -- 2.8. Terms introduced in chapter -- 3.1. Exhaustive enumeration -- 3.2. Approximate solutions and bisection search -- 3.3. A few words about using floats -- 3.4. Newton-Raphson -- 3.5. Terms introduced in chapter -- 4.1. Functions and scoping -- 4.1.1. Function definitions -- 4.1.2. Keyword arguments and default values -- 4.1.3. Variable number of arguments -- 4.1.4. Scoping -- 4.2. Specifications -- 4.3. Using functions to modularize code -- 4.4. Functions as objects -- 4.5. Methods, oversimplified -- 4.6. Terms introduced in chapter -- 5.1. Tuples -- 5.1.1. Multiple assignment -- 5.2. Ranges and iterables -- 5.3. Lists and mutability -- 5.3.1. Cloning -- 5.3.2. List comprehension -- 5.4. Higher-order operations on lists -- 5.5. Strings, tuples, ranges, and lists -- 5.6. Sets -- 5.7. Dictionaries -- 5.8. Dictionary comprehension -- 5.9. Terms introduced in chapter -- 6.1. Fibonacci numbers -- 6.2. Palindromes -- 6.3. Global variables -- 6.4. Terms introduced in chapter -- 7.1. Modules -- 7.2. Using predefined packages -- 7.3. Files -- 7.4. Terms introduced in chapter -- 8.1. Testing -- 8.1.1. Black-box testing -- 8.1.2. Glass-box testing -- 8.1.3. Conducting tests -- 8.2. Debugging -- 8.2.1. Learning to debug -- 8.2.2. Designing the experiment -- 8.2.3. When the going gets tough -- 8.2.4. When you have found "The" bug -- 8.3. Terms introduced in chapter -- 9.1. Handling exceptions -- 9.2. Exceptions as a control flow mechanism -- 9.3. Assertions -- 9.4. Terms introduced in chapter -- 10.1. Abstract data types and classes -- 10.1.1. Magic methods and hashable types -- 10.1.2. Designing programs using abstract data types -- 10.1.3. Using classes to keep track of students and faculty -- 10.2. Inheritance -- 10.2.1. Multiple levels of inheritance -- 10.2.2. The substitution principle -- 10.3. Encapsulation and information hiding -- 10.3.1. Generators -- 10.4. An extended example -- 10.5. Terms introduced in chapter -- 11.1. Thinking about computational complexity -- 11.2. Asymptotic notation -- 11.3. Some important complexity classes -- 11.3.1. Constant complexity -- 11.3.2. Logarithmic complexity -- 11.3.3. Linear complexity -- 11.3.4. Log-linear complexity -- 11.3.5. Polynomial complexity -- 11.3.6. Exponential complexity -- 11.3.7. Comparisons of complexity classes -- 11.4. Terms introduced in chapter -- 12.1. Search algorithms -- 12.1.1. Linear search and using indirection to access elements -- 12.1.2. Binary search and exploiting assumptions -- 12.2. Sorting algorithms -- 12.2.1. Merge sort -- 12.2.2. Sorting in Python -- 12.3. Hash tables -- 12.4. Terms introduced in chapter -- 13.1. Plotting using Matplotlib -- 13.2. Plotting mortgages, an extended example -- 13.3. An interactive plot for an infectious disease -- 13.4. Terms introduced in chapter -- 14.1. Knapsack problems -- 14.1.1. Greedy algorithms -- 14.1.2. An optimal solution to the 0/1 knapsack problem -- 14.2. Graph optimization problems -- 14.2.1. Some classic graph-theoretic problems -- 14.2.2. Shortest path: depth-first search and breadth-first search -- 14.3. Terms introduced in chapter -- 15.1. Fibonacci sequences, revisited -- 15.2. Dynamic programming and the 0/1 knapsack problem -- 15.3. Dynamic programming and divide-and-conquer -- 15.4. Terms introduced in chapter -- 16.1. Random walks -- 16.2. The Drunkard's walk -- 16.3. B Machine generated contents note: 1.1. Terms introduced in chapter -- 2.1. Installing Python and Python IDEs -- 2.2. The basic elements of Python -- 2.2.1. Objects, expressions, and numerical types -- 2.2.2. Variables and assignment -- 2.3. Branching programs -- 2.4. Strings and input -- 2.4.1. Input -- 2.4.2. A digression about character encoding -- 2.5. While loops -- 2.6. For loops and range -- 2.7. Style matters -- 2.8. Terms introduced in chapter -- 3.1. Exhaustive enumeration -- 3.2. Approximate solutions and bisection search -- 3.3. A few words about using floats -- 3.4. Newton-Raphson -- 3.5. Terms introduced in chapter -- 4.1. Functions and scoping -- 4.1.1. Function definitions -- 4.1.2. Keyword arguments and default values -- 4.1.3. Variable number of arguments -- 4.1.4. Scoping -- 4.2. Specifications -- 4.3. Using functions to modularize code -- 4.4. Functions as objects -- 4.5. Methods, oversimplified -- 4.6. Terms introduced in chapter -- 5.1. Tuples -- 5.1.1. Multiple assignment -- 5.2. Ranges and iterables -- 5.3. Lists and mutability -- 5.3.1. Cloning -- 5.3.2. List comprehension -- 5.4. Higher-order operations on lists -- 5.5. Strings, tuples, ranges, and lists -- 5.6. Sets -- 5.7. Dictionaries -- 5.8. Dictionary comprehension -- 5.9. Terms introduced in chapter -- 6.1. Fibonacci numbers -- 6.2. Palindromes -- 6.3. Global variables -- 6.4. Terms introduced in chapter -- 7.1. Modules -- 7.2. Using predefined packages -- 7.3. Files -- 7.4. Terms introduced in chapter -- 8.1. Testing -- 8.1.1. Black-box testing -- 8.1.2. Glass-box testing -- 8.1.3. Conducting tests -- 8.2. Debugging -- 8.2.1. Learning to debug -- 8.2.2. Designing the experiment -- 8.2.3. When the going gets tough -- 8.2.4. When you have found "The" bug -- 8.3. Terms introduced in chapter -- 9.1. Handling exceptions -- 9.2. Exceptions as a control flow mechanism -- 9.3. Assertions -- 9.4. Terms introduced in chapter -- 10.1. Abstract data types and classes -- 10.1.1. Magic methods and hashable types -- 10.1.2. Designing programs using abstract data types -- 10.1.3. Using classes to keep track of students and faculty -- 10.2. Inheritance -- 10.2.1. Multiple levels of inheritance -- 10.2.2. The substitution principle -- 10.3. Encapsulation and information hiding -- 10.3.1. Generators -- 10.4. An extended example -- 10.5. Terms introduced in chapter -- 11.1. Thinking about Computational Complexity -- 11.2. Asymptotic Notation -- 11.3. Some Important Complexity Classes -- 11.3.1. Constant Complexity -- 11.3.2. Logarithmic Complexity -- 11.3.3. Linear Complexity -- 11.3.4. Log-Linear Complexity -- 11.3.5. Polynomial Complexity -- 11.3.6. Exponential Complexity -- 11.3.7. Comparisons of Complexity Classes -- 11.4. Terms Introduced in chapter -- 12.1. Search algorithms -- 12.1.1. Linear search and using indirection to access elements -- 12.1.2. Binary search and exploiting assumptions -- 12.2. Sorting algorithms -- 12.2.1. Merge sort -- 12.2.2. Sorting in Python -- 12.3. Hash tables -- 12.4. Terms introduced in chapter -- 13.1. Plotting using Matplotlib -- 13.2. Plotting mortgages, an extended example -- 13.3. An interactive plot for an infectious disease -- 13.4. Terms introduced in chapter -- 14.1. Knapsack problems -- 14.1.1. Greedy algorithms -- 14.1.2. An optimal solution to the 0/1 knapsack problem -- 14.2. Graph optimization problems -- 14.2.1. Some classic graph-theoretic problems -- 14.2.2. Shortest path: depth-first search and breadth-first search -- 14.3. Terms introduced in chapter -- 15.1. Fibonacci sequences, revisited -- 15.2. Dynamic programming and the 0/1 knapsack problem -- 15.3. Dynamic programming and divide-and-conquer -- 15.4. Terms introduced in chapter -- 16.1. Random walks -- 16.2. The Drunkard's walk -- 16.3. B |
520 | # | # | |a "Introduces students with little or no programming experience to computational problem solving using Python and various Python libraries"-- |c Provided by publisher |
526 | 0 | # | |a IMSXXX |b IM245 |5 IM |
526 | 0 | # | |a Problem Solving and Algorithm 2 |b Bachelor of Information Science (Hons) Information Systems Management |5 Faculty of Information Management |
650 | # | 0 | |a Computer programming |v textbooks |
650 | # | 0 | |a Python (Computer program language) |v Textbooks |
856 | 4 | 0 | |z Click Here to View Status and Holdings. |u https://opac.uitm.edu.my/opac/detailsPage/detailsHome.jsp?tid=975695 |
998 | # | # | |a 00250##a006.2.2||00250##b006.2.2||00264#1a006.2.2||00264#1b006.2.2||00300##a006.2.2||00300##b006.2.2||00300##c006.2.2||00500##a006.2.2||00520##a006.2.2||00520##b006.2.2|| |