MARC details
| 000 -LEADER |
| fixed length control field |
05136nam a2200385 4500 |
| 001 - CONTROL NUMBER |
| control field |
OTLid0000620 |
| 003 - CONTROL NUMBER IDENTIFIER |
| control field |
MnU |
| 005 - DATE AND TIME OF LATEST TRANSACTION |
| control field |
20201105133347.0 |
| 006 - FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS |
| fixed length control field |
m o d s |
| 008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION |
| fixed length control field |
181007s1999 mnu o 0 0 eng d |
| 020 ## - INTERNATIONAL STANDARD BOOK NUMBER |
| International Standard Book Number |
|
| 040 ## - CATALOGING SOURCE |
| Original cataloging agency |
MnU |
| Language of cataloging |
eng |
| Transcribing agency |
MnU |
| 050 #4 - LIBRARY OF CONGRESS CALL NUMBER |
| Classification number |
QA76 |
| 050 #4 - LIBRARY OF CONGRESS CALL NUMBER |
| Classification number |
QA76 |
| 100 1# - MAIN ENTRY--PERSONAL NAME |
| Personal name |
Downey, Allen B. |
| Relator term |
author |
| 245 00 - TITLE STATEMENT |
| Title |
How to Think Like a Computer Scientist |
| Remainder of title |
C Version |
| Statement of responsibility, etc. |
Allen Downey |
| 264 #2 - PRODUCTION, PUBLICATION, DISTRIBUTION, MANUFACTURE, AND COPYRIGHT NOTICE |
| Name of producer, publisher, distributor, manufacturer |
Open Textbook Library |
| 264 #1 - PRODUCTION, PUBLICATION, DISTRIBUTION, MANUFACTURE, AND COPYRIGHT NOTICE |
| Name of producer, publisher, distributor, manufacturer |
Green Tea Press |
| 300 ## - PHYSICAL DESCRIPTION |
| Extent |
1 online resource |
| 490 0# - SERIES STATEMENT |
| Series statement |
Open textbook library. |
| 505 0# - FORMATTED CONTENTS NOTE |
| Formatted contents note |
Chapter 1: The way of the program -- 1.1 What is a programming language? -- 1.2 What is a program? -- 1.3 What is debugging? -- 1.4 Formal and natural language -- 1.5 The first program -- 1.6 Glossary -- 1.7 Exercises -- Chapter 2: Variables and types -- 2.1 More output -- 2.2 Values -- 2.3 Variables -- 2.4 Assignment -- 2.5 Outputting variables -- 2.6 Keywords -- 2.7 Operators -- 2.8 Order of operations -- 2.9 Operators for characters -- 2.10 Composition -- 2.11 Glossary -- 2.12 Exercises -- Chapter 3: Function -- 3.1 Floating-point -- 3.2 Constants -- 3.3 Converting from double to int -- 3.4 Math functions -- 3.5 Composition -- 3.6 Adding new functions -- 3.7 Definitions and uses -- 3.8 Programs with multiple functions -- 3.9 Parameters and arguments -- 3.10 Parameters and variables are local -- 3.11 Functions with multiple parameters -- 3.12 Functions with results -- 3.13 Glossary -- 3.14 Exercises -- Chapter 4: Conditionals and recursion -- 4.1 Conditional execution -- 4.2 The modulus operator -- 4.3 Alternative execution -- 4.4 Chained conditionals -- 4.5 Nested conditionals -- 4.6 The return statement -- 4.7 Recursion -- 4.8 Infinite recursion -- 4.9 Stack diagrams for recursive functions -- 4.10 Glossary -- 4.11 Exercises -- Chapter 5: Fruitful functions -- 5.1 Return values -- 5.2 Program development -- 5.3 Composition -- 5.4 Boolean values -- 5.5 Boolean varaiables -- 5.6 Logical operators -- 5.7 Bool functions -- 5.8 Returning from main() -- 5.9 Glossary -- 5.10 Exercises -- Chapter 6: Iteration -- 6.1 Multiple assignment -- 6.2 Iteration -- 6.3 The while statement -- 6.4 Tables -- 6.5 Two-dimensional tables -- 6.6 Encapsulation and generalization -- 6.7 Functions -- 6.8 More encapsulation -- 6.9 Local varaiables -- 6.10 More generalization -- 6.11 Glossary -- 6.12 Exercises -- Chapter 7: Arrays -- 7.1 Increment and decrement operators -- 7.2 Accessing elements -- 7.3 Copying arrays -- 7.4 for loops -- 7.5 Array length -- 7.6 Random numbers -- 7.7 Statistics -- 7.8 Array of random numbers -- 7.9 Passing an array to a function -- 7.10 Counting -- 7.11 Checking the other values -- 7.12 A histogram -- 7.13 A single-pass solution -- 7.14 Random seeds -- 7.15 Glossary -- 7.16 Exercises -- Chapter 8: Strings and things -- 8.1 Containers for strings -- 8.2 String variables -- 8.3 Extracting characters from a string -- 8.4 Length -- 8.5 Traversal -- 8.6 Finding a character in a string -- 8.7 Pointers and Addresses -- 8.8 String concatenation -- 8.9 Assigning new values to string variables -- 8.10 strings are not comparable -- 8.11 Character classification -- 8.12 Getting user input -- 8.13 Glossary -- 8.14 Exercises -- Chapter 9: Structures -- 9.1 Compound values -- 9.2 Point objects -- 9.3 Accessing member variables -- 9.4 Operations on structures -- 9.5 Structures as parameters -- 9.6 Call by value -- 9.7 Call by reference -- 9.8 Rectangles -- 9.9 Structures as return types -- 9.10 Passing other types by reference -- 9.11 Glossary -- 9.12 Exercises |
| 520 0# - SUMMARY, ETC. |
| Summary, etc. |
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating trade offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That's why this chapter is called "The way of the program." |
| 542 1# - INFORMATION RELATING TO COPYRIGHT STATUS |
| Copyright statement |
Attribution-NonCommercial |
| 546 ## - LANGUAGE NOTE |
| Language note |
In English. |
| 588 0# - SOURCE OF DESCRIPTION NOTE |
| Source of description note |
Description based on online resource |
| 650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM |
| Topical term or geographic name entry element |
Computer Science |
| Form subdivision |
Textbooks |
| 650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM |
| Topical term or geographic name entry element |
Programming Languages |
| Form subdivision |
Textbooks |
| 700 1# - ADDED ENTRY--PERSONAL NAME |
| Personal name |
Scheffler, Thomas |
| Relator term |
translator |
| 710 2# - ADDED ENTRY--CORPORATE NAME |
| Corporate name or jurisdiction name as entry element |
Open Textbook Library |
| Relator term |
distributor |
| 856 40 - ELECTRONIC LOCATION AND ACCESS |
| Uniform Resource Identifier |
<a href="https://open.umn.edu/opentextbooks/textbooks/620">https://open.umn.edu/opentextbooks/textbooks/620</a> |
| Public note |
Access online version |