Andrew Koenig's Bio
Andrew Koenig's career in computing ranges from teaching programming classes at Lowell Observatory to writing the first portable implementation of printf . Andrew was a founding member of the C++ standards committee. He is the author or coauthor of three books and more than 160 magazine articles.
- Abstractions For Binary Search, Part 10: Putting It All Together
- Abstractions For Binary Search, Part 9: What Do We Need to Test?
- Abstractions for Binary Search, Part 8: What Does It Mean To Say "It Works?"
- Abstractions For Binary Search, Part 7: Choosing Test Cases
- Abstractions For Binary Search, Part 6: How On Earth Do You Test It?
- Abstractions For Binary Search, Part 5: Getting Down to Details
- Invariants for Binary Search, Part 4: Using The Improved Abstractions
- Invariants for Binary Search, Part 3: Improving Our Abstractions
- Invariants for Binary Search, Part 2: Refining The Specifications
- Invariants For Binary Search, Part 1: A Simple Example
- Loop Invariants And Testing: Often Possible, Often Difficult
- A Loop Invariant Can Be An Optimization Tool
- Using a Loop Invariant to Help Think About a Program
- Loop Invariants Abbreviate Induction Proofs
- Mathematical Induction Makes Extrapolation Accurate
- Sanity Checking By Extrapolation
- Why Testing Isn't Enough
- Why Is Software So Hard To Develop?
- A Second Try at Refactoring Dijkstra's Example
- Dijkstra's Example Simplified By Off-The-End Values: First Try
- A Classic Example That Off-The-End Iterators Can Simplify
- How To Use Reverse Iterators Without Getting Confused
- How C++ Reverse Iterators Represent Boundaries
- How To Represent Boundaries With Pointers
- Representing Ranges With Element Pointers