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:
Bibliographic Details
Main Author: Guttag, John V. 1949- (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