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