Computational thinking for the modern problem solver
By: David D. Riley and Kenny A. Hunt
Contributors: Hunt, Kenny A.
Series: Chapman & Hall/CRC textbooks in computing; Chapman & Hall/CRC textbooks in computing
Publisher: CRC Press
Published: 2014
Place of publication: Boca Raton, FL
Language: eng
Number of pages: 389
ISBN-13: 9781466587779
Copyright date: 2014
Subjects: Computer science
Notes: Includes bibliographical references and index.
Table of contents: title: Machine generated contents note: 1.1.Computers, Computers Everywhere; title: 1.2.Computer, Computer Science, And Computational Thinking; title: 1.3.From Abacus To Machine; title: 1.4.The First Software; title: 1.5.What Makes It A Modern Computer?; title: 1.6.The First Modern Computer; title: 1.7.Moore's Law; title: 1.8.Summary; title: 1.9.When Will You Ever Use This Stuff?; title: References; title: Terminology; title: Exercises; title: 2.1.Information And Data; title: 2.2.Converting Information Into Data; title: 2.3.Data Capacity; title: 2.4.Data Types And Data Encoding; title: 2.4.1.Numbers; title: 2.4.1.1.Numeral Systems; title: 2.4.1.2.Positional Numeral System; title: 2.4.1.3.Integers As Binary Bit Strings; title: 2.4.1.4.Real Numbers As Binary Bit Strings; title: 2.4.1.5.Precision As A Source Of Error; title: 2.4.1.6.Underflow And Overflow As Sources Of Error; title: 2.4.2.Text; title: 2.4.3.Colors; title: 2.4.4.Pictures; title: 2.4.5.Sound; title: 2.5.Data Compression; title: 2.5.1.Run-Length Encoding; title: 2.6.Summary; title: Reference; title: Terminology; title: Exercises; title: 3.1.What Is Logic?; title: 3.2.Boolean Logic; title: Contents note continued: 3.2.1.Writing Well-Formed Propositions; title: 3.2.2.Evaluating Propositions; title: 3.2.2.1.Conjunction (And); title: 3.2.2.2.Disjunction (Or); title: 3.2.2.3.Implication (Implies); title: 3.2.2.4.Equivalence (E); title: 3.2.2.5.Logical Negation (Not); title: 3.2.2.6.Compound Propositions; title: 3.2.2.7.Logical Equivalence; title: 3.2.2.8.Tautologies And Contradictions; title: 3.3.Applications Of Propositional Logic; title: 3.3.1.Search Queries; title: 3.3.1.1.Conjunction In Search Queries; title: 3.3.1.2.Disjunction In Search Queries; title: 3.3.1.3.Negation In Search Queries; title: 3.3.2.Digital Logic; title: 3.3.3.Image Compositing; title: 3.3.4.Database Queries; title: 3.3.5.Software Requirements; title: Terminology; title: Exercises; title: 4.1.Problem Definition; title: 4.2.Logical Reasoning; title: 4.3.Decomposition: Software Design; title: 4.4.Decomposition: Other Uses; title: 4.5.Abstraction: Class Diagrams; title: 4.6.Abstraction: Use Case Diagrams; title: 4.7.Summary; title: 4.8.When Will You Ever Use This Stuff?; title: References; title: Terminology; title: Exercises; title: 5.1.Algorithms; title: Contents note continued: 5.2.Software And Programming Languages; title: 5.3.Actions; title: 5.3.1.Name Binding; title: 5.3.1.1.Proper Naming; title: 5.3.1.2.State; title: 5.3.2.Selection; title: 5.3.2.1.One-Way Selection; title: 5.3.2.2.Two-Way Selection; title: 5.3.2.3.Multiway Selection; title: 5.3.3.Repetition; title: 5.3.3.1.Infinite Loops; title: 5.3.4.Modularization; title: 5.3.4.1.Module Flexibility; title: Terminology; title: Exercises; title: 6.1.Activity Diagrams; title: 6.2.Selection In Activity Diagrams; title: 6.3.Repetition In Activity Diagrams; title: 6.4.Control Abstraction In Activity Diagrams; title: 6.5.States And State Diagrams; title: 6.6.Including Behavior In State Diagrams; title: 6.7.Providing More Detail In State Diagrams; title: 6.8.Summary; title: 6.9.When Will I Ever Use This Stuff?; title: Terminology; title: Exercises; title: 7.1.Names; title: 7.2.Lists; title: 7.2.1.Arrays; title: 7.2.1.1.Storage; title: 7.2.1.2.Accessing Array Elements; title: 7.2.1.3.Deleting Array Elements; title: 7.2.1.4.Inserting Array Elements; title: 7.2.1.5.Array Summary; title: 7.2.2.Linking; title: 7.2.2.1.Storage; title: Contents note continued: 7.2.2.2.Accessing Linked List Elements; title: 7.2.2.3.Deleting Linked List Elements; title: 7.2.2.4.Inserting Linked List Elements; title: 7.2.2.5.Linked List Summary; title: 7.3.Graphs; title: 7.3.1.Terminology And Properties; title: 7.3.2.Storage; title: 7.4.Hierarchies; title: 7.4.1.Organizational Chart; title: 7.4.2.Family Tree; title: 7.4.3.Biology; title: 7.4.4.Linguistics; title: 7.4.5.Trees; title: References; title: Terminology; title: Exercises; title: 8.1.Von Neumann Architecture; title: 8.2.Spreadsheets; title: 8.2.1.Spreadsheet Structure; title: 8.2.2.Formulas/expressions; title: 8.2.2.1.Numbers; title: 8.2.2.2.Operators; title: 8.2.2.3.Cell References; title: 8.2.2.4.Functions; title: 8.3.Text Processing; title: 8.3.1.String Basics; title: 8.3.2.String Operations; title: 8.3.2.1.Indexing; title: 8.3.2.2.Length; title: 8.3.2.3.Concatenation; title: 8.3.2.4.Naming; title: 8.3.2.5.Substring; title: 8.3.2.6.Searching; title: 8.3.2.7.Case Study: Processing E-Mail Addresses; title: 8.3.2.8.Case Study: Processing Dates; title: 8.4.Patterns; title: 8.4.1.How To Write A Pattern; title: Contents note continued: 8.4.1.1.Case Study: Hugs And Kisses Pattern; title: 8.4.1.2.Case Study: MPAA Rating Pattern; title: 8.4.1.3.Case Study: Social Security Numbers; title: 8.4.2.Repetition Rules; title: 8.4.3.Character Class Rules; title: 8.4.4.Case Study: DNA Sequencing; title: 8.4.5.Case Study: Web Searches And Enron Legal Documents; title: Reference; title: Terminology; title: Exercises; title: 9.1."Computer Errors" Usually Aren't; title: 9.2.Software Correctness; title: 9.3.Verification; title: 9.4.Software Testing; title: 9.5.White Box Testing; title: 9.6.Black Box Testing With Equivalence Partitioning; title: 9.7.Boundary Value Analysis; title: 9.8.When Will You Ever Use This Stuff?; title: Reference; title: Terminology; title: Exercises; title: 10.1.How Is Capacity Measured In Computers?; title: 10.2.An Estimate Of The Physical Limitations; title: 10.3.Benchmarks; title: 10.4.Counting The Performance; title: 10.5.Impractical Algorithms; title: 10.6.Impossible Algorithms; title: 10.7.Metaphysical Limitations; title: 10.8.When Will You Ever Use This Stuff?; title: References; title: Terminology; title: Exercises; title: Contents note continued: 11.1.Parallelism Or Concurrency?; title: 11.2.Scheduling; title: 11.3.Sorting Networks; title: 11.4.Measuring Concurrency's Effect; title: 11.5.Challenges Of Concurrency; title: 11.6.When Will You Ever Use This Stuff?; title: References; title: Terminology; title: Exercises; title: 12.1.What Is Security?; title: 12.2.Foundations; title: 12.3.Common Forms Of Cybercrime; title: 12.4.How To Secure? Step 1: Authenticate; title: 12.5.How To Secure? Step 2: Authorization; title: 12.6.All A Matter Of Risk; title: 12.7.A Few Good Ideas; title: 12.7.1.Encryption; title: 12.7.2.Firewalls (Including Spam Filters); title: 12.7.3.Antivirus Software; title: 12.7.4.Software Update; title: 12.7.5.Backups; title: 12.7.6.Log Files; title: 12.8.Good Strategies; title: 12.8.1.Secure The Weakest Link; title: 12.8.2.Reduce The Attack Surface; title: 12.8.3.Defend Deeply; title: 12.8.4.Compartmentalize; title: 12.8.5.Trust Reluctantly; title: 12.8.6.Use Open Software; title: 12.9.When Will You Ever Use This Stuff?; title: Reference; title: Terminology; title: Exercises.