Discovering computer science: interdisciplinary problems, principles, and python programming
Material type: TextPublication details: CRC Press Boco Raton 2021Edition: 2ndDescription: 516 pISBN:- 9780367472498
- 005.133 HAV
Item type | Current library | Collection | Call number | Copy number | Status | Date due | Barcode | |
---|---|---|---|---|---|---|---|---|
Book | Indian Institute of Management LRC General Stacks | IT & Decisions Sciences | 005.133 HAV (Browse shelf(Opens below)) | 1 | Available | 004214 |
Table of Contents
Preface
Acknowledgments
About the author
How to Solve It
UNDERSTAND THE PROBLEM
DESIGN AN ALGORITHM
WRITE A PROGRAM
LOOK BACK
SUMMARY AND FURTHER DISCOVERY
Visualizing Abstraction
DATA ABSTRACTION
DRAWING FLOWERS AND PLOTTING EARTHQUAKES
FUNCTIONAL ABSTRACTION
PROGRAMMING IN STYLE
A RETURN TO FUNCTIONS
SCOPE AND NAMESPACES
SUMMARY AND FURTHER DISCOVERY
Inside a Computer
COMPUTERS ARE DUMB
EVERYTHING IS BITS
COMPUTER ARITHMETIC
BINARY ARITHMETIC
THE UNIVERSAL MACHINE
Growth and Decay
ACCUMULATORS
DATA VISUALIZATION
CONDITIONAL ITERATION
CONTINUOUS MODELS
NUMERICAL ANALYSIS
SUMMING UP
FURTHER DISCOVERY
PROJECTS
Forks in the Road
RANDOM WALKS
PSEUDORANDOM NUMBER GENERATORS
SIMULATING PROBABILITY DISTRIBUTIONS
BACK TO BOOLEANS
DEFENSIVE PROGRAMMING
GUESS MY NUMBER
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Text, Documents, and DNA
FIRST STEPS
TEXT DOCUMENTS
A CONCORDANCE
WORD FREQUENCY TRENDS
COMPARING TEXTS
TIME COMPLEXITY
COMPUTATIONAL GENOMICS
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Data Analysis
SUMMARY STATISTICS
WRANGLING DATA
TALLYING FREQUENCIES
READING TABULAR DATA
DESIGNING EFFICIENT ALGORITHMS
LINEAR REGRESSION
DATA CLUSTERING
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Flatland
TABULAR DATA
THE GAME OF LIFE
DIGITAL IMAGES
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Self-similarity and Recursion
FRACTALS
RECURSION AND ITERATION
THE MYTHICAL TOWER OF HANOI
RECURSIVE LINEAR SEARCH
DIVIDE AND CONQUER
LINDENMAYER SYSTEMS
9SUMMARY AND FURTHER DISCOVERY
PROJECTS
Organizing Data
BINARY SEARCH
SELECTION SORT
INSERTION SORT
EFFICIENT SORTING
TRACTABLE AND INTRACTABLE ALGORITHMS
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Networks
MODELING WITH GRAPHS
SHORTEST PATHS
IT’S A SMALL WORLD
RANDOM GRAPHS
SUMMARY AND FURTHER DISCOVERY
PROJECTS
Object-oriented Design
SIMULATING AN EPIDEMIC
OPERATORS AND POLYMORPHISM
Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming is a problem-oriented introduction to computational problem solving and programming in Python, appropriate for a first course for computer science majors, a more targeted disciplinary computing course or, at a slower pace, any introductory computer science course for a general audience.
Realizing that an organization around language features only resonates with a narrow audience, this textbook instead connects programming to students’ prior interests using a range of authentic problems from the natural and social sciences and the digital humanities. The presentation begins with an introduction to the problem-solving process, contextualizing programming as an essential component. Then, as the book progresses, each chapter guides students through solutions to increasingly complex problems, using a spiral approach to introduce Python language features.
The text also places programming in the context of fundamental computer science principles, such as abstraction, efficiency, testing, and algorithmic techniques, offering glimpses of topics that are traditionally put off until later courses.
This book contains 30 well-developed independent projects that encourage students to explore questions across disciplinary boundaries, over 750 homework exercises, and 300 integrated reflection questions engage students in problem solving and active reading.
There are no comments on this title.