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 book!
3D Game Development with LWJGL 3 by Antonio Hernández Bejarano (2016) is now in @ChapterPal's collection of open textbooks. LWJGL (Lightweight Java Game Library) is an open-source software library that provides Java developers access to high-performance cross-platform libraries, primarily used for game development and graphics programming. It acts as a low-level bridge (or "wrapper") between Java and native C/C++ libraries. Instead of providing a full game engine, it gives you the raw tools to talk directly to your computer's hardware. The book presents a hands-on path from a basic Java window to the core techniques of 3D game development with OpenGL and LWJGL 3, helping readers understand graphics programming by building a game engine from the ground up. Read the book with an AI tutor: chapterpal.com/book/b3399ca0…
1
166
New course notes!
The AI Agents for Beginners course notes by Microsoft Cloud Advocates is now on @ChapterPal. The course notes present a hands-on, structured path from agent fundamentals to building, testing, and deploying AI agents, with runnable notebooks and practical guidance on tools, retrieval, evaluation, observability, and safety. Read the course notes with an AI tutor: chapterpal.com/book/e13731d6…
2
267
New course notes!
Web Development for Beginners course notes by Microsoft Cloud Advocates are now available on @ChapterPal. The course presents a beginner-friendly, project-based path through HTML, CSS, and JavaScript that helps learners build practical web skills across 24 lessons without requiring complex setup. Read the notes with an AI tutor: chapterpal.com/book/6ab7fc3c…
1
168
A new book!
Building Secure and Reliable Systems by Heather Adkins, Betsy Beyer, Paul Blankinship, Piotr Lewandowski, Ana Oprea, Adam Stubblefield (2020) is now in @ChapterPal's collection of open textbooks. It's an absolute must-read from Google's experts. The book presents a practical, organization-wide approach to designing, operating, and recovering systems that are both secure and reliable, showing how shared practices can prevent failures and limit damage when they occur. Read Building Secure and Reliable Systems with an AI tutor: chapterpal.com/book/60fa841a…
117
A new book!
The Concise TypeScript Book by Simone Poggiali (2023) is now in @ChapterPal's collection of open textbooks. TypeScript is a free, open-source programming language developed by Microsoft that builds on top of JavaScript by adding static typing. It is considered a "superset" of JavaScript, meaning that any valid JavaScript code is also valid TypeScript code. Because web browsers and servers cannot run TypeScript directly, a compiler transpiles (converts) the code back into clean, standard JavaScript before it is deployed. Essentially, TypeScript acts as a strict development-time safety net to make writing complex applications smoother. The textbook presents a practical, concise guide to TypeScript’s type system, compiler behavior, setup, and modern JavaScript support, helping developers write safer code and use TypeScript effectively in real projects. Learn TypeScript with an AI tutor: chapterpal.com/book/94cd1b41…
1
1
139
A new book!
Elements of Kotlin by Mark L. Murphy (2021) is now in @ChapterPal's collection of open textbooks. Kotlin is a modern, statically typed, cross-platform programming language developed by JetBrains. It is officially designated by Google as the preferred language for Android app development, though it is widely used across backend, web, and data science ecosystems. Designed as a sleek, practical alternative to Java, Kotlin fixes many of Java’s historic pain points while maintaining 100% interoperability with existing Java code and libraries. Learn Kotlin with this book and an AI tutor: chapterpal.com/book/d13e1d99…
1
186
A new textbook!
The Swift Programming Language (Swift 6 Edition) book by The Swift Community (2025) is now in @ChapterPal's collection of open books. Swift is a fast, safe, and modern general-purpose programming language developed by Apple. Released in 2014 as a modern replacement for Objective-C, it is the official language used to build applications for Apple ecosystems, including iOS, macOS, watchOS, tvOS, and visionOS. The book presents the official Swift 6 reference, guiding readers from core syntax and type safety to concurrency and version-by-version migration for building and maintaining modern Swift projects. Read the book and learn Swift with an AI tutor: chapterpal.com/book/e0a37f2a…
148
A new textbook!
Comprehensive Rust by Martin Geisler (2022) is now in @ChapterPal's collection of open textbooks. The book presents a practical, interactive path from Rust fundamentals to advanced topics, helping programmers understand ownership, borrowing, and the language’s safety guarantees through runnable examples. In my opinion, Rust is becoming one of the rare programming languages people will still be hired to code by hand due to its C-like efficiency and built-in safety qualities, making it the language used in mission-critical applications where no vibe-coder should be allowed. Learn Rust with an AI tutor: chapterpal.com/book/b070bb4e…
189
A new book!
Ansible for DevOps (2nd edition) by Jeff Geerling (2020) is now in @ChapterPal's collection of open technical books. Ansible is an open-source, command-line IT automation engine used for configuration management, infrastructure provisioning, application deployment, and task orchestration. Originally created by Michael DeHaan in 2012 and later acquired by Red Hat, it allows DevOps teams to manage hundreds of servers, cloud environments, and network devices simultaneously using code. This book presents a practical, updated guide to using Ansible to provision, configure, and orchestrate servers, helping developers and sysadmins replace repetitive manual work with reliable automation. 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/book/ff4c9f2d…
1
129
One more Kubernetes textbook.
One more Kubernetes book, Kubernetes Mastery Handbook by Shaik Dasthagiri (2026), is on @ChapterPal. It presents a step-by-step path from Kubernetes fundamentals to CKA preparation, pairing plain-language explanations with production YAML, hands-on labs, troubleshooting guidance, and exam-focused practice. Read with an AI tutor: chapterpal.com/book/0f8c4857… (The math- and algorithm-driven book covers on ChapterPal is a special form of art. Don't you think?)
125
A new textbook!
Kubernetes System Design in Small Easy Steps by Tiziano Citro, Daniele De Vinco, and Vittorio Scarano (2026) is now in @ChapterPal's collection of open textbooks. The books is a hands-on Kubernetes workbook that links each configuration choice to system-design requirements, helping students and practitioners move from isolated commands to planning and building complete cloud-native systems. 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/book/eb46acac…
There's a new version of this post
1
65
A new five-volume series of textbooks!
Another awesome release on @ChapterPal: Lessons in Industrial Automation by Tony R. Kuphaldt (2018). Lessons in Industrial Automation by Tony R. Kuphaldt is a series of five textbook volumes for instrument technicians, process control specialists, automation engineers, and instructors. Requiring only basic algebra and physical intuition, it begins with fundamentals like electrical circuits, fluid mechanics, calculus, and chemistry, then moves on to measurement devices, analog and pneumatic signals, and digital networks such as Modbus and FOUNDATION Fieldbus. The book’s core covers PID control, loop tuning, and advanced control strategies, along with relay logic, PLC programming, safety systems, calibration, and cybersecurity. Through hands-on procedures, readers learn to install, calibrate, program, and troubleshoot the devices found in modern processing facilities. It deliberately excludes topics like enterprise IT, robotics, and model predictive control, focusing instead on practical instrumentation and operational technology. The five volumes altogether have 2,586 pages and 2,424 isllustrations, so veritually one illustration per page, and plenty of practical advice and real industrial settings photos. 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/book/c36fd3fc…
1
181
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
230
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
84
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
185
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
196
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!
165
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
79
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
261
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
332