An intelligent reading partner designed for students, researchers, and lifelong learners. Read at your own pace and get help from AI if you are stuck.

Joined September 2025
A new textbook!
Topological Obstructions to Stability and Stabilization by Wouter Jongeneel and Emmanuel Moulay (2023) is now in @ChapterPal's collection of open textbooks. The textbooks is about controllers. A controller is a rule that turns measurements into actions: a thermostat uses temperature to switch heating, cruise control uses speed to adjust throttle, and a drone uses orientation to adjust motor thrust. As an engineer, you design or program that rule to make a system reach a target and remain stable. This book explains when your requirements are mathematically impossible for the type of controller you chose, regardless of tuning. For robots and systems involving rotations, geometry can prevent one continuous control rule from stabilizing every starting configuration. Read it to understand when to stop tuning and change the design—for example, by switching between control rules. Read the book with an AI tutor: chapterpal.com/ebook/c0146ad…
1
203
A new textbook! You will most likely need an AI tutor if you decide to make it.
Foundations of Quantum Theory: From Classical Concepts to Operator Algebras by Klaas Landsman (2017) is now in @ChapterPal's collection of open textbooks. The textbook explores the mathematical and conceptual foundations connecting classical physics to operator algebras in quantum theory. It's a dense text: 881 pages and 41 illustrations, so I recommend to use the AI tutor when blocked. All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Read with an AI tutor: chapterpal.com/ebook/9e4fee2…
There's a new version of this post
75
New book!
Embedded System Design (4th edition) by Peter Marwedel (2021) is now in @ChapterPal's collection of open textbooks. This textbook provides an engineering-level introduction to embedded systems, cyber-physical systems, and the Internet of Things. The book has 446 pages, 326 illustrations, and 110 exercises workable with an AI tutor. All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Read the book with an AI tutor: chapterpal.com/ebook/0801995… Table of contents: Preface - Why Should You Read This Book? - Who Should Read the Book? - How Is This Book Different from Earlier Editions? Acknowledgments About the Author Frequently Used Mathematical Symbols 1 Introduction - 1.1 History of Terms - 1.2 Opportunities - 1.3 Challenges - 1.4 Common Characteristics - 1.5 Curriculum Integration of Embedded Systems, CPS, and IoT * 1.5.1 Prerequisites * 1.5.2 Recommended Additional Courses - 1.6 Design Flows - 1.7 Structure of This Book - 1.8 Problems 2 Specifications and Modeling - 2.1 Requirements - 2.2 Models of Computation - 2.3 Early Design Phases * 2.3.1 Use Cases * 2.3.2 (Message) Sequence Charts and Time/Distance Diagrams * 2.3.3 Differential Equations - 2.4 Communicating Finite State Machines (CFSMs) * 2.4.1 Timed Automata * 2.4.2 StateCharts: Implicit Shared Memory Communication * 2.4.3 Synchronous Languages * 2.4.4 Message Passing: SDL as an Example - 2.5 Data Flow * 2.5.1 Scope * 2.5.2 Kahn Process Networks * 2.5.3 SDF * 2.5.4 Simulink - 2.6 Petri Nets * 2.6.1 Introduction * 2.6.2 Condition/Event Nets * 2.6.3 Place/Transition Nets * 2.6.4 Predicate/Transition Nets * 2.6.5 Evaluation - 2.7 Discrete Event-Based Languages * 2.7.1 Basic Discrete Event Simulation Cycle * 2.7.2 Multi-Valued Logic * 2.7.3 Transaction-Level Modeling (TLM) * 2.7.4 SpecC * 2.7.5 SystemC * 2.7.6 VHDL * 2.7.7 Verilog and SystemVerilog - 2.8 von Neumann Languages * 2.8.1 CSP * 2.8.2 Ada * 2.8.3 Communication Libraries * 2.8.4 Additional Languages - 2.9 Levels of Hardware Modeling - 2.10 Comparison of Models of Computation * 2.10.1 Criteria * 2.10.2 Unified Modeling Language (UML) * 2.10.3 Ptolemy II - 2.11 Problems 3 Embedded System Hardware - 3.1 Introduction - 3.2 Input: Interface Between Physical and Cyber-World * 3.2.1 Sensors * 3.2.2 Discretization of Time: Sample-and-Hold Circuits * 3.2.3 Fourier Approximation of Signals - 3.2 Input: Interface Between Physical and Cyber-World * 3.2.4 Discretization of Values: Analog-to-Digital Converters - 3.3 Processing Units * 3.3.1 Application-Specific Integrated Circuits (ASICs) * 3.3.2 Processors * 3.3.3 Reconfigurable Logic - 3.4 Memories * 3.4.1 Conflicting Goals * 3.4.2 Memory Hierarchies - 3.4.3 Register Files - 3.4.4 Caches - 3.4.5 Scratchpad Memories - 3.5 Communication * 3.5.1 Requirements * 3.5.2 Electrical Robustness * 3.5.3 Guaranteeing Real-Time Behavior * 3.5.4 Examples - 3.6 Output: Interface Between Cyber and Physical World * 3.6.1 Digital-to-Analog Converters * 3.6.2 Sampling Theorem * 3.6.3 Pulse-Width Modulation - 3.6.4 Actuators - 3.7 Electrical Energy * 3.7.1 Energy Sources * 3.7.2 Energy Storage * 3.7.3 Energy Efficiency of Hardware Components - 3.8 Secure Hardware - 3.9 Problems 4 System Software - 4.1 Embedded Operating Systems * 4.1.1 General Requirements * 4.1.2 Real-Time Operating Systems * 4.1.3 Virtual Machines - 4.2 Resource Access Protocols * 4.2.1 Priority Inversion * 4.2.2 Priority Inheritance * 4.2.3 Priority Ceiling Protocol * 4.2.4 Stack Resource Policy - 4.3 ERIKA - 4.4 Embedded Linux * 4.4.1 Embedded Linux Structure and Size * 4.4.2 Real-Time Properties * 4.4.3 Flash Memory File Systems * 4.4.4 Reducing RAM Usage * 4.4.5 uClinux: Linux for MMU-Less Systems * 4.4.6 Evaluating the Use of Linux in Embedded Systems - 4.5 Hardware Abstraction Layer - 4.6 Middleware * 4.6.1 OSEK/VDX COM * 4.6.3 POSIX Threads (Pthreads) * 4.6.4 UPnP and DPWS - 4.7 Real-Time Databases - 4.8 Problems 5 Evaluation and Validation - 5.1 Introduction * 5.1.1 Scope * 5.1.2 Multi-Objective Optimization * 5.1.3 Relevant Objectives - 5.2 Performance Evaluation * 5.2.1 Early Phases * 5.2.2 WCET Estimation * 5.2.3 Real-Time Calculus - 5.3 Quality Metrics * 5.3.1 Approximate Computing * 5.3.2 Simple Criteria of Quality * 5.3.3 Criteria for Data Analysis - 5.4 Energy and Power Models * 5.4.1 General Properties * 5.4.2 Energy Model for Memories * 5.4.3 Energy Model for Instructions * 5.4.4 Energy Model for Functional Processor Units * 5.4.5 Energy Model for Processor and Memory * 5.4.6 Energy Model for an Application * 5.4.7 Energy Model for Multiple Applications with Hardware Multithreading * 5.4.9 Worst Case Energy Consumption - 5.5 Thermal Models * 5.5.1 Steady-State Behavior * 5.5.2 Transient State Behavior - 5.6 Dependability and Risk Analysis * 5.6.1 Aspects of Dependability * 5.6.2 Security Analysis * 5.6.3 Safety Analysis * 5.6.4 Reliability Analysis * 5.6.5 Fault Tree Analysis, Failure Mode, and Effect Analysis - 5.7 Simulation - 5.8 Rapid Prototyping and Emulation - 5.9 Formal Verification - 5.10 Problems 6 Application Mapping - 6.1 Definition of Scheduling Problems * 6.1.1 Elaboration on the Design Problem * 6.1.2 Types of Scheduling Problems - 6.2 Scheduling for Uniprocessors * 6.2.1 Scheduling for Independent Jobs - 6.2.2 Scheduling with Precedence Constraints * Task Graphs * Latest Deadline First (LDF) Algorithm - 6.2.3 Periodic Scheduling Without Precedence Constraints * Notation * Rate Monotonic Scheduling * Earliest Deadline First Scheduling * Explicit-Deadline Tasks * Deadline Monotonic Scheduling - 6.2.4 Periodic Scheduling with Precedence Constraints - 6.2.5 Sporadic Events - 6.3 Scheduling for Independent Jobs on Identical Multiprocessors * 6.3.1 Partitioned Scheduling * 6.3.2 Global Dynamic-Priority Scheduling * 6.3.3 Global Fixed-Job-Priority Scheduling * 6.3.4 Global Fixed-Task-Priority Scheduling - 6.4 Dependent Jobs on Homogeneous Multiprocessors * 6.4.1 As-Soon-as-Possible Scheduling * 6.4.2 As-Late-as-Possible Scheduling * 6.4.3 List Scheduling * 6.4.4 Optimal Scheduling with Integer Linear Programming - 6.5 Dependent Jobs on Heterogeneous Multiprocessors * 6.5.1 Problem Description * 6.5.2 Static Scheduling with Local Heuristics * 6.5.3 Static Scheduling with Integer Linear Programming * 6.5.4 Static Scheduling with Evolutionary Algorithms * 6.5.5 Dynamic and Hybrid Scheduling - 6.6 Problems 7 Optimization - 7.1 High-Level Optimizations - 7.1.1 Simple Loop Transformations - 7.1.2 Loop Tiling/Blocking - 7.1.3 Loop Splitting - 7.1.4 Array Folding - 7.1.5 Floating-Point to Fixed-Point Conversion - 7.2 Task-Level Concurrency Management - 7.3 Compilers for Embedded Systems * 7.3.1 Introduction * 7.3.2 Energy-Aware Compilation * 7.3.3 Memory-Architecture Aware Compilation * 7.3.4 Reconciling Compilers and Timing Analysis - 7.4 Power and Thermal Management * 7.4.1 Dynamic Voltage and Frequency Scaling (DVFS) * 7.4.2 Dynamic Power Management (DPM) * 7.4.3 Thermal Management - 7.5 Problems 8 Test - 8.1 Scope - 8.2 Test Procedures * 8.2.1 Test Pattern Generation for Gate-Level Models * 8.2.2 Self-Test Programs - 8.3 Evaluation of Test Pattern Sets and System Robustness * 8.3.1 Fault Coverage * 8.3.2 Fault Simulation * 8.3.3 Fault Injection - 8.4 Design for Testability * 8.4.1 Motivation * 8.4.2 Scan Design * 8.4.3 Signature Analysis * 8.4.4 Pseudo-random Test Pattern Generation - 8.5 Problems A Integer Linear Programming B Kirchhoff's Laws and Operational Amplifiers - B.1 Kirchhoff’s Laws - B.2 Operational Amplifiers C Paging and Memory Management Units References
4
177
A new textbook!
An brilliant textbook Fundamentals of Electrical Engineering by Don H. Johnson (2014) is now in @ChapterPal's collection of open books. The textbook introduces essential electrical engineering principles, circuit analysis methods, and signal processing techniques for students and practitioners. The book has 278 pages, 235 illustrations, and 282 exercises to work through alone or with ChapterPal's AI tutor designed specifically for helping with exercises. All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Read the book with an AI tutor: chapterpal.com/ebook/9221f86… Table of contents: Chapter 1. Introduction - 1.1 Themes - 1.2 Signals Represent Information * 1.2.1 Analog Signals * 1.2.2 Digital Signals - 1.3 Structure of Communication Systems - 1.4 The Fundamental Signal: The Sinusoid - 1.5 Introduction Problems (continued) Chapter 2. Signals and Systems - 2.1 Complex Numbers * 2.1.1 Definitions - 2.2 Elemental Signals * 2.2.1 Sinusoids * 2.2.2 Complex Exponentials * 2.2.3 Real Exponentials * 2.2.4 Unit Step * 2.2.5 Pulse * 2.2.6 Square Wave - 2.3 Signal Decomposition Chapter 3. Analog Signal Processing - 3.1 Voltage, Current, and Generic Circuit Elements - 3.8 Circuits with Capacitors and Inductors - 3.13 Transfer Functions - 3.15 Formal Circuit Methods: Node Method - 3.17 Electronics[^28] - 3.18 Dependent Sources[^29] - 3.19 Operational Amplifiers[^31] * 3.19.1 Inverting Amplifier * 3.19.2 Active Filters - 3.20 The Diode[^32] - 3.21 Analog Signal Processing Problems[^34] Chapter 4. Frequency Domain - 4.1 Introduction to the Frequency Domain[^1] - 4.2 Fourier Series[^2] * 4.2.1 Fourier coefficients properties * 4.2.2 A signal’s spectrum - 4.4 A Signal’s Power Spectrum[^8] Chapter 5. Digital Signal Processing - 5.1 Introduction to Digital Signal Processing - 5.2 Introduction to Computer Organization * 5.2.1 Computer Architecture * 5.2.2 Representing Numbers - 5.13 Discrete-Time Systems in the Frequency Domain[^27] - 5.15 Efficiency of Frequency-Domain Filtering[^29] Chapter 6. Information Communication - 6.1 Information Communication[^1] - 6.2 Types of Communication Channels[^2] - 6.3 Wireline Channels[^4] - 6.11 Modulated Communication[^13] - 6.21 Source Coding Theorem - 6.22 Compression and the Huffman Code - 6.24 Channel Coding - 6.25 Repetition Codes - 6.34 Message Routing - 6.35 Network architectures and interconnection - 6.36 Ethernet
1
191
A significant price reduction!
Thanks to dozens of optimizations implemented in recent weeks and substantially reduced prices for high-quality LLMs, I'm glad to be able to offer lower subscription prices on @ChapterPal: Reader: $3.99/month (was $5.99) Learner: $5.99/month (was $9.99) Researcher: $14.99/month (was $19.99) Pro: $24.99/month (was $29.99) The costs of the quarterly and yearly plans have been reduced accordingly. Enjoy!
161
A new texbook!
Blueprints: Creating, Describing, and Implementing Designs for Larger-scale Software Projects by Stephen Davies (2023) is now in @ChapterPal's collection of open textbooks. This textbook equips developers with practical methods for planning and building large software systems efficiently. The book has 322 pages and 317 illustrations. All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Read the book with an AI tutor: chapterpal.com/ebook/a012fa7… Table of contents: Chapter 1. Getting off the ground - 1.1 Why the command line? - 1.2 The filesystem * Files and directories * The filesystem tree * Only one surprise * The “current” (or “working”) directory * The root directory * Paths - 1.3 Linux A-B-C’s * “Special” directory shortcuts - 1.4 The quickest path through the woods Chapter 2. The “software crisis” and encapsulation - 2.1 Ancient history * Quantifying the crisis - 2.2 Software and complexity * Dependencies == complexity - 2.3 Encapsulation * OOP’s encapsulation solution: the class - 2.4 Features of OOP - Postlude Chapter 3. Classes and objects - 3.1 Terms - 3.2 A different kind of language * Classes in UML: the first two compartments * Classes in UML: the third compartment * Functions vs. methods * Various “special” methods * Objects in UML * The value of “design” - 3.3 Classes in Java * Instance variables in Java * Constructors in Java * Analyze this * Methods in Java * “Client code” and thinking reactively * “Static methods” and “static inst vars” - 3.4 Objects in Java * Printing an object Chapter 4. Memory matters - 4.1 Memory diagrams * The stack and the heap - 4.2 Calling functions * Null references and NPEs * Stack frames * Object craziness * “I shall return” * Calling a function from a function - 4.3 Calling methods Chapter 5. Exceptions - 5.1 Bad ways of handling error conditions - 5.2 The right way: throwing and catching - 5.3 Calling a method that throws Exception - 5.4 Different kinds of exceptions - 5.5 Stack traces Chapter 6. UML class diagrams - 6.1 Classes - 6.2 Associations * Dependency associations * Dependencies in code * “Has-a” associations * “Has-a” associations in code * Aggregation associations * Composition associations * Association annotations - 6.3 Visibility * Java packages * Visibility levels * Which visibility level to choose * Class visibility - 6.4 Putting it all together Chapter 7. The Singleton pattern - 7.1 Design pattern - 7.2 The Singleton pattern - 7.3 Implementation - 7.4 Using the Singleton Chapter 8. Java odds ’n’ ends - 8.1 Garbage collection - 8.2 The import statement * Don’t import * - 8.3 Java “generics” - 8.4 “Wrapper” classes - 8.5 The Hashtable data structure * Iterating through Hashtables - 8.6 Command-line arguments - 8.7 Sameness vs. identicality * Testing for sameness and identicality * Overriding `.equals()` * Beware comparing Strings! (Use `.equals()`) Chapter 9. UML sequence diagrams - 9.1 Going backwards * Reverse-engineering a sequence diagram from code * Sequence diagram features * What the arrows mean * Following the flow * Coming up for air - 9.2 Going forwards * Using a sequence diagram to guide the implementation Chapter 10. Persistence and hydration - 10.1 Java object serialization - 10.2 Using a database - 10.3 Using plain text files * Example: a resort reservation system Chapter 11. Inheritance (1 of 2) - 11.1 “Bottom-up” (implementation) inheritance * Under the hood - 11.2 “Top-down” (interface) inheritance * Test your intuition * “Masquerading” and “smuggling” * Why this matters - 11.3 “Cool! Can we do both?” - 11.4 A word of warning Chapter 12. Inheritance (2 of 2) - 12.1 Polymorphism * instanceof is evil - 12.2 Getting abstract * Abstract methods * Abstract classes * UML notation - 12.3 That’s just super * Calling a superclass’s methods with “super.” * Invoking a superclass’s constructor with “super” (no dot) - 12.4 Pure abstraction: Java interfaces - 12.5 java.lang.Object Chapter 13. The Factory pattern - 13.1 Top-down inheritance and the Factory pattern - 13.2 Random type generation Chapter 14. Team software development - 14.1 Looking deeper into git - 14.2 Understanding git status - 14.3 Understanding git log - 14.4 Comparing versions * The vimdiff comparison tool * Specifying the versions to compare - 14.5 Going back in time * Looking at old versions * Reverting to old versions - 14.6 Team-based version control with git Chapter 15. Doing design (1 of 2) - 15.1 “Discovering the design” - 15.2 Straight from the horse’s mouth * Nouns, and only nouns * Noun phrases * Singular, not plural - 15.3 Carrying out the process - 15.3. Carrying out the process - 15.4. A longer example Chapter 16. Doing design (2 of 2) - 16.1 The two domains - 16.2 Turning CRC cards into UML * The bike store example, continued * The Uno!® game example, continued * The “double dispatch” technique * The Card class hierarchy - 16.3 Evaluating a design Chapter 17. Use cases - 17.1 Capturing requirements * “What” vs. “how” - 17.2 Use Cases * About actors * UC descriptions * Tips for good Use Case descriptions - 17.3. A more complex example Chapter 18. Documenting an API - 18.1 The importance of good docs * Collaborating with someone you’ll never meet - 18.2 JavaDoc: mechanics * Markup and tags * Generating the mini-website * Starting the Web server and connecting * Firewall settings - 18.3 JavaDoc: content * Class documentation * Method documentation - 18.4 How to lose a battle through bad documentation
There's a new version of this post
1
76
New textbook!
College Mathematics for Everyday Life (3rd edition) by Maxie Inigo et al. (2021) is now in @ChapterPal's collection of open textbooks. This textbook was written for a college-level liberal arts math class. It addresses math concepts that most people will encounter as part of their everyday lives, including statistics, probability, growth, finance, graph theory, voting systems, fair division, apportionment, and geometric symmetry and the golden ratio. Each chapter includes a set of homework questions for practice. The textbook has 422 pages, 333 illustrations, and 411 exercises. Read it and solve exercises with an AI tutor: chapterpal.com/ebook/d7323a3… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: Chapter 1. Statistics: Part 1 - 1.1 Statistical Basics - 1.2 Random Sampling - 1.3. Clinical Studies - 1.4. Should You Believe a Statistical Study? - 1.5. Graphs * Quantitative Variable: * Interpreting graphs: - Section 1.6: Graphics in the Media * Multiple Line Graphs: * Multiple Bar Graphs: * Stack Plots: * Geographical Graphs: * Three-Dimensional Graphics * Combination Graphics - Chapter 1 Homework Chapter 2. Statistics: Part 2 - Section 2.1: Proportion - Section 2.2: Location of Center * Example 2.2.2: Finding the Mean, Median, and Mode (Even Number of Data Values) * Example 2.2.3: Effect of Extreme Values on the Mean and Median * Example 2.2.4: Finding the Average of a Qualitative Variable - Section 2.3: Measures of Spread * Example 2.3.2: Finding the Range, Variance, and Standard Deviation * Percentiles - Section 2.4: The Normal Distribution * The Five-Number Summary for a Normal Distribution - Section 2.5: Correlation and Causation, Scatter Plots - Chapter 2 Homework Chapter 3. Probability - Section 3.1: Basic Probabilities and Probability Distributions; Three Ways to Define Probabilities * Equally Likely Outcomes: * Three Ways of Finding Probabilities: * Complements: * Impossible Events and Certain Events: * Probability Distributions: * Example 3.1.6: Probabilities for the Sum of Two Fair Dice * Example 3.1.7: Valid and Invalid Probability Distributions * Odds * Example 3.1.8: Odds in Drawing a Card * Example 3.1.9: Odds in Roulette * Example 3.1.10: Odds Against an Event - Section 3.2: Combining Probabilities with “AND” and “OR” * Example 3.2.1: Counting Students * Mutually Exclusive Events * Example 3.2.2: Mutually Exclusive with Dice * Addition Rule for “OR” Probabilities * Independent Events * At Least Once Rule for Independent Events: * “AND” Probabilities from Two-Way Tables: - Section 3.3: Conditional Probabilities * Example 3.3.4: Conditional Probability for Residence and Class Standing - Section 3.4: Expected Value and Law of Large Numbers * Example 3.4.1: Expected Value for Raffle Tickets * Example 3.4.2: Expected Value for Profit from a Purchase * Example 3.4.3: Expected Value for Life Insurance * Example 3.4.4: Expected Value for a Carnival Game * Example 3.4.5: House Edge in Roulette * Gamblers’ Fallacy and Streaks: - Section 3.5: Counting Methods * Multiplication Principle and Tree Diagrams * Permutations: * Combinations: * Example 3.5.12: Permutation or Combination for Choosing Men and Women * Probabilities Involving Permutations and Combinations: * Example 3.5.13: Probability with a Combination for Choosing Students * Example 3.5.14: Probability with a Permutation for a Duck Race * Example 3.5.15: Probability with a Permutation for Two-Card Poker Hands * Example 3.5.16: Probability with a Combination for Rotten Apples - Chapter 3 Homework Chapter 4. Growth - 4.1 Linear Growth - 4.2. Exponential Growth * Example 4.2.1: City Growth * Example 4.2.2: A Shrinking Population * Example 4.2.3: Inflation * Example 4.2.4: Ebola Epidemic in Sierra Leone - 4.3. Special Cases: Doubling Time and Half-Life * Rule of 70: * Exponential Decay and Half-Life Model: * Rule of 70 for Half-Life: - 4.4. Natural Growth and Logistic Growth * Example 4.4.2: Ants in the Yard * Example 4.4.3: Bird Population * Example 4.4.4: Student Population at Northern Arizona University * Example 4.4.5: Fish Population - 4.5. Modeling - Chapter 4 Homework Chapter 5. Finance - Section 5.1: Basic Budgeting - Section 5.2: Simple Interest * Example 5.2.1: Simple Interest—Using a Table * Example 5.2.2: Simple Interest—Using the Formula * Example 5.2.3: Simple Interest—Finding Time - Section 5.3: Compound Interest * Example 5.3.1: Compound Interest—Using a Table - Section 5.4: Savings Plans * Example 5.5.1: Loan Payment Formula: * Example 5.5.2: Loan Formula—Finding Payment * Example 5.5.4: Loan Formula—Refinance Mortgage * Example 5.5.5: Loan Formula—Mortgage Comparison - Chapter 5 Homework Chapter 6. Graph Theory - Section 6.1: Graph Theory * Example 6.1.1: Graph Example 1 * Example 6.1.2: Graph Example 2 * Example 6.1.3: Graph Terminology - Section 6.2: Networks * Example 6.2.1: Spanning Subgraph * Properties of Trees * Example 6.2.2: Tree Properties * Example 6.2.3: More Examples of Trees * Example 6.2.4: Minimum Spanning Tree * Example 6.2.5: Using Kruskal’s Algorithm - Section 6.3: Euler Circuits * Example 6.3.1: Euler Path * Example 6.3.2: Euler Circuit * Euler’s Theorems: * Finding Euler Circuits: * Example 6.3.3: Finding an Euler Circuit - Section 6.4 Hamiltonian Circuits * How to solve a Traveling Salesman Problem (TSP): - Chapter 6 Homework Chapter 7. Voting Systems - Section 7.1: Voting Methods - Example 7.1.2: Preference Schedule for the Candy Election * Methods of Counting Ballots: - Example 7.1.3: The Winner of the Candy Election—Plurality Method - Example 7.1.4: The Winner of the Candy Election—Borda Count Method * Example 7.1.5: The Winner of the Candy Election—Plurality with Elimination Method * Example 7.1.6: The Winner of the Candy Election—Pairwise Comparisons Method * Insincere Voting: * Approval Voting: - Section 7.2: Weighted Voting * Voting Power: * Banzhaf Power Index: * Shapley-Shubik Power Index: - Chapter 7 Homework Chapter 8. Fair Division - Section 8.1: Basic Concepts of Fair Division * What is a fair share? * Find the Value of a Piece of $S$: - Section 8.2: Continuous Methods 1: Divider/Chooser and Lone Divider Methods * Divider/Chooser Method: * Lone Divider Method: - Section 8.3: Continuous Methods 2: Lone Chooser and Last Diminisher Methods * Lone Chooser Method: * Last Diminisher Method: - Section 8.4: Discrete Methods: Sealed Bids and Markers * Method of Sealed Bids * Summary of the Method of Sealed Bids: * Method of Markers * Example 8.4.4: Method of Markers, #1 * Summary of the Method of Markers for $n$ players: * Example 8.4.5: Method of Markers, #2 * Example 8.4.6: Determining Where to Place the Markers - Chapter 8 Homework Chapter 9. Apportionment - Section 9.1 Basic Concepts of Apportionment and Hamilton’s Method * Basic Concepts of Apportionment: * Example 9.1.5: The Alabama Paradox - Section 9.2: Apportionment: Jefferson’s, Adams’s, and Webster’s Methods * Jefferson’s Method * Example 9.2.2: Adams’s Method * Webster’s Method * Example 9.2.3: Webster’s Method - 9.3: Huntington-Hill Method * Summary of the Huntington-Hill Method: * Example 9.3.2: Huntington-Hill Method * Example 9.3.3: Comparison of all Apportionment Methods * Webster’s Method * Huntington-Hill’s Method - 9.4: Apportionment Paradoxes - Chapter 9 Homework Chapter 10. Geometric Symmetry and the Golden Ratio - Section 10.1: Transformations Using Rigid Motions * Properties of a Translation * Properties of a Rotation * Example 10.1.3: Rotation of an L-Shape * Example 10.1.4: 45° Clockwise Rotation of a Rectangle * Example 10.1.5: 180° Clockwise Rotation of an L-Shape * Properties of a Reflection * Properties of a Glide-Reflection * Example 10.1.9: Glide-Reflection of a Blue Triangle * Example 10.1.10: Glide-Reflection of an L-Shape - Section 10.2: Connecting Transformations and Symmetry * Example 10.2.1: Symmetries of a Pentagon * Example 10.2.2: Symmetries of a Smiley Face * Example 10.2.3: Symmetry Type $D_1$ * Example 10.2.4: Symmetries of a Pinwheel * Example 10.2.5: Symmetries of the Letter S * Example 10.2.6: Symmetries of the Card the Eight of Hearts * Example 10.2.7: Other Examples of Symmetry Type $Z_n$ - Section 10.3: Transformations that Change Size and Similar Figures * Example 10.3.1: Enlarge a Triangle by a Factor of Two * Example 10.3.2: Enlarge a Diamond by a Factor of Two * Similarity Using Transformations * Gnomons - Section 10.4: Fibonacci Numbers and the Golden Ratio - Chapter 10 Homework References
3
258
A new book!
Elements of Robotics by Mordechai (Moti) Ben-Ari, Francesco Mondada (2018) is now in @ChapterPal's collection of open textbooks. This is an introductory, application-oriented textbook for learners who want to connect mathematics, computing, and engineering with practical robot behavior. Its stated audience ranges from school students to introductory university students, with educational robots as the main hands-on setting. The book assumes no particular robot platform or programming language: it defines a generic mobile robot and presents algorithms in pseudocode that readers can adapt to the hardware and software available to them. Its mathematical development includes motion, probability, statistics, and coordinate transformations, while appendices provide selected derivations and reviews of supporting concepts. The central focus is autonomous mobile robotics: how a robot senses its surroundings, controls its movement, estimates where it is, builds or uses a map, and selects a route. The book begins with robot types and applications, then introduces sensors and simple sensor-driven behavior. It builds from reactive algorithms, such as object responses and line following, to finite-state machines that let a robot retain information about earlier events. Motion and odometry add quantitative reasoning about position and heading; control then shows how feedback can guide a robot toward a desired result. The progression links programming ideas to physical behavior while repeatedly accounting for imperfect sensors, uneven motion, and uncertain environments. The book has 270 pages, 258 illustrations, and 104 exercises adapted for readers to work through with an AI tutor. Read and solve exercises with hints and support from an AI tutor: chapterpal.com/ebook/c3f46c1… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: 1. Robots and Their Applications - 1.1. Classification of robots - 1.2. Industrial robots - 1.3. Autonomous mobile robots - 1.4. Humanoid robots - 1.5. Educational robots - 1.6. The Generic Robot * 1.6.1 Differential drive * 1.6.2 Proximity sensors * 1.6.3 Ground sensors * 1.6.4 Embedded computer - 1.7. The algorithmic formalism - 1.8. An overview of the content of the book - 1.9. Summary - 1.10. Further reading - References 2. Sensors - 2.1. Classification of sensors - 2.2. Distance sensors * 2.2.1 Ultrasound distance sensors * 2.2.2 Infrared proximity sensors * 2.2.3 Optical distance sensors * 2.2.4 Triangulating sensors * 2.2.5 Laser scanners - 2.3. Cameras - 2.4. Other sensors - 2.5. Range, resolution, precision, accuracy - 2.6. Nonlinearity * 2.6.1 Linear sensors * 2.6.2 Mapping nonlinear sensors - 2.7. Summary - 2.8. Further reading - References 3. Reactive Behavior - 3.1. Braitenberg vehicles - 3.2. Reacting to the detection of an object - 3.3. Reacting and turning - 3.4. Line Following * 3.4.1 Line following with a pair of ground sensors * 3.4.2 Line following with only one ground sensor * 3.4.3 Line following without a gradient - 3.5. Braitenberg's presentation of the vehicles - 3.6. Summary - 3.7. Further reading - References 4. Finite State Machines - 4.1. State machines - 4.2. Reactive behavior with state - 4.3. Search and approach - 4.4. Implementation of finite state machines - 4.5. Summary - 4.6. Further reading - References 5. Robotic Motion and Odometry - 5.1. Distance, velocity and time - 5.2. Acceleration as change in velocity - 5.3. From segments to continuous motion - 5.4. Navigation by odometry - 5.5. Linear odometry - 5.6. Odometry with turns - 5.7. Errors in odometry - 5.8. Wheel encoders - 5.9. Inertial navigation systems * 5.9.1 Accelerometers * 5.9.2 Gyroscopes * 5.9.3 Applications - 5.10. Degrees of freedom and numbers of actuators - 5.11. The relative number of actuators and DOF - 5.12. Holonomic and non-holonomic motion - 5.13. Summary - 5.14. Further reading - References 6. Control - 6.1. Control models * 6.1.1 Open loop control * 6.1.2 Closed loop control * 6.1.3 The period of a control algorithm - 6.2. On-off control - 6.3. Proportional (P) controller - 6.4. Proportional-integral (PI) controller - 6.5. Proportional-integral-derivative (PID) controller - 6.6. Summary - 6.7. Further reading - References 7. Local Navigation: Obstacle Avoidance - 7.1. Obstacle avoidance * 7.1.1 Wall following * 7.1.2 Wall following with direction * 7.1.3 The Pledge algorithm - 7.2. Following a line with a code - 7.3. Ants searching for a food source - 7.4. A probabilistic model of the ants' behavior - 7.5. A finite state machine for the path finding algorithm - 7.6. Summary - 7.7. Further reading - References 8. Localization - 8.1. Landmarks - 8.2. Determining position from objects whose position is known * 8.2.1 Determining position from an angle and a distance * 8.2.2 Determining position by triangulation - 8.3. Global positioning system - 8.4. Probabilistic localization * 8.4.1 Sensing increases certainty * 8.4.2 Uncertainty in sensing - 8.5. Uncertainty in motion - 8.6. Summary - 8.7. Further reading - References 9. Mapping - 9.1. Discrete and continuous maps - 9.2. The content of the cells of a grid map - 9.3. Creating a map by exploration: The frontier algorithm * 9.3.1 Grid maps with occupancy probabilities * 9.3.2 The frontier algorithm * 9.3.3 Priority in the frontier algorithm - 9.4. Mapping using knowledge of the environment - 9.5. A numerical example for a SLAM algorithm - 9.6. Activities for demonstrating the SLAM algorithm - 9.7. The formalization of the SLAM algorithm - 9.8. Summary - 9.9. Further reading - References 10. Mapping-Based Navigation - 10.1. Dijkstra's algorithm for a grid map * 10.1.1 Dijkstra's algorithm on a grid map with constant cost * 10.1.2 Dijkstra's algorithm with variable costs - 10.2. Dijkstra's algorithm for a continuous map - 10.3. Path planning with the A$\!^{*}$ algorithm - 10.4. Path following and obstacle avoidance - 10.5. Summary - 10.6. Further reading - References 11. Fuzzy Logic Control - 11.1. Fuzzify - 11.2. Apply rules - 11.3. Defuzzify - 11.4. Summary - 11.5. Further reading - References 12. Image Processing - 12.1. Obtaining images * Optics * Resolution * Color - 12.2. An overview of digital image processing - 12.3. Image enhancement * 12.3.1 Spatial filters * 12.3.2 Histogram manipulation - 12.4. Edge detection - 12.5. Corner detection - 12.6. Recognizing blobs - 12.7. Summary - 12.8. Further reading - References 13. Neural Networks - 13.1. The biological neural system - 13.2. The artificial neural network model - 13.3. Implementing a Braintenberg vehicle with an ANN - 13.4. Artificial neural networks: topologies * 13.4.1 Multilayer topology * 13.4.2 Memory * 13.4.3 Spatial filter - 13.5. Learning * 13.5.1 Categories of learning algorithms * 13.5.2 The Hebbian rule for learning in ANNs - 13.6. Summary - 13.7. Further reading - References 14. Machine Learning - 14.1. Distinguishing between two colors * 14.1.1 A discriminant based on the means * 14.1.2 A discriminant based on the means and variances * 14.1.3 Algorithm for learning to distinguish colors - 14.2. Linear discriminant analysis * 14.2.1 Motivation * 14.2.2 The linear discriminant * 14.2.3 Choosing a point for the linear discriminant * 14.2.4 Choosing a slope for the linear discriminant * 14.2.5 Computation of a linear discriminant: numerical example * 14.2.6 Comparing the quality of the discriminants * 14.2.7 Activities for LDA - 14.3. Generalization of the linear discriminant - 14.4. Perceptrons * 14.4.1 Detecting a slope * 14.4.2 Classification with perceptrons * 14.4.3 Learning by a perceptron * 14.4.4 Numerical example * 14.4.5 Tuning the parameters of the perceptron - 14.5. Summary - 14.6. Further reading - References 15. Swarm Robotics - 15.1. Approaches to implementing robot collaboration - 15.2. Coordination by local exchange of information * 15.2.1 Direct communications * 15.2.2 Indirect communications * 15.2.3 The BeeClust algorithm * 15.2.4 The ASSISIbf implementation of BeeClust - 15.3. Swarm robotics based on physical interactions * 15.3.1 Collaborating on a physical task * 15.3.2 Combining the forces of multiple robots * 15.3.3 Occlusion-based collective pushing - 15.4. Summary - 15.5. Further reading - References 16. Kinematics of a Robotic Manipulator - 16.1. Forward kinematics - 16.2. Inverse kinematics - 16.3. Rotations * 16.3.1 Rotating a vector * 16.3.2 Rotating a coordinate frame * 16.3.3 Transforming a vector from one coordinate frame to another - 16.4. Rotating and translating a coordinate frame - 16.5. A taste of three-dimensional rotations * 16.5.1 Rotations around the three axes * 16.5.2 The right-hand rule * 16.5.3 Matrices for three-dimensional rotations * 16.5.4 Multiple rotations * 16.5.5 Euler angles * 16.5.6 The number of distinct Euler angle rotations - 16.6. Advanced topics in three-dimensional transforms - 16.7. Summary - 16.8. Further reading - References A. Units of measurement B. Mathematical derivations and tutorials - B.1. Conditional probability and Bayes rule - B.2. Normalization - B.3. Mean and variance - B.4. Covariance - B.5. Multiplication of vectors and matrices - B.6. The area of a trapezoid at the base of a triangle - B.7. Algebraic formulas for $\cos 15^{\circ}$
5
329
A new textbook!
An absolute gem of a book, Cybersecurity: Theory, Practice, and Ethics by Devharsh Trivedi (2026) is now in @ChapterPal's collection of open textbooks. This textbook is a broad, practice-oriented introduction to cybersecurity for undergraduate and graduate students, instructors, and early-career professionals preparing for certification or technical work. It assumes general computing literacy and some programming exposure, since examples and labs use languages and tools such as Java, C/C++, Python, Nmap, Wireshark, Burp Suite, ZAP, Ghidra, and Metasploit; readers without that background can still follow the conceptual chapters, but the hands-on material will be more useful with it. Its scope runs from foundational theory to offensive and defensive practice, then to law, privacy, governance, and industrial control systems. It covers cryptography, networking and network attacks, social engineering, risk management, penetration testing, reconnaissance, scanning, exploitation, web application security, network defense, intrusion detection, forensics, incident response, malware analysis, capture the flag, emerging threats, privacy law, security governance, and operational technology security. The book has 1,142 pages, 93 illustrations, and 871 exercises adapted for readers to work through with an AI tutor. Read and solve exercises with hints and support from an AI tutor: chapterpal.com/book/fe84bbee… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: Introduction - Course Mapping - What Every Chapter Contains - How to Cite This Book - Accessibility - License Preface - About This Textbook - Who This Book Is For - How This Book Is Organized - Ethical Commitment - Using This Book in a Course - A Note on Currency Chapter 1: Introduction to Cybersecurity - Learning Objectives - Key Terms - 1.1 What Is Cybersecurity? - 1.2 The CIA Triad and Its Extensions - 1.3 The Anatomy of an Attack - 1.4 Threat Actors and the Adversary Model - 1.5 Defense in Depth and Security Controls - 1.6 Hardware Foundations: Rings, Modes, and the Trusted Computing Base - 1.7 The NIST Cybersecurity Framework - 1.8 Quantifying Risk in Monetary Terms - 1.9 The Saltzer and Schroeder Design Principles - 1.10 The Security Mindset, Ethics, and the Law - 1.11 A Taxonomy of Threats and a Roadmap to This Book - 1.12 Classic Security Models - 1.13 Security versus Resilience - Chapter Summary - Why This Matters - News in Focus: The Colonial Pipeline Ransomware Incident (2021) - News in Focus: Cyber Warfare and the US-Iran Cyber Conflict - Review Questions (MCQ) - Lab Assignment - References Chapter 2: Cryptography - Learning Objectives - Key Terms - 2.1 What Cryptography Is and What It Promises - 2.2 Classical Ciphers and Why They Fall - 2.3 Perfect Secrecy and the One-Time Pad - 2.4 Randomness: True, Pseudo, and Cryptographically Secure - 2.5 Symmetric Encryption: Stream and Block Ciphers - 2.6 Block Cipher Modes of Operation - 2.7 Cryptographic Hash Functions - 2.8 Message Authentication Codes and Authenticated Encryption - 2.9 Key Derivation and Password Storage - 2.10 Public-Key Cryptography and RSA - 2.11 Diffie-Hellman Key Exchange - 2.12 Elliptic-Curve Cryptography - 2.13 Digital Signatures, Certificates, and PKI - 2.14 Putting It Together: The TLS Handshake - 2.15 Advanced and Emerging Cryptography - 2.15a Privacy-Preserving Cryptography and the Wider Toolbox - 2.16 Key Management - 2.17 A Taxonomy of Cryptographic Attacks - 2.18 Applied Cryptographic Systems - 2.19 Practical Guidance: Choosing and Using Cryptography - 2.19a Protecting Data in All Three States - 2.19b Tamper-Evident and Tamper-Proof Mechanisms - 2.20 Formal Security Analysis and Provable Security - Lab Assignment - References Chapter 3: Networking and Network Attacks - Learning Objectives - Key Terms - 3.1 Why Networking Is the Battleground - 3.2 The OSI Model - 3.3 The TCP/IP Model and Encapsulation - 3.4 IP Addressing: IPv4 and IPv6 - 3.5 Ports and Common Protocols - 3.8 Sniffing: Listening on the Wire - 3.9 Spoofing, Man-in-the-Middle, and Session Hijacking - 3.10 Denial-of-Service and Distributed Denial-of-Service Attacks - 3.12 QUIC, HTTP/3, and Encrypted Client Hello - 3.13 The Access Link: How a Network Connects to the Internet - Lab Assignment - References Chapter 4: Social Engineering and the Human Element - Learning Objectives - Key Terms - 4.1 Why People Are the Weakest Link - 4.2 The Psychology of Influence - 4.3 The Social-Engineering Attack Lifecycle - 4.4 The Taxonomy of Social-Engineering Attacks - 4.7 Physical Security as Social Engineering's Partner - 4.8 Authentication Factors - 4.9 Defending Against Social Engineering - 4.10 Social Engineering in the Age of Artificial Intelligence - 4.11 Deepfakes, Voice Cloning, and Synthetic Identities - Chapter Summary - Why This Matters - News in Focus: The 2020 Twitter Account Takeover - Review Questions (MCQ) - Lab Assignment - References Chapter 5: Risk Management - Learning Objectives - Key Terms - 5.1 Risk as the Organizing Principle of Security - 5.2 The Vocabulary of Risk - 5.3 The Risk-Management Lifecycle - 5.4 Risk Identification - 5.5 Qualitative Risk Assessment - 5.7 Risk Treatment - Review Questions (MCQ) - Lab Assignment - References Chapter 6: Penetration Testing Methodology - Learning Objectives - Key Terms - 6.1 Why Methodology Matters - 6.2 What Penetration Testing Is, and Is Not - 6.3 Hats and Team Colors - 6.4 Knowledge Levels: Black, Gray, and White Box - 6.5 The Phases of a Penetration Test - 6.6 Types of Penetration Tests - 6.7 Pre-Engagement: Scope and the Rules of Engagement - 6.8 The Legal Framework - 6.10 Vulnerability Disclosure - 6.11 The Test Environment and Toolkit - 6.12 Threat Modeling and Intelligence in the Engagement - 6.13 Post-Exploitation, Pivoting, and Operational Discipline - 6.14 Compliance-Driven and Standards-Based Testing - 6.15 Reporting - Lab Assignment - References Chapter 7: Reconnaissance and Open-Source Intelligence - Learning Objectives - Key Terms - 7.1 Why Reconnaissance Comes First - 7.2 Footprinting: Passive and Active - 7.3 Open-Source Intelligence (OSINT) - 7.4 Search-Engine Reconnaissance ("Google Dorking") - 7.10 Reconnaissance Tools - 7.11 Passive Fingerprinting - 7.12 Defending Against Reconnaissance - 7.13 AI-Assisted Reconnaissance and Modern WHOIS - 7.14 Network Analysis Tools, and Reading a Tool's License - Chapter Summary - Why This Matters - News in Focus: Mass Scraping of Public Profiles (2021) - Review Questions (MCQ) - Lab Assignment - References Chapter 8: Scanning and Enumeration - Learning Objectives - Key Terms - 8.1 From Reconnaissance to Active Probing - 8.2 The Scanning Taxonomy and the Tyranny of Time - 8.7 hping3: Crafting Packets by Hand - 8.8 Always Sniff the Wire - 8.9 Operating-System Fingerprinting - 8.10 Service and Version Scanning, and Enumeration - 8.11 Vulnerability Scanning - 8.12 The Nmap Scripting Engine (NSE) - 8.13 Detection and Evasion - 8.14 Scanning Safely, Legally, and Within Scope - Lab Assignment - References Chapter 9: Exploitation and Post-Exploitation - Learning Objectives - Key Terms - 9.1 What Exploitation Is (and Is Not) - 9.2 Common Vulnerability Classes - 9.3 From Source to Machine Code: The Compilation Pipeline - 9.4 Memory Corruption: The Stack, the Heap, and Buffer Overflows - 9.5 From Stack Smashing to Return-Oriented Programming - 9.9 Passive and Static Analysis: Reverse Engineering for Exploitation - Lab Assignment - References Chapter 10: Web Application Security - Learning Objectives - Key Terms - 10.1 How the Web Works: HTTP, Sessions, and the Same-Origin Policy - 10.2 The OWASP Top 10 - 10.3 Injection Attacks - 10.4 SQL Injection in Depth - 10.5 Cross-Site Scripting (XSS) - 10.6 Broken Access Control, CSRF, SSRF, and Other High-Impact Flaws - 10.7 Authentication and Session Management - 10.8 Security Misconfigurations - 10.9 The Web-Application Testing Toolkit - Lab Assignment - References Chapter 11: Network Defense and Hardening - Learning Objectives - Key Terms - 11.1 Firewalls - 11.2 Firewall Types and Topologies - 11.3 Network Segmentation - 11.4 Zero-Trust Architecture - 11.5 DNS Security - 11.6 VPNs and Remote Access - 11.7 Proxies, VPNs, and Tor - 11.8 Network Access Control and 802.1X - 11.9 DDoS and Mitigation - 11.10 Authentication, Identity, and Access - Lab Assignment - References Chapter 12: Intrusion Detection and Prevention Systems - Learning Objectives - Key Terms - 12.1 Detection System Types - 12.2 Detection Methods - Lab Assignment - References Chapter 13: Digital Forensics - Learning Objectives - Key Terms - 13.1 Forensic Principles - 13.2 Evidence Acquisition - 13.3 File System Forensics - 13.4 Memory Forensics - 13.5 Network Forensics - 13.6 Anti-Forensics - 13.7 Artificial Intelligence in Digital Evidence Triage - 13.8 IoT Forensics and Explainable AI - 13.9 AI-Driven Cybercrime Analytics and Attribution - Lab Assignment - References Chapter 14: Incident Response - Learning Objectives - Key Terms - 14.1 Incidents Versus Events - 14.2 The NIST SP 800-61 Lifecycle - 14.3 Legal and Regulatory Obligations - 14.4 The Assume-Breach Mindset - 14.5 Before, During, and After: An Operational IR Playbook - 14.6 Case Study: The Locky Ransomware Incident - Lab Assignment - References Chapter 15: Malware Analysis - Learning Objectives - Key Terms - 15.1 Malware Taxonomy - 15.2 Analysis Environment Setup - 15.3 Static Analysis - 15.4 Dynamic Analysis - 15.5 Anti-Analysis and Evasion Techniques - 15.6 Malware Analysis Report Structure - 15.7 Antivirus and Antimalware Defenses - Lab Assignment - References Chapter 16: Capture the Flag and Competitive Security - Learning Objectives - Key Terms - 16.1 What Is a CTF? - 16.2 Category Deep Dives - 16.3 The National Cyber League (NCL) - 16.4 CTF Platforms for Learning - 16.5 CTF Skills and Professional Mapping - 16.6 Formats: Jeopardy, Attack-Defense, and King-of-the-Hill - 16.7 Why CTFs Build Real Skill - Lab Assignment - References Chapter 17: Emerging Threats and Future Challenges - Learning Objectives - Key Terms - 17.1 Post-Quantum Cryptography - 17.2 AI-Enabled Attacks and Defenses - 17.3 Pattern Matching, Machine Learning, and Deep Learning in Security - 17.4 Privacy-Preserving and Collaborative Machine Learning - 17.13 Big Data Security and Access Control - 17.14 Sandbox and Virtual-Machine Escape, and What "AI Escaped the Sandbox" Really Means - Lab Assignment - References Chapter 18: Privacy, Law, and Information Governance - Learning Objectives - Key Terms - 18.1 Foundational Privacy Principles - 18.2 GDPR - 18.3 US Privacy Law - 18.4 PCI DSS - 18.5 Privacy by Design - 18.6 The Fourth Amendment and the Reasonable Expectation of Privacy - 18.7 Entrapment versus Enticement in Investigations - 18.8 Computer-Crime Law: CFAA, DMCA, and the Ethical Hacker - 18.9 The Global Privacy Landscape and Breach Notification - 18.10 Cryptography, Lawful Access, and Privacy-Enhancing Technologies - Lab Assignment - References Chapter 19: Security Governance, Policy, and Culture - Learning Objectives - Key Terms - 19.1 What Security Governance Is - 19.2 The CISO Role - 19.3 The Policy Hierarchy - Lab Assignment - References Chapter 20: Industrial Control Systems and OT Security - Learning Objectives - Key Terms - 20.1 IT Versus OT: A Fundamental Difference in Priorities - 20.2 ICS Components - 20.3 The Purdue Model and Network Segmentation - 20.4 OT-Specific Security Challenges - 20.5 ICS Malware Case Studies - 20.6 IEC 62443 and NIST SP 800-82 - 20.7 OT Defense-in-Depth - Lab Assignment - References Appendix A: Security Command Reference - Network Scanning and Enumeration - Password and Credential Tools - Forensics - Network Analysis - Cryptography - Python One-Liners - Security Tools Reference - OWASP Tools and Projects - Reverse Engineering with Ghidra Appendix B: Glossary - Acronyms Used in More Than One Chapter - Cloud and Infrastructure Terminology - Adversary and Threat-Model Terminology - Reverse Engineering Acronyms and Notation Appendix C: Certification Mapping - C.1 (ISC)2 CISSP - 8 Domains - C.2 CompTIA Security+ SY0-701 - 5 Domains - C.3 EC-Council CEH v13 - 9 Domains - C.4 ISACA CISA - 5 Domains - C.5 (ISC)2 CGRC / CAP - 7 Job Practice Areas (the NIST Risk Management Framework, RMF) - C.6 (ISC)2 SSCP - 7 Domains - C.7 (ISC)2 Certified in Cybersecurity (CC) - 5 Domains - C.8 GIAC GREM (Reverse Engineering Malware) - Topic Areas - C.9 Chapter-to-Certification Coverage Matrix Appendix D: ABET Student Outcomes and Bloom's Taxonomy Mapping - ABET Student Outcomes (computing programs, Criterion 3) - Bloom's Revised Cognitive Taxonomy (lowest to highest order) - Chapter Mapping - Coverage Summary Appendix E: Selected Works by the Author (Mapped to Chapters) - Cryptography and Privacy-Preserving Computation - Privacy-Preserving Machine Learning and Emerging Topics - Security Analytics, Monitoring, and Detection - Networking, Wireless, and Packet Analysis - Offensive Security, Social Engineering, and Capture the Flag - Software, Systems, Data, and Governance - Additional Notes, Talks, and Early Works (by topic) Appendix F: Companion Code and Open-Source Repositories - Worked Code Examples in This Book - Author Repositories (github.com/devharsh) - Computer Tips Organization (github.com/com-puter-tips) - Companion Blog Tutorials (com.puter.tips) Appendix G: Book Statistics and Word Counts - Summary by Chapter - Detailed Word Count by Section Appendix H: Capstone and Group Project Ideas - H.1 Deliverables and Scholarly Lifecycle - H.2 Track 1: Advanced Research, Innovation, and Privacy-Preserving Systems - H.3 Track 2: Autonomous Threats, AI Security, and Offensive Security - H.4 Track 3: Specialized Technical Tools and Ethical Hacking - H.5 Track 4: Defensive Security, Detection, and Digital Forensics - H.6 Track 5: Penetration Testing, Governance, Privacy, and Society - H.7 Track 6: Encoding, Provenance, and Data Integrity - H.8 GitHub Submission Standards - H.9 Approved Preprint Servers for DOI Generation - H.10 Where to Publish Each Type of Research Output (Free Platforms) - H.11 Example Completed Student Projects (Spring 2026) Appendix I: Protocol Security Reference - I.1 Internet and Transport Layer - I.2 Naming and Address Assignment - I.3 Web, Transport Security, and Identity - I.4 Email - I.5 File Transfer, Remote Access, and Sharing - I.6 Management, Authentication, Time, and Logging - I.7 VPN and Tunneling - I.8 Routing, Switching, and Redundancy - I.9 Wireless - I.10 Multimedia, Messaging, IoT, and Discovery - I.11 Industrial Control Systems and Operational Technology - I.12 Storage Interfaces - I.13 How to Use This Reference Appendix J: Adversary Models - J.1 The Three Layers of an Adversary Model - J.2 Layer 1: Behavioral Models - J.3 Layer 2: Corruption Modifiers - J.4 Layer 3: Single-Key Game Models - J.5 Extended Single-Key Models - J.6 Adversary Models for Homomorphic Encryption - J.7 Multi-Key Settings - J.8 Composing a Complete Threat Model - J.9 Worked Numerical Examples Appendix K: Course Materials, Coverage Map, and Sample Assignments - K.1 Source-Materials Coverage Map - K.2 Sample Lecture Modules - K.3 Sample Assignments and Group Projects - K.4 Adapting These Materials
There's a new version of this post
2
101
A new textbook!
Sets, Logic, Computation: An Open Introduction to Metalogic by Richard Zach (2019) is now in @ChapterPal's collection of open textbooks. This textbook serves as an introductory study of metalogic—the mathematical investigation of logic itself—tailored primarily for intermediate students of computer science and philosophy. Readers are presumed to have basic familiarity with introductory formal logic, such as symbolization, quantifiers, and basic deductive systems like natural deduction or truth trees. To support learners who may lack formal training in higher mathematics, the textbook includes foundational appendices that explicitly outline general proof techniques and mathematical induction, ensuring readers develop the mathematical maturity required to reason about formal languages rather than merely calculating within them. The book has 267 pages, 44 illustrations, and 196 exercises that were adapted to work with an AI tutor. Read and solve exercises with the hints and support of an AI tutor: chapterpal.com/book/00f2078d… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: Part I - Sets, Functions, Relations Chapter 1: Sets - 1.1 Extensionality - 1.2 Subsets and Power Sets - 1.3 Some Important Sets - 1.4 Unions and Intersections - 1.5 Pairs, Tuples, Cartesian Products - 1.6 Russell's Paradox - Summary Chapter 2: Relations - 2.1 Relations as Sets - 2.2 Special Properties of Relations - 2.3 Equivalence Relations - 2.4 Orders - 2.5 Graphs - 2.6 Trees - 2.7 Operations on Relations - Summary Chapter 3: Functions - 3.1 Basics - 3.2 Kinds of Functions - 3.3 Functions as Relations - 3.4 Inverses of Functions - 3.5 Composition of Functions - 3.6 Partial Functions - Summary Chapter 4: The Size of Sets - 4.1 Introduction - 4.2 Enumerations and Countable Sets - 4.3 Cantor's Zig-Zag Method - 4.4 Pairing Functions and Codes - 4.5 An Alternative Pairing Function - 4.6 Uncountable Sets - 4.7 Reduction - 4.8 Equinumerosity - 4.9 Sets of Different Sizes, and Cantor's Theorem - 4.10 The Notion of Size, and Schröder-Bernstein - Summary - References Part II - First-Order Logic Chapter 5: Introduction to First-Order Logic - 5.1 First-Order Logic - 5.2 Syntax - 5.3 Formulas - 5.4 Satisfaction - 5.5 Sentences - 5.6 Semantic Notions - 5.7 Substitution - 5.8 Models and Theories - 5.9 Soundness and Completeness - References Chapter 6: Syntax of First-Order Logic - 6.1 Introduction - 6.2 First-Order Languages - 6.3 Terms and Formulas - 6.4 Unique Readability - 6.5 Main operator of a Formula - 6.6 Subformulas - 6.7 Formation Sequences - 6.8 Free Variables and Sentences - 6.9 Substitution - Summary - References Chapter 7: Semantics of First-Order Logic - 7.1 Introduction - 7.2 Structures for First-order Languages - 7.3 Covered Structures for First-order Languages - 7.4 Satisfaction of a Formula in a Structure - 7.5 Variable Assignments - 7.6 Extensionality - 7.7 Semantic Notions - Summary Chapter 8: Theories and Their Models - 8.1 Introduction - 8.2 Expressing Properties of Structures - 8.3 Examples of First-Order Theories - 8.4 Expressing Relations in a Structure - 8.5 The Theory of Sets - 8.6 Expressing the Size of Structures - Summary Chapter 9: Deduction Systems - 9.1 Introduction - 9.2 The Sequent Calculus - 9.3 Natural Deduction - 9.4 Tableaux - 9.5 Axiomatic Derivations Chapter 10: The Sequent Calculus - 10.1 Rules and Derivations - 10.2 Propositional Rules * Rules for $\lnot$ * Rules for $\land$ * Rules for $\lor$ * Rules for $\rightarrow$ - 10.3 Quantifier Rules * Rules for $\forall$ * Rules for $\exists$ - 10.4 Structural Rules * Weakening * Contraction * Exchange - 10.5 Derivations - 10.6 Examples of Derivations - 10.7 Derivations with Quantifiers - 10.8 Proof-Theoretic Notions - 10.9 Derivability and Consistency - 10.10 Derivability and the Propositional Connectives - 10.11 Derivability and the Quantifiers - 10.12 Soundness - 10.13 Derivations with Identity predicate - 10.14 Soundness with Identity predicate - Summary Chapter 11: Natural Deduction - 11.1 Rules and Derivations - 11.2 Propositional Rules * Rules for $\land$ * Rules for $\lor$ * Rules for $\rightarrow$ * Rules for $\lnot$ * Rules for $\bot$ - 11.3 Quantifier Rules * Rules for $\forall$ * Rules for $\exists$ - 11.4 Derivations - 11.5 Examples of Derivations - 11.6 Derivations with Quantifiers - 11.7 Proof-Theoretic Notions - 11.8 Derivability and Consistency - 11.9 Derivability and the Propositional Connectives - 11.10 Derivability and the Quantifiers - 11.11 Soundness - 11.12 Derivations with Identity predicate - 11.13 Soundness with Identity predicate - Summary Chapter 12: The Completeness Theorem - 12.1 Introduction - 12.2 Outline of the Proof - 12.3 Complete Consistent Sets of Sentences - 12.4 Henkin Expansion - 12.5 Lindenbaum's Lemma - 12.6 Construction of a Model - 12.7 Identity - 12.8 The Completeness Theorem - 12.9 The Compactness Theorem - 12.10 A Direct Proof of the Compactness Theorem - 12.11 The Löwenheim–Skolem Theorem - Summary Chapter 13: Beyond First-Order Logic - 13.1 Overview - 13.2 Many-Sorted Logic - 13.3 Second-Order logic - 13.4 Higher-Order logic - 13.5 Intuitionistic Logic - 13.6 Modal Logics - 13.7 Other Logics Part III - Turing Machines Chapter 14: Turing Machine Computations - 14.1 Introduction - 14.2 Representing Turing Machines - 14.3 Turing Machines - 14.4 Configurations and Computations - 14.5 Unary Representation of Numbers - 14.6 Halting States - 14.7 Disciplined Machines - 14.8 Combining Turing Machines - 14.9 Variants of Turing Machines - 14.10 The Church–Turing Thesis - Summary Chapter 15: Undecidability - 15.1 Introduction - 15.2 Enumerating Turing Machines - 15.3 Universal Turing Machines - 15.4 The Halting Problem - 15.5 The Decision Problem - 15.6 Representing Turing Machines - 15.7 Verifying the Representation - 15.8 The Decision Problem is Unsolvable - 15.9 Trakhtenbrot's Theorem - Summary
2
192
A new textbook!
forall x: Calgary: An Introduction to Formal Logic by P. D. Magnus, Tim Button, Robert Trueman, and Richard Zach (2023) is now in @ChapterPal's collection of open textbooks. It's an introductory textbook designed for undergraduate students and independent learners with no prior background in formal reasoning or advanced mathematics. The text teaches modern formal logic as both a precise language for evaluating arguments and a mathematical framework for analyzing consequence. Emphasizing rigor without relying on heavy metatheoretical machinery, the book provides a complete foundation in truth-functional sentential logic, first-order predicate logic, and elementary modal logic. It frames logic around the core notions of validity, satisfiability, and entailment, teaching students how to represent natural-language reasoning formally and evaluate it through both semantic models and syntactic derivation systems. The textbook has 329 pages, 25 illustrations, and 139 exercises. Read and solve exercises with the hints and support of an AI tutor: chapterpal.com/book/baaaf0d4… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: Preface - About this book - Credits - Notes for instructors Chapter 1: Arguments - 1.1 Sentences * Questions * Imperatives * Exclamations - Practice exercises Chapter 2: The scope of logic - 2.1 Consequence and validity - 2.2 Cases and types of validity - 2.3 Formal validity - 2.4 Sound arguments - 2.5 Inductive arguments - Practice exercises Chapter 3: Other logical notions - 3.1 Joint possibility - 3.2 Necessary truths, necessary falsehoods, and contingency - 3.3 Necessary equivalence - Summary of logical notions - Practice exercises Chapter 4: First steps to symbolization - 4.1 Validity in virtue of form - 4.2 Validity for special reasons - 4.3 Atomic sentences Chapter 5: Connectives - 5.1 Negation - 5.2 Conjunction - 5.3 Disjunction - 5.4 Conditional - 5.5 Biconditional - 5.6 Unless - Practice exercises Chapter 6: Sentences of TFL - 6.1 Expressions - 6.2 Sentences Chapter 7: Ambiguity - Practice exercises Chapter 8: Use and mention - 8.1 Quotation conventions - 8.2 Object language and metalanguage - 8.4 Quotation conventions for arguments Chapter 9: Characteristic truth tables - Negation - Conjunction - Disjunction - Conditional - Biconditional Chapter 10: Truth-functional connectives - 10.1 The idea of truth-functionality - 10.2 Symbolizing versus translating - 10.3 Indicative versus subjunctive conditionals Chapter 11: Complete truth tables - 11.1 A worked example - 11.2 Building complete truth tables - 11.3 More about brackets - Practice exercises Chapter 12: Semantic concepts - 12.1 Tautologies and contradictions - 12.2 Equivalence - 12.3 Satisfiability - 12.4 Entailment and validity - 12.5 The double turnstile Chapter 13: Limitations of TFL Chapter 14: Truth table shortcuts - 14.1 Working through truth tables - 14.2 Testing for validity and entailment - Practice exercises Chapter 15: Partial truth tables * Tautology * Contradictions * Equivalence * Joint satisfiability * Validity and entailment - Practice exercises Chapter 16: The very idea of natural deduction Chapter 17: Basic rules for TFL - 17.1 The idea of a formal proof - 17.2 Reiteration - 17.3 Conjunction - 17.5 Additional assumptions and subproofs - 17.6 Biconditional - 17.7 Disjunction - 17.8 Contradiction and negation - Practice exercises Chapter 18: Constructing proofs - 18.1 Working backward from what we want * Working backward from a conjunction * Working backward from a conditional * Working backward from a negated sentence * Working backward from a disjunction - 18.2 Working forward from what we have * Working forward from a conjunction * Working forward from a disjunction * Working forward from a conditional * Working forward from a negated sentence - 18.3 Strategies at work - 18.4 Working forward from $\bot$ - 18.5 Proceed indirectly - 18.6 Indirect proof of excluded middle - Practice exercises Chapter 19: Additional rules for TFL - 19.1 Disjunctive syllogism - 19.2 Modus tollens - 19.3 Double-negation elimination - 19.4 Excluded middle Chapter 20: Proof-theoretic concepts - Practice exercises Chapter 21: Derived rules - 21.1 Derivation of Reiteration - 21.2 Derivation of Disjunctive Syllogism - 21.3 Derivation of Modus Tollens - 21.4 Derivation of Double-Negation Elimination - 21.5 Derivation of Excluded Middle - 21.6 Derivation of De Morgan rules - Practice exercises Chapter 22: Soundness and completeness - Practice exercises Chapter 23: Building blocks of FOL - 23.1 The need to decompose sentences - 23.3 Predicates - 23.4 Quantifiers - 23.5 Domains - 23.6 Non-referring terms Chapter 24: Sentences with one quantifier - 24.1 Common quantifier phrases - 24.2 Empty predicates - 24.3 Picking a domain - 24.4 The utility of paraphrase - 24.5 Quantifiers and scope - 24.6 Ambiguous predicates - Practice exercises Chapter 25: Multiple generality - 25.1 Many-placed predicates - 25.2 Mind the gap(s)! - 25.3 The order of quantifiers - 25.4 Stepping-stones to symbolization Chapter 26: Identity - 26.1 Adding identity - 26.2 'Only' and 'except' - 26.4 There are at most... - 26.5 There are exactly... - Practice exercises Chapter 27: Sentences of FOL - 27.1 Expressions - 27.2 Terms and formulas - 27.3 Sentences and free variables Chapter 28: Definite descriptions - 28.1 Treating definite descriptions as terms - 28.2 Russell's analysis - 28.5 The adequacy of Russell's analysis - Practice exercises Chapter 29: Ambiguity Chapter 30: Extensionality - 30.1 Symbolizing versus translating - 30.2 Extensions - 30.3 Many-place predicates - 30.4 Semantics for identity - 30.5 Interpretations Chapter 31: Truth in FOL - 31.1 Atomic sentences - 31.2 Sentential connectives - 31.3 When the main logical operator is a quantifier - Practice exercises Chapter 32: Semantic concepts - 32.1 Validities, entailment, etc. - 32.2 Expressibility - Practice exercises Chapter 33: Using interpretations - 33.1 Validities and contradictions - 33.2 Logical equivalence - 33.3 Validity, entailment and satisfiability - Practice exercises Chapter 34: Reasoning about interpretations - 34.1 Validities and contradictions - 34.2 Other cases Chapter 35: Properties of relations - Practice exercises Chapter 36: Basic rules for FOL - 36.1 Universal elimination - 36.2 Existential introduction - 36.3 Empty domains - 36.4 Universal introduction - 36.6 Quantifier rules and vacuous quantification - Practice exercises Chapter 37: Proofs with quantifiers - Practice exercises Chapter 38: Conversion of quantifiers - Practice exercises Chapter 39: Rules for identity - Practice exercises Chapter 40: Derived rules - Practice exercises Chapter 41: Proofs and semantics Chapter 42: Introducing modal logic - 42.1 The Language of ML Chapter 43: Natural deduction for ML - 43.1 System $\mathbf{K}$ - 43.2 Possibility - 43.3 System $\mathbf{T}$ - 43.4 System $\mathbf{S4}$ - 43.5 System $\mathbf{S5}$ - Practice exercises Chapter 44: Semantics for ML - 44.1 Interpretations of ML - 44.3 A Semantics for System $\mathbf{T}$ - 44.4 A Semantics for $\mathbf{S4}$ - 44.5 A Semantics for $\mathbf{S5}$ Chapter 45: Normal forms - 45.1 Disjunctive normal form - 45.2 Proof of DNF Theorem via truth tables - Practice exercises Chapter 46: Functional completeness Chapter 47: Proving equivalences - 47.1 Substitutability of equivalents - 47.2 Chains of equivalences - 47.3 Finding equivalent normal forms Chapter 48: Soundness - Practice exercises
5
261
A new feature: recommendations.
ChapterPal now has a reading recommendation system. It analyzes what users read or keep in their libraries and suggests relevant content. There are "More like this" and "Less like this" buttons to train the recommender to match your preferences. Free accounts get three recommendations each week. Paid accounts get three recommendations daily, with the option to get more on demand. Currently, ChapterPal has nearly 15,000 recommendable items (papers and books), and by the end of the year, it should have about 50,000 items. Next year, I expect the number of recommendable items to reach nearly 250,000.
2
183
ChapterPal retweeted
ChapterPal now has a reading recommendation system. It analyzes what users read or keep in their libraries and suggests relevant content. There are "More like this" and "Less like this" buttons to train the recommender to match your preferences. Free accounts get three recommendations each week. Paid accounts get three recommendations daily, with the option to get more on demand. Currently, ChapterPal has nearly 15,000 recommendable items (papers and books), and by the end of the year, it should have about 50,000 items. Next year, I expect the number of recommendable items to reach nearly 250,000.
1
1
8
1,045
A new textbook!
The Scientific Computing course notes by Jeffrey R. Chasnov (2013) is now in @ChapterPal's collection of open textbooks. This volume is a set of lecture-based textbook notes for readers with a mathematical background, especially mathematics majors, who want to learn how computation can solve problems that resist direct analytic treatment. It assumes no previous study of numerical analysis. Calculus supports much of the numerical material, and multivariable calculus is useful for the fluid mechanics chapters; the book also introduces MATLAB as a working tool. The book connects core numerical algorithms with two extended areas of application: nonlinear dynamical systems and computational fluid dynamics. It begins with the limits of computer number representation and the effects of round-off, then develops methods for finding roots, integrating functions, solving ordinary differential equations, and handling linear systems. Further chapters cover finite-difference approximations, iterative solvers, interpolation, and least-squares fitting. Across these topics, the organizing concerns are accuracy, error, convergence, computational cost, and the practical choice of method. The presentation explains how algorithms are built and used, while explicitly giving limited attention to the deeper theory of numerical analysis. Rread the textbook with an AI tutor: chapterpal.com/book/f0efb91e…
There's a new version of this post
1
75
A new book!
The Model-Driven DevOps for Big Data Applications book by Wikibooks is now in @ChapterPal's collection of open books. This textbook presents an engineering methodology for designing, assessing, deploying, and operating big data systems by combining model-driven engineering with DevOps practices. Developed from the DICE research project, the text is aimed at software architects, developers, system operators, and project managers who build data-intensive applications. It assumes a foundation in general software engineering principles, familiarity with the Unified Modeling Language (UML), and basic experience with the Eclipse integrated development environment. The volume focuses on reducing the architectural complexity, performance risks, and operational hurdles that small and medium-sized organizations face when adopting distributed technologies. Read with an AI tutor: chapterpal.com/book/58281b0b… All books on ChapterPal are free to read with a free account. A paid account gives you more questions to ask the AI tutor, personalized reading recommendations based on your interests, auto-generated quizzes that allow you to validate your understanding, offline reading with a mobile app, and more. Table of contents: I: Introduction Preface - Contributors - How to Read This Book - Attribution Chapter 1: Introduction - Big Data Matters - Characteristics of Big Data Systems - Big Data for Small and Medium-Sized Enterprises - References Chapter 2: Related Work - Importance of Big Data for the Business - DICE Value Proposition - Positioning DICE to the market - Business requirements and DICE II: DevOps and Big Data Modelling Chapter 3: Methodology - Model-Driven DevOps - Model-Driven DevOps for Big Data - Methodology Proposal * Architecture Modelling * Architecture Analysis * Architecture Experimentation - The DICE Methodology in the IDE - References Chapter 4: Review of UML Diagrams - Introduction - Methodological Overview - Existing Solutions and UML Modelling Summary - Quick Reference Scenario - DICE UML Modelling in Action: A Sample Scenario * Step a: DPIM Model * Step b and c: DPIM Model Refinement * Step d: DTSM Model Creation * Step e: DDSM Model Creation - Conclusion - References III: Modelling Abstractions Chapter 5: Introduction to Modelling - Introduction - How the Profile Works - References Chapter 6: Platform-Independent Modelling - Introduction - DPIM Profile - DPIM Example: The Maritime Operations Case Study - Conclusion - References Chapter 7: Technology-Specific Modelling - Introduction - DTSM Modelling Explained: The Apache Storm Example * Storm Concepts * Storm Profile - Stateful stream processing - References Chapter 8: Deployment-Specific Modelling - Introduction * Technical Overview - DDSM UML Deployment Profile - UML Deployment Modelling: The WikiStats Example - Deployment with containers - Conclusion - References IV: Formal Quality Analysis Chapter 9: Quality Verification - Introduction - Motivations - Existing solutions - How the tool works * The verification process * The architecture - Open challenges - Application domain * Storm * Spark * A test case - DigitalPebble web crawler - Conclusion Chapter 10: Quality Simulation - Introduction - Motivation * Performance Metrics * Reliability Metrics - Existing Solutions - How the tool works - Open Challenges - Application domain: known uses - Conclusion - References Chapter 11: Quality Optimisation - Introduction - Motivations - Existing solutions - How the tool works * The optimization process * The Architecture - Open Challenges - Capacity and cost constraints - Application Domain * A test case – NETF Fraud detection application - Experimental Results - Conclusion V: From Models to Production Chapter 12: Delivery - Motivation - Existing solutions - Declarative deployment - How the tool works * TOSCA technology library used in blueprints * Deployment service concepts - Open Challenges - Application domain: known uses * Spark applications * Deployments with Continuous Integration - Conclusion - References Chapter 13: Configuration Optimisation - Introduction - Motivation - Existing Solutions - How the tool works * CO methodological steps - Open challenges - Application domains * Storm configuration * Cassandra configuration - Conclusion - References Chapter 14: Quality Testing - Introduction - Motivation - Existing Solutions * Kafka workload injection - How the tool works * QT-LIB * QT-GEN * QT Methodology - Open Challenges - Application domain: known uses * Generating an artificial Twitter trace for load testing * Load testing a Kafka pipeline - Conclusion - References Chapter 15: Fault Injection - Introduction - Motivation - Existing solutions - How the FIT works * Design * Operation * Graphical User Interface * Installation - Open Challenges - Application domain * Integration * Validation - Failure experiments - Conclusion - References VI: From Production Back to Models Chapter 16: Monitoring - Introduction - Motivations - Existing solutions - How the tool works - Collecting application measurements - Open Challenges - Application domains - Conclusion - References Chapter 17: Anomaly Detection - Introduction - Motivations - Existing solutions - How the tool works - Open Challenges - Application domains - Conclusion - References Chapter 18: Trace Checking - Introduction - Motivations - Existing solutions - How the tool works * The architecture * The trace-checking process - Open challenges - Application domains * A test case - Wikistats - Conclusion Chapter 19: Iterative Enhancement - Introduction - Motivation - Existing Solutions - How the Tool Works * DICE-FG * DICE-APR * Relating measurements to model parameters - Open Challenges - Application domain: known uses * DICE FG * DICE-APR - Conclusion - References VII: Case Studies Chapter 20: Fraud Detection - Context - Technologies * Apache Spark * Apache Cassandra - BigBlu : a Big Data platform to support fraud detection * Overview * Architecture * Process: evolution of the platform - DICE Tools - References Chapter 21: Maritime Operations - Use Case Description * Business goals * Use Case Architecture - Use Case Scenarios * Deployment Scenario * Support vessels traffic increase for a given port * Add new business rules (CEP rules) for different ports * Give support to another port in the cloud instance of Posidonia Operations * Run a simulation to validate performance and quality metrics among versions - DICE Tools - Conclusion Chapter 22: News and Media - Use Case Description - Use Case Scenarios * “Trend Topic Detector” Detailed Description - DICE Tools VIII: Conclusion Chapter 23: Future Challenges - From DevOps to DataOps - DevOps and Micro-services Chapter 24: Closing Remarks Appendices Glossary
2
160
A new textbook!
The most popular textbook on multiagent systems and algorithmic game theory (aka the MAS book), thanks to the permission given by its generous authors, is now on @ChapterPal. The textbook is used at thousands of universities around the world, and now you can read it with an AI tutor. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations by @yshoham and @k_leyton_brown provides an advanced, mathematically formal presentation of systems populated by multiple autonomous entities with diverging information or conflicting objectives. Intended for researchers and graduate students across computer science, operations research, and related mathematical fields, it presumes comfort with formal mathematical reasoning, basic algorithms and computational complexity, elementary probability theory, linear and integer programming, classical logic, and basic Markov decision processes. The central focus is the computational dimension of multiagent interactions, combining principles from artificial intelligence, economics, and mathematical logic into a cohesive theoretical framework. Read the MAS book on ChapterPal with an AI tutor: chapterpal.com/ebook/0463e91… Table of contents: Introduction Distributed Constraint Satisfaction Distributed Optimization Introduction to Noncooperative Game Theory: Games in Normal Form Computing Solution Concepts of Normal-Form Games Games with Sequential Actions: Reasoning and Computing with the Extensive Form Richer Representations: Beyond the Normal and Extensive Forms Learning and Teaching Communication Aggregating Preferences: Social Choice Protocols for Strategic Agents: Mechanism Design Protocols for Multiagent Resource Allocation: Auctions Teams of Selfish Agents: An Introduction to Coalitional Game Theory Logics of Knowledge and Belief Beyond Belief: Probability, Dynamics and Intention Appendices: Technical Background
1
197
A new book series!
This is one of the most complex and coolest textbook releases I've made on @ChapterPal so far: Lessons in Electric Circuits by Tony R. Kuphaldt (2026). It's not a single book. It's a series of six (6) volumes! The six textbooks contain everything needed to learn electronics from scratch, from the foundations of electricity and electromagnetism to semiconductor theory, transistors, number systems, Boolean algebra, combinational logic, and microprocessors. The six volumes are: 1. Direct Current (DC) 2. Alternating Current (AC) 3. Semiconductors 4. Digital Circuits 5. Electronics Engineering Reference 6. DIY Electronics Projects The curriculum has 7,389 illustrations and 3,620 exercises organized into 188 worksheets. Read the curriculum with an AI tutor: chapterpal.com/book/260fb23b… All the exercises are adapted for the exercise-solution AI tutor, which doesn't provide solutions but looks at the student's progress and gives hints grounded in the learned content. All textbooks on ChapterPal are free to read with a free account.
2
222
A new book! ChapterPal exclusive.
One more high-quality non-English textbook that I converted and translated from French into English for the ever growing @ChapterPal's collection of open textbooks: Combinational and Sequential Logic Circuits by Guy Bégin (2023) is an introductory textbook for technical-education and undergraduate students, as well as readers interested in electronic engineering. It assumes no prior knowledge of the subject; programming experience is useful, but not required, for the later simulation work. The book presents logic-circuit design as a foundation of digital electronic systems, concentrating on how binary information is represented, processed, stored, and tested. Its focus is digital logic rather than analog electronics or the transistor-level construction of devices. The textbook has 107 pages, 211 illustrations, and 62 exercises that were adapted to work with an AI tutor that guides you instead of giving you the full solution. Enjoy: chapterpal.com/ebook/0930392… The table of contents: Foreword - Why this textbook - Why a textbook in the form of an open educational resource - Who is it intended for - How to use this textbook - Organization of the material - How to access the content - About the author - Acknowledgments * License * Resources I. Combinational Logic Circuits 1. Number Systems - 1.1. Objectives - 1.2. Digital Systems - 1.3. Binary Numbers - 1.4. Binary-to-decimal and decimal-to-binary conversion - 1.5. Notation - 1.6. Compact Representations of Binary Numbers * 1.6.1. Octal Representation * 1.6.2. Hexadecimal Representation * 1.6.3. Conversion in the Reverse Direction - 1.7. Fractional Binary Numbers - 1.8. Binary arithmetic * 1.8.1. Multiplication and division by two - 1.9. Number complements * 1.9.1. Nine's complement and one's complement * 1.9.2. Ten's complement and two's complement - 1.10. Signed numbers and encoding - 1.11. Binary arithmetic * 1.11.1. Adding unsigned numbers * 1.11.2. Addition of signed numbers * 1.11.3. Subtraction of signed numbers * 1.11.4. Sign extension - 1.12. Binary codes * 1.12.1. Gray code * 1.12.2. Alphanumeric and other codes - End-of-chapter quiz 2. Binary Logic, Logic Functions, and Boolean Algebra - 1.1. Objectives - 1.2. Binary logic * 1.2.1. Binary variable * 1.2.2. Logical operations * 1.2.3. Logical expression * 1.2.4. Truth tables - 1.3. Mathematical foundations * 1.3.1. Definitions - 1.4. Boolean algebra - 1.5. Two-valued Boolean algebra - 1.6. Verification of the postulates - End-of-chapter quiz 3. Theorems and Properties - 1.1. Objectives - 1.2. Duality - 1.3. Basic theorems * 1.3.1. Other logic functions * 1.3.2. Functions with several inputs * 1.3.3. Binary expressions and functions - 1.4. De Morgan’s theorems - End-of-chapter quiz 4. Logic Gates - 1.1. Objectives - 1.2. Logic levels - 1.3. Positive and negative logic - 1.4. Symbols * 1.4.1. AND gate * 1.4.2. OR gate * 1.4.3. Inverter * 1.4.4. NOR gate * 1.4.5. NAND and NOR gates * 1.4.6. Inverted inputs * 1.4.7. Equivalent representations of NAND and NOR gates * 1.4.8. Exclusive-OR (XOR) gate * 1.4.9. Exclusive-NOR or equivalence (XNOR) gate - 1.5. NAND and NOR as universal gates - 1.6. Physical limitations * 1.6.1. Fan-out * 1.6.2. Delay models * 1.6.3. Buffer gate - End-of-chapter quiz 5. Logic Simplification - 1.1. Objectives - 1.2. Equivalent expressions - 1.3. Canonical forms * 1.3.1. Minterms and maxterms * 1.3.2. Sum of products * 1.3.3. Product of sums * 1.3.4. Conversion between canonical forms * 1.3.5. Standard forms - 1.4. Minimization objectives - 1.5. Karnaugh maps * 1.5.1. Simplification procedure * 1.5.2. Optional cases * 1.5.3. Implicants * 1.5.4. Prime implicant * 1.5.5. Coverage of a function * 1.5.6. Essential prime implicant * 1.5.7. Selection of implicants * 1.5.8. Minimization with don't-care conditions * 1.5.9. Minimization with several functions - 1.6. Quine-McCluskey cover table * 1.6.1. Reduced cover table * 1.6.2. Row dominance * 1.6.3. Column dominance - 1.7. Implementing simplified functions * 1.7.1. Two-level implementation - End-of-chapter quiz 6. Typical Combinational Circuits - 1.1. Objectives - 1.2. Combinational circuit - 1.3. Analysis of a combinational logic circuit * 1.3.1. Example - 1.4. Designing a combinational circuit - 1.5. Implementation alternatives * 1.5.1. Implementing the function directly * 1.5.2. Implementing the function through its complement - 1.6. Common combinational logic circuits - 1.7. Binary adder * 1.7.1. Half adder * 1.7.2. Full adder * 1.7.3. Multibit binary adder * 1.7.4. Carry propagation * 1.7.5. Carry lookahead * 1.7.6. Subtraction * 1.7.7. Overflow - 1.8. Multiplexer * 1.8.1. Two-to-one multiplexer * 1.8.2. Four-to-one multiplexer - 1.9. Decoder * 1.9.1. Decoder with active-low outputs and an enable input * 1.9.2. Implementation of arbitrary functions using a decoder - 1.10. Encoder * 1.10.1. Priority encoder - 1.11. Magnitude comparator - 1.12. Demultiplexer - 1.13. Other encoders - 1.14. Three-state gates and bus buffers - End-of-chapter quiz II. Sequential Logic Circuits 7. Sequential Circuits - 1.1. Objectives - 1.2. Model of a sequential circuit - 1.3. Memory elements - 1.4. Latches * 1.4.1. SR latch * 1.4.2. D latch - 1.5. Application: switch bounce - 1.6. Flip-flops * 1.6.1. D flip-flop * 1.6.2. Delays and timing response * 1.6.3. Other flip-flops * 1.6.4. JK flip-flop * 1.6.5. T flip-flop * 1.6.6. Characteristic tables * 1.6.7. Characteristic equations * 1.6.8. Asynchronous inputs - End-of-chapter quiz 8. Analysis of Synchronous Sequential Logic Circuits - 1.1. Objectives - 1.2. Analysis procedure - 1.3. Analysis example - 1.4. Analysis with JK flip-flops * 1.4.1. Example with JK flip-flops - 1.5. Models of sequential machines - End-of-chapter quiz 9. Design of Sequential Logic Circuits - 1.1. Objectives - 1.2. Design of a Synchronous Sequential Circuit - 1.3. Functional Specification - 1.4. State Diagram - 1.5. State Table - 1.6. Reducing the Number of States * 1.6.1. Implication table - 1.7. State encoding - 1.8. Next-state decoder - 1.9. Output decoder - 1.10. Design procedure - 1.11. Design example * 1.11.1. D flip-flops * 1.11.2. Other types of flip-flops - 1.12. Unused states - 1.13. Example with *one-hot* states - End-of-chapter quiz 10. Sequential Circuits: Registers and Counters - 1.1. Objectives - 1.2. Registers * 1.2.1. Parallel loading * 1.2.2. Shift registers - 1.3. Counters * 1.3.1. Asynchronous counter * 1.3.2. Synchronous counter * 1.3.3. Bidirectional counter * 1.3.4. Ring counter * 1.3.5. Johnson counter * 1.3.6. Frequency divider * 1.3.7. Parallel-load counter * 1.3.8. Modulo counter - End-of-chapter quiz 11. Memory - 1.1. Objectives - 1.2. Memory * 1.2.1. Non-volatile memories * 1.2.2. Volatile memories - 1.3. Addressing * 1.3.1. Read and write * 1.3.2. Data bus * 1.3.3. Timing diagrams - 1.4. Read-only memories * 1.4.1. Implementation of combinational functions * 1.4.2. Look-up table * 1.4.3. Categories of ROM memories - End-of-chapter quiz 12. Programmable Logic - 1.1. Objectives - 1.2. Programmable devices * 1.2.1. Programmable logic array (PLA) * 1.2.2. Programmable array logic (PAL) * 1.2.3. Programmable sequential logic - 1.3. Programmable integrated circuits - End-of-chapter quiz III. Hardware Description Languages 13. Hardware Description and Modeling Languages - 1.1. Objectives - 1.2. Modeling and simulation - 1.3. VHDL - 1.4. Entity - 1.5. Architecture - 1.6. Signals and assignment - 1.7. Notes on syntax - 1.8. Concurrency - 1.9. Bit vectors - 1.10. Complete model - 1.11. Behavioral model - 1.12. Dataflow model - 1.13. Structural model - 1.14. Process block - 1.15. Delay modeling * 1.15.1. Inertial delay * 1.15.2. Transport delay - 1.16. Libraries - 1.17. Encapsulation - 1.18. VHDL design description * 1.18.1. Eight-bit multiplier - 1.19. Testbench - 1.20. Instantiation - 1.21. Flow of time - 1.22. Testbench examples * 1.22.1. Creating an empty entity for the testbench * 1.22.2. Instantiation of the model under test * 1.22.3. Generation of the clock and reset signal * 1.22.4. Stimulus * 1.22.5. Complete examples - 1.23. Compilation and simulation - 1.24. Preparation and simulation of VHDL models * 1.24.1. Editors * 1.24.2. Free simulators IV. Exercises 14. Exercises - Series 1
168
A new book!
Brief Calculus by Benjamin Crowell (2005) is now in @ChapterPal's collection of open textbooks. Brief Calculus is an introductory textbook designed for students seeking a conceptually accessible yet mathematically sound entry into single-variable and introductory multivariable calculus. It assumes a standard working knowledge of high-school mathematics, including algebra, geometry, and trigonometry, which are consolidated in a reference review at the back of the volume. Distinct from conventional modern treatments that lean almost entirely on standard epsilon-delta limit arguments from the outset, this textbook grounds the subject in the intuitive framework of infinitesimals, justified by Abraham Robinson's hyperreal number system, while simultaneously bridging these ideas to standard limit formulations and computational computer algebra tools. The book has 142 pages, 106 illustrations, and 154 exercises that were adapted to work with an AI tutor that tracks your solution process, corrects your intermediary work, and provides hints grounded in the material you’ve already learned. Read the textbook with an AI tutor: chapterpal.com/ebook/a0e84c4… Table of contents: 1. Rates of Change - 1.1. Change in discrete steps * 1.1.1 Two sides of the same coin * 1.1.2 Some guesses - 1.2. Continuous change * 1.2.1 A derivative * 1.2.2 Properties of the derivative * 1.2.3 Higher-order polynomials * 1.2.4 The second derivative - 1.3. Applications * 1.3.1 Maxima and minima * 1.3.2 Propagation of errors - Problems 2. To infinity — and beyond! - 2.1. Infinitesimals - 2.2. Safe use of infinitesimals - 2.3. The product rule - 2.4. The chain rule - 2.5. Exponentials and logarithms * 2.5.1 The exponential * 2.5.2 The logarithm - 2.6. Quotients - 2.7. Differentiation on a computer - Problems 3. Limits and continuity - 3.1. Continuity * 3.1.1 The intermediate value theorem * 3.1.2 The extreme value theorem - 3.2. Limits - 3.3. L'Hôpital's rule - 3.4. Another perspective on indeterminate forms - 3.5. Limits at infinity - 3.6. Generalizations of l'Hôpital's rule * 3.6.1 Multiple applications of the rule * 3.6.2 The indeterminate form $\infty/\infty$ * 3.6.3 Limits at infinity - Problems 4. Integration - 4.1. Definite and indefinite integrals - 4.2. The fundamental theorem of calculus - 4.3. Properties of the integral - 4.4. Applications * 4.4.1 Averages * 4.4.2 Work * 4.4.3 Probability - Problems 5. Techniques - 5.1. Newton's method - 5.2. Implicit differentiation - 5.3. Methods of integration * 5.3.1 Change of variable * 5.3.2 Integration by parts * 5.3.3 Partial fractions * 5.3.4 Integrals that can't be done - Problems 6. Improper integrals - 6.1. Integrating a function that blows up - 6.2. Limits of integration at infinity - Problems 7. Sequences and Series - 7.1. Infinite sequences - 7.2. Infinite series - 7.3. Tests for convergence - 7.4. Taylor series - Problems 8. Complex number techniques - 8.1. Review of complex numbers - 8.2. Euler's formula - 8.3. Partial fractions revisited - Problems 9. Iterated integrals - 9.1. Integrals inside integrals - 9.2. Applications - 9.3. Polar coordinates - 9.4. Spherical and cylindrical coordinates - Problems 10. Detours * 10.1.1 Formal definition of the tangent line * 10.1.2 Derivatives of polynomials * 10.1.3 Details of the proof of the derivative of the sine function * 10.1.4 Formal statement of the transfer principle * 10.1.5 Is the transfer principle true? * 10.1.6 The transfer principle applied to functions * 10.1.7 Proof of the chain rule * 10.1.8 Derivative of $e^x$ * 10.1.9 Proofs of the generalizations of l'Hôpital's rule * 10.1.10 Proof of the fundamental theorem of calculus * 10.1.11 The intermediate value theorem * 10.1.12 Proof of the extreme value theorem * 10.1.13 Proof of the mean value theorem * 10.1.14 Proof of the fundamental theorem of algebra 11. Answers and solutions 12. Photo Credits 13. References and Further Reading * 13.1.1 Further Reading * 13.1.2 References 14. Reference - 14.1. Review * Algebra * 14.1.1 Geometry, area, and volume * 14.1.2 Trigonometry with a right triangle * 14.1.3 Trigonometry with any triangle - 14.2. Hyperbolic functions - 14.3. Calculus * 14.3.1 Rules for differentiation * 14.3.2 Integral calculus * 14.3.3 Table of integrals
234
A new book and see below how it was obtained!
Ok, this is huge. This awesome textbook didn't exist until yesterday. Well, it existed in Spanish only for 8 years wasn't published in English or just translated into English. So, I took it, used my super accurate PDF to markdown converter of my own making, and then used Codex to translate the book. And not just text, but all illustrations as well where diagrams or labels were in Spanish. Then I also tasked Codex to compare illustrations side by side to make sure that they were translated correctly. I also converted all exercises into those that could be worked through with an AI tutor that guides but doesn't solve the exercise for the reader. Microprocessors: Fundamentals and Applications—Embedded Design with Interactive Simulations by Carlos Valdivieso and Ronald David Solís Mesa (2018). This textbook provides a foundational treatment of microprocessor architecture, assembly language programming, and embedded microcontroller systems for engineering students, hardware developers, and computer science students. It assumes that readers possess basic familiarity with digital logic—such as registers, flip-flops, and logic gates—along with introductory experience in high-level computer programming. Across its scope, the text balances theoretical computer organization with practical hardware interfacing, centering on two classic processing models: the Intel x86 architecture and the 8051 microcontroller family. The book has 493 pages, 348 illustrations, and 83 AI-tutor-enabled exercises and activities. OMG you should read this book with an AI tutor: chapterpal.com/ebook/5b29c33… Just think about it: If you don't speak Spanish, you would never be able to read such an awesome book if it wasn't for ChapterPal! 🤓 Table of contents: Introduction to Microprocessors - 1.1. Microcomputer - 1.2. Evolution of Intel Microprocessors * 1.2.1. Intel 4004 * 1.2.2. Intel 8008 * 1.2.3. Intel 8080 * 1.2.4. Intel 8085 * 1.2.5. Intel 8086/8088 * 1.2.6. Intel 80286 * 1.2.7. Intel 80386 * Intel 80386sx * 1.2.8. Intel 80486 * 80486DX Microprocessor * 1.2.9. Intel Pentium * 1.2.10. Intel Pentium Pro * 1.2.11. Intel Pentium 2 * Intel Pentium 2 XEON * 1.2.12. Intel Pentium 3 * 1.2.13. Intel Pentium 4 - 1.3. Conceptual Views of Selected Microprocessors * 1.3.1. 80486 Microprocessor * 1.3.2. Pentium Microprocessor * 1.3.3. Pentium Pro Microprocessor * 1.3.4. Pentium II–Pentium III–Pentium IV Microprocessors - 1.4. Evolution of Intel Microprocessors - 1.5. Intel Core Duo - 1.6. Intel Core i3 - 1.7. Intel Core i5 - 1.8. Intel Core i7 - 1.9. Microcomputer - 1.10. Main Memory * 1.10.1. Main Memory * 1.10.2. Secondary Memory * 1.10.3. Buses - 1.11. 8085 Microprocessor * 1.11.1. Common Operations - 1.12. Instruction Cycle * 1.12.1. Example: `LDA “address”` - 1.13. Instruction Cycle Without Pipelining * 1.13.1. Improving the Instruction Cycle * 1.13.2. Multistage Pipelines - 1.14. Instruction Cycle with Pipelining * 1.14.1. Superscalar Architecture - 1.15. 8088 Physical Memory - 1.16. 8086 Physical Memory - 1.17. 80286 Physical Memory - 1.18. 80386 Physical Memory - 1.19. 8086 Microprocessor: Internal Architecture - 1.20. 80286 Microprocessor: Internal Architecture - 1.21. 80386DX Microprocessor: Internal Architecture * 1.21.1. Features - 1.22. Reading: Architecture of the 8086 Microprocessor * 1.22.1. Microprocessor Architecture * 1.22.2. Importance of Assembly Language * 1.22.3. History of Processors * 1.22.4. Memory Management Data Addressing Modes - 2.1. Real-Mode Memory Address Space - 2.2. Programming Model: 8086 = Pentium 4 - 2.3. Memory Segmentation - 2.4. Instruction Pointer and General-Purpose Registers * 2.4.1. `IP` Pointer * 2.4.2. General-Purpose Registers (Data Registers) * 2.4.3. General-Purpose Registers - 2.5. Pointers and Index Registers - 2.6. Flags Register - 2.7. Physical Address in Real Mode * 2.7.1. Segment Override Prefix - 2.8. Stack - 2.9. Input/Output Address Space (Real Mode) - 2.10. XX86 Instruction Set - 2.11. Data Addressing Modes * 2.11.1. Register Addressing * 2.11.2. Immediate Addressing * 2.11.3. Direct Addressing * 2.11.4. Indirect Addressing * 2.11.5. Base-Relative Addressing * 2.11.6. Relative Indexed Addressing * 2.11.7. Relative Base-Plus-Index Addressing * 2.11.8. Scaled-Index Addressing - 2.12. Program Memory Addressing Modes (Jump Instructions) * 2.12.1. Program Memory Addressing Modes * 2.12.2. Jump Instructions of the 8086 Microprocessor * 2.12.3. DEBUG Flag Notation * 2.12.4. The `LOOP` Instruction * 2.12.5. Repeat–Until Structure Instruction Set - 3.1. Instruction Set * 3.1.1. Data Movement Instructions * 3.1.2. `MOVZX` * 3.1.3. `MOVSX` * 3.1.4. Data Movement * 3.1.5. Stack Instructions * 3.1.6. Flag Instructions - 3.2. Arithmetic Instructions * 3.2.1. `ADD destination, source` * 3.2.2. `SUB destination, source` * 3.2.3. `NEG reg/mem` * 3.2.4. Arithmetic Expressions * 3.2.5. `ZF` and `SF` Flags: Examples * 3.2.6. `CF` Flag * 3.2.7. `OF` Flag (Signed Arithmetic) * 3.2.8. Arithmetic Instruction Examples - 3.3. BCD Arithmetic * 3.3.1. `DAA`: Decimal Adjust After Addition * 3.3.2. `DAS`: Decimal Adjust After Subtraction - 3.4. ASCII Arithmetic * 3.4.1. `AAA`: ASCII Adjust After Addition * 3.4.2. `AAS`: ASCII Adjust After Subtraction * 3.4.3. Multiplication * 3.4.4. `AAM`: ASCII Adjust After Multiplication * 3.4.5. Division * 3.4.6. `AAD`: ASCII Adjust Before Division - 3.5. Logical Instructions * 3.5.1. Example: * 3.5.2. `AND` Applications * 3.5.3. `OR` Applications * 3.5.4. Converting Data * 3.5.5. `XOR` Application - 3.6. Shift Instructions - 3.7. Rotate Instructions - 3.8. Shift Instructions: Permitted Operands - 3.9. Double-Precision Shift Instructions - 3.10. Double-Precision Shift Instructions: Permitted Operands - 3.11. Macros * 3.11.1. Macro: Cursor * 3.11.2. Macro: Display * 3.11.3. Macro: CLEAR_SCREEN - 3.12. Directives: `.LALL`, `.SALL`, `.XALL` * 3.12.1. Local Variables in a Macro * 3.12.2. LOCAL Directive * 3.12.3. Data Strings * 3.12.4. Storing a Data String * 3.12.5. Reading a Data String * 3.12.6. Comparing Data Strings * 3.12.7. Scanning a Data String Assembly Language: Basic Fundamentals - 4.1. Program Lines * 4.1.1. Instruction Syntax * 4.1.2. Syntax of Pseudo-Instructions or Directives * 4.1.3. Integer Constants: Examples * 4.1.4. Character and String Constants * 4.1.5. Real Constants * 4.1.6. Integer Expressions * 4.1.7. Integer Expression Examples - 4.2. Identifiers * 4.2.1. Examples of Valid Identifiers - 4.3. Directives * 4.3.1. MASM Data Directives * 4.3.2. `BYTE` and `SBYTE` Examples * 4.3.3. Character String * 4.3.4. The `DUP` Operator * 4.3.5. `WORD` and `SWORD` * 4.3.6. `DWORD` and `SDWORD` * 4.3.7. `QWORD` and `TBYTE` * 4.3.8. `REAL4`, `REAL8`, and `REAL10` * 4.3.9. Example: Addition and Subtraction * 4.3.10. Addition and Subtraction Example Using Variables * 4.3.11. Symbolic Constants * 4.3.12. The `=` Directive * 4.3.13. Examples: * 4.3.14. Calculating Array Sizes * 4.3.15. `EQU` Directive * 4.3.16. Examples * 4.3.17. More Directives * 4.3.18. `PROC`–`ENDP` and `END` * 4.3.19. `SEGMENT`–`ENDS` * 4.3.20. `SEGMENT` Directive Attributes * 4.3.21. `ORG` and `ASSUME` - 4.4. Memory Organization * 4.4.1. Simplified Segment Directives - 4.5. Memory Models Interrupts in the PC - 5.1. Definition - 5.2. Interrupt Mechanism - 5.3. Software Interrupts - 5.4. The PC Interrupt Vector Table - 5.5. Interrupt Vector Table and Interrupt Types - 5.6. Interrupts in the PC * 5.6.1. Operation of `INT` and `IRET` * 5.6.2. Internal Interrupts or Exceptions: * 5.6.3. Maskable Interrupts - 5.7. Interrupt Processing: Summary * 5.7.1. Retrieving an Interrupt Vector * 5.7.2. Installing an Interrupt Vector BIOS and MS-DOS Functions - 6.1. DOS–BIOS Interface * 6.1.1. ROM BIOS * 6.1.2. `INT 10H` Functions * 6.1.3. Text-Mode Display * 6.1.4. Attribute Byte - 6.2. MS-DOS Subroutines * 6.2.1. `INT 21H` Functions - 6.3. System Resources: DOS and BIOS Services * 6.3.1. Program Termination * 6.3.2. Keyboard Status * 6.3.3. Keyboard Character Input * 6.3.4. Reading a Program Line * 6.3.5. Screen Character Output * 6.3.6. Displaying a String on the Screen * 6.3.7. Setting a New Interrupt Vector * 6.3.8. Obtaining an Interrupt Number * 6.3.9. Positioning the Cursor * 6.3.10. Writing a Character at the Cursor Position * 6.3.11. Reading the Character and Attribute at the Current Cursor Position * 6.3.12. Writing a Character and Attribute at the Current Cursor Position The 8051/8052 Microcontroller and Its Derivatives - 7.1. Introduction - 7.2. Microcontroller: - 7.3. Microprocessor vs. Microcontroller * 7.3.1. Three Criteria for Choosing a Microcontroller - 7.4. Block Diagram - 7.5. Comparing Members of the 8051 Family - 7.6. Block Diagrams - 7.7. 8051 Pin Description * 7.7.1. 8051 Pins - 7.8. XTAL Connection for the 8051 - 7.9. XTAL Connection for an External Clock Source - 7.10. Reset Values of Selected 8051 Registers: - 7.11. Power-On Reset Circuit - 7.12. Power-On Reset Without Bounce - 7.13. I/O Port Pins * 7.13.1. Registers Memory Organization - 8.1. Program Memory - 8.2. Memory Expansion - 8.3. Data Memory * 8.3.1. Internal RAM - 8.4. Special Function Registers (SFRs) - 8.5. Internal RAM Layout in the 8051 Microcontroller - 8.6. Basic Registers * 8.6.1. Some Simple Instructions - 8.6.1. Some Simple Instructions * 8.6.2. `ADD A`,Source ;A<-A+SOURCE * 8.6.3. `SUBB A`,source;A<-A-source-CY * 8.6.4. `ADDC A`,source ;A<-A+source+CY - 8.7. Program Memory in the 8051 Family - 8.8. 8051 `PSW` Status Register - 8.9. Instructions That Affect Flags Instruction Set - 9.1. Data Movement Instructions * 9.1.1. `MOV`: Move Memory * 9.1.2. `MOVC`: Move from Code Memory * 9.1.3. `MOVX`: Move from Extended Memory * 9.1.4. `POP`: Remove a Value from the Stack * 9.1.5. `PUSH`: Place a Value on the Stack - 9.2. Arithmetic and Logical Instructions * 9.2.1. `ADD`: Add to the Accumulator * 9.2.2. `ADDC`: Add to the Accumulator with Carry * 9.2.3. `ANL`: Bitwise `AND` * 9.2.4. `CLR`: Clear Register * 9.2.5. `CPL`: Complement Register * 9.2.6. `DA`: Decimal Adjust * 9.2.7. `DEC`: Decrement Register * 9.2.8. `INC`: Increment Register * 9.2.9. `ORL`: Bitwise `OR` * 9.2.10. `RL`: Rotate Accumulator Left * 9.2.11. `RLC`: Rotate Accumulator Left Through Carry * 9.2.12. `RR`: Rotate Accumulator Right * 9.2.13. `RRC`: Rotate Accumulator Right Through Carry * 9.2.14. `SETB`: Set Bit to 1 * 9.2.15. `SUBB`: Subtract from the Accumulator with Borrow * 9.2.16. `SWAP`: Swap Accumulator Nibbles * 9.2.17. `XCH`: Exchange Bytes * 9.2.18. `XCHD`: Exchange Digits * 9.2.19. `XRL`: Bitwise Exclusive `OR` - 9.3. Multiplication and Division Instructions * 9.3.1. `DIV`: Divide the Accumulator by B * 9.3.2. `MUL`: Multiply the Accumulator by B - 9.4. Jump Instructions * 9.4.1. `AJMP`: Absolute Jump * 9.4.2. `CJNE`: Compare and Jump if Not Equal * 9.4.3. `DJNZ`: Decrement Register and Jump if Not Zero * 9.4.4. `JB`: Jump if Bit Is 1 * 9.4.5. JBC: Jump if Bit Is 1 and Clear the Bit * 9.4.6. `JC`: Jump if Carry * 9.4.7. `JMP`: Jump to Address * 9.4.8. `JNB`: Jump if Bit Is 0 * 9.4.9. `JNC`: Jump if No Carry * 9.4.10. `JNZ`: Jump if Accumulator Is Not Zero * 9.4.11. `JZ`: Jump if Accumulator Is Zero * 9.4.12. `LJMP`: Long Jump * 9.4.13. `SJMP`: Short Jump - 9.5. `CALL` and RETURN Instructions * 9.5.1. `ACALL`: Absolute Call * 9.5.2. `LCALL`: Long Call * 9.5.3. `RET`: Return from Subroutine * 9.5.4. `RETI`: Return from Interrupt - 9.6. Miscellaneous I/O Programming and Special Resources - 10.1. Hardware Structure * 10.1.1. Ports: `P0`, `P1`, `P2`, and `P3` * 10.1.2. Values After RESET - 10.2. Programming an I/O Port * 10.2.1. Port 1: `P1` * Hardware Structure of `P1`–`P3` * A `P1` Pin - 10.3. Hardware Structure of an I/O Pin * 10.3.1. Writing “1” to Output Pin `P1`.X * 10.3.2. Writing “0” to Output Pin `P1`.X * 10.3.3. `P1` as an Output * 10.3.4. Reading the Pin and Latch of PX * 10.3.5. Reading “High” at an Input Pin * 10.3.6. Reading “Low” at an Input Pin * 10.3.7. `P1` as an Input (Reading from the Port) * 10.3.8. Instructions for Reading an Input Port * 10.3.9. Latch - 10.4. Read–Modify–Write Operation * 10.4.1. Read–Modify–Write Instructions * 10.4.2. `P1` (Reading the Latch) * 10.4.3. Other Pins * 10.4.4. `P0` (Pins 32–39) * `P0`'s Dual Function * A `P0` Pin: Open Drain * `P0` with Pull-Up Resistors * `P0`'s Dual Function * 10.4.5. Reading ROM (1/2) * 10.4.6. Reading ROM (2/2) * 10.4.7. The ALE Pin * 10.4.8. `P2` (Pins 21–28) * 10.4.9. `P3` (Pins 10–17) * 10.4.10. Alternate Functions of `P3` - 10.5. 4x4 Matrix Keypad * 10.5.1. Matrix Keypad * 10.5.2. Matrix Keypad Connected to a PIC's RB Port * 10.5.3. Relationship Between Key Order and Hexadecimal Digits * 10.5.4. Scanning a 4x4 Keypad - 10.6. LCD Modules * 10.6.1. Features * 10.6.2. LCD: Power * 10.6.3. LCD Display with a 4-Bit Interface * 10.6.4. 2x16 LCD * 10.6.5. LM044L Model (4x20 LCD) * 10.6.6. LCD: Pins * 10.6.7. HD44780 LCD Commands * 10.6.8. Meaning of the Symbols * 10.6.9. Pin Assignments for a 2x16 LCD Module * 10.6.10. Register Selection * 10.6.11. Types of Commands or Instructions * 10.6.12. Microcontroller Interface * 10.6.13. LCD Control * 10.6.14. Control Lines: EN, R/W, RS * 10.6.15. HD44780 LCD Command Descriptions * 10.6.16. LCD: Character Positions in DDRAM * 10.6.17. Virtual and Physical Display * 10.6.18. LCD Display with a 4-Bit Interface Timers - 11.1. Timers/Counters * 11.1.1. Timer * 11.1.2. Event Counter - 11.2. Timer - 11.3. Counter * 11.3.1. Registers Used with T0 and T1 * 11.3.2. Basic Timer Registers - 11.4. Timer/Counter Registers * 11.4.1. Mode Register: `TMOD` - 11.5. C/T (Counter/Timer) - 11.6. GATE * 11.6.1. GATE Example - 11.7. `TCON` Register * 11.7.1. Equivalent Instructions for the `TCON` Control Register - 11.8. M1, M0 - 11.9. Timer 0: Mode 0 - 11.10. Timer 0: Mode 1 - 11.11. Timer 0: Mode 2 - 11.12. Timer 0: Mode 3 - 11.13. Timer 0: Mode 1 * 11.13.1. Steps for Mode 1 * 11.13.2. Calculating a Delay with XTAL = 12 MHz - 11.14. Timer Values - 11.15. Generating Long Delays - 11.16. Timer 0: Mode 0 - 11.17. Timer 0: Mode 2 * 11.17.1. Steps for Mode 2 - 11.18. Counters * 11.18.1. `P3` Pins Used with Timers 0 and 1 * 11.18.2. Counter: Mode 1 - 11.19. Counter: Mode 2 - 11.20. GATE=1 in `TMOD` * 11.20.1. Example with GATE=1 Interrupts - 12.1. `IE` Register (Interrupt Enable) - 12.2. 8051 Interrupt Vectors - 12.3. External Interrupts * 12.3.1. Low-Level-Triggered External Interrupt * 12.3.2. Steps Taken During an External Interrupt: - 12.4. `TMOD` Register - 12.5. Priority Register: `IP` - 12.6. Interrupt Priorities Serial Communication - 13.1. Asynchronous Serial Communication - 13.2. Asynchronous Serial Communication Protocol - 13.3. Null Modem - 13.4. Asynchronous Serial Data Transmission - 13.5. Serial Communication Format * 13.5.1. Rates in bps * 13.5.2. Relationship Between Crystal Frequency and Baud Rate (bps) - 13.6. `SBUF` Register - 13.7. `SCON` Register - 13.8. Doubling the Baud Rate * 13.8.1. Baud Rate with `SMOD`=0 * 13.8.2. Baud Rate with `SMOD`=1 * 13.8.3. Comparing Baud Rates with `SMOD`=0 and `SMOD`=1 DAC and ADC Conversion - 14.1. DAC and ADC * 14.1.1. Digital-to-Analog Conversion: DAC * 14.1.2. Conversion Resolution - 14.2. Analog-to-Digital Conversion: ADC - 14.3. ADC0804 * 14.3.1. Features * 14.3.2. Successive-Approximation ADC * 14.3.3. ADC0804 with a Microprocessor * 14.3.4. ADC0804 Analog Inputs * 14.3.5. Clock Signal Generation * 14.3.6. Output Enable and INTR Reset - 14.4. Successive-Approximation Analog-to-Digital Converter - 14.5. ADC0804 with an AT89C51 - Features - Description - Ordering Information - Pinouts - Pin Description - Functional Diagram - Functional Description * Data Bus Buffer * Read/Write and Control Logic * Group A and Group B Controls - Ports A, B, and C - Operational Description * Mode Selection * Single Bit Set/Reset Feature (Figure 5) * Interrupt Control Functions * Operating Modes - Operating Modes * Mode 2 (Strobed Bi-Directional Bus I/O) * Mode Definition Summary * Special Mode Combination Considerations * Current Drive Capability - Reading Port C Status (Figures 15 and 16) - Applications of the 82C55A - Electrical Specifications * Electrical Specifications - AC Electrical Specifications - Timing Waveforms - AC Test Circuit - AC Testing Input, Output Waveforms - Burn-In Circuits - Die Characteristics - Metallization Mask Layout - Dual-In-Line Plastic Packages (PDIP) - Plastic Leaded Chip Carrier Packages (PLCC) - Ceramic Dual-In-Line Frit Seal Packages (CERDIP) * Sales Office Headquarters - Ceramic Leadless Chip Carrier Packages (CLCC) Stepper Motor - 15.1. Unipolar Stepper Motor and Its Control * 15.1.1. Types of Stepper Motors * 15.1.2. Unipolar Stepper Motor * 15.1.3. Controlling a Unipolar Stepper Motor * 15.1.4. Conceptual Model of a Unipolar Stepper Motor * 15.1.5. Single-Phase Wave-Drive Sequence * 15.1.6. Two-Phase High-Torque Sequence * 15.1.7. Half-Step Sequence * 15.1.8. Identifying Stepper Motors * 15.1.9. Stepper Motor Ratings - 15.2. Bipolar Stepper Motor and Its Control * 15.2.1. Introduction * 15.2.2. Conceptual Model of a Bipolar Stepper Motor * 15.2.3. Reversing the Voltage Across Each Winding * 15.2.4. Conceptual Model of a Bipolar Stepper Motor * 15.2.5. Clockwise Wave-Drive Sequence * 15.2.6. Single-Phase Wave Drive * 15.2.7. Two-Phase High-Torque Drive * 15.2.8. Half-Step Sequence * 15.2.9. Identifying Stepper Motors * 15.2.10. Using a Unipolar Motor as a Bipolar Motor - References and Further Reading * x86 Processor Architecture * Assembly Programming and Instruction Sets * Interrupts and DOS System Services * 8051 Microcontrollers * Timers * Serial Communication * Analog-to-Digital Conversion * Programmable Peripheral Interfaces Microprocessor Lab Exercises - 16.1. Lab 1: Familiarization with x86 Processor Architecture * 16.1.1. Objectives * 16.1.2. Introduction * 16.1.3. Requirements - 16.2. APPENDIX: LAB EXERCISE 1 - 16.3. Lab Exercise 2: Data Addressing Modes * 16.3.1. OBJECTIVES * 16.3.2. INTRODUCTION * 16.3.3. REQUIREMENTS - 16.4. APPENDIX: LAB EXERCISE 2 - 16.5. Lab Exercise 3: MASM Assembler * 16.5.1. OBJECTIVES * 16.5.2. CONTENTS * 16.5.3. INTRODUCTION * 16.5.4. REQUIREMENTS - 16.6. APPENDIX: LAB EXERCISE 3 - 16.7. Lab Exercise 4: ROM BIOS and MS-DOS Functions * 16.7.1. OBJECTIVES * 16.7.2. CONTENTS * 16.7.3. INTRODUCTION * 16.7.4. REQUIREMENTS - 16.8. APPENDIX: LAB EXERCISE 4 * ANSWER THE FOLLOWING - 16.9. Lab Exercise 5: Arithmetic Instructions and String Handling * 16.9.1. OBJECTIVES * 16.9.2. CONTENTS * 16.9.3. INTRODUCTION * 16.9.4. REQUIREMENTS - 16.11. Lab Exercise 6: Basic Tutorial for the uVision4 Development Environment * 16.11.1. OBJECTIVES * 16.11.2. CONTENTS * Internal Architecture of an AT89C52-Compatible 8-Bit Microcontroller * Basic Tutorial for the uVision4 Development Environment - 16.12. APPENDIX: LAB EXERCISE 6 * Worksheet - 16.13. Lab Exercise 7: Hexadecimal Counter and Alarm System * 16.13.1. OBJECTIVES * 16.13.2. CONTENTS * Part One * Modifying `CNTHEX.ASM` into a Single-Digit BCD Counter * Part Two - 16.14. Lab Exercise 8: Timers + Interrupts * 16.14.1. OBJECTIVES * 16.14.2. CONTENTS * 16.14.3. INTRODUCTION * Part One * Part Two - 16.15. APPENDIX: LAB EXERCISE 8 * Worksheet - 16.16. Lab Exercise 9: 4x4 Matrix Keypad + Alphanumeric LCD * 16.16.1. OBJECTIVES * 16.16.2. CONTENTS - 16.17. APPENDIX: LAB EXERCISE 9 * Worksheet - 16.18. Lab Exercise 10: Serial Data Communication (Assembly Language) * 16.18.1. OBJECTIVES * 16.18.2. CONTENTS * 16.18.3. PART ONE * 16.18.4. PART TWO
179