Raymond Smullyan Books

As I mentioned in my previous post, I made an impulse purchase of 7 books by Raymond Smullyan from Amazon. Six of them arrived today, the remaining one book is not published yet. Here is the list of books that came today:

The remaining book is Set Theory and the Continuum Problem.

Raymond Smullyan is a remarkable man. He is a magician, mathematician, logician, concert pianist, philosopher and world renowned author of over 20 books. Some Interesting Memories: A Paradoxical Life is his autobiography and there is a film about him called This Film Needs No Title created by documentary filmmaker Tao Ruspoli. Smullyan is 90 years old now and lives a “retired life” in the Catskill Mountains in NY.

If you haven’t read any books by Smullyan I recommend that you get a couple of them from the library and give it a try. I am sure you won’t regret it.

New Books

I got a 40% off coupon from Borders so I decided to indulge myself a bit. Unfortunately the coupon could not be used on Borders.com which meant I had only a limited choice that the stores offered. The Redmond store is a little better than other Borders stores I have been to, but still the choice of technical books is still very limited. When I get a 40% off coupon I usually try to get the higher priced books but most of the time they are not available in stores. They usually allow only one coupon per customer but it is not tracked in the system it so you can come back later when another store clerk is at the counter or even the next day (if the coupon is valid for the next day) or you can go to another store and use the same coupon (all customers get the same coupon). I took my wife with me and she has a Borders membership card too so I managed to get two books at 40% off:

The Art of Strategy: A Game Theorist’s Guide to Success in Business and Life

and

Metaprogramming Ruby

I have been reading The Art of Strategy from a copy I borrowed from library, but I loved the book so much that I thought I should have a copy of my own (I know, it goes against the philosophy of minimalism that I am trying to practice). I decided to buy the book anyway because it is a book that I will have to read multiple times. I believe it is a book worth buying. It is a book on Game Theory, a branch of applied maths, and is quite an interesting read. I have not completed reading it and when I do, I intend to post a review here. But I recommend you get a copy for yourself and start reading immediately. Borrow a copy from the library if you are not sure whether Game Theory will hold your interest.

I love Ruby. It is the programming language for programmers with aesthetic sense. The name couldn’t be more apt because you can write “beautiful code” in Ruby. But that is not Ruby’s only strength. One of the biggest selling point of Ruby is its Metaprogramming capabilities. I have played a little with Ruby and I have a few Ruby books on my shelf but I haven’t taken the effort to move my Ruby knowledge to the next level. Becoming a master in any programming language involves understanding its underlying philosophy and its strengths. Moreover it should be useful to learn metaprogramming concepts even though I may never get to program extensively in Ruby. The book has good reviews on Amazon and it looked very readable when I flipped through it in the book store. If I don’t find it very useful I can return it within 30 days – one of the best things about America :)

I have borrowed quite a few books from library recently and I think most of them are very good. More details and reviews of those books in a future post.

Algorithms in a Nutshell

Authors George Heineman, Gary Pollice and Stanley Selkow have written a very promising book – Algorithms in a Nutshell – published by O’Reilly. The authors are professors at Worcester Polytechnic Institute (WPI). The hardcopy will be available on October 21, 2008, but the book is already available on Safari.

The table of contents :

Part I: I
Chapter 1. Algorithms Matter
Section 1.1. Understand the Problem
Section 1.2. Experiment if Necessary
Section 1.3. Side Story
Section 1.4. The Moral of the Story
Section 1.5. References
Chapter 2. The Mathematics of Algorithms
Section 2.1. Size of a Problem Instance
Section 2.2. Rate of Growth of Functions
Section 2.3. Analysis in the Best, Average, and Worst Cases
Section 2.4. Performance Families
Section 2.5. Mix of Operations
Section 2.6. Benchmark Operations
Section 2.7. One Final Point
Section 2.8. References
Chapter 3. Patterns and Domains
Section 3.1. Patterns: A Communication Language
Section 3.2. Algorithm Pattern Format
Section 3.3. Pseudocode Pattern Format
Section 3.4. Design Format
Section 3.5. Empirical Evaluation Format
Section 3.6. Domains and Algorithms
Section 3.7. Floating-Point Computations
Section 3.8. Manual Memory Allocation
Section 3.9. Choosing a Programming Language
Section 3.10. References
Part II: II
Chapter 4. Sorting Algorithms
Section 4.1. Overview
Section 4.2. Insertion Sort
Section 4.3. Median Sort
Section 4.4. Quicksort
Section 4.5. Selection Sort
Section 4.6. Heap Sort
Section 4.7. Counting Sort
Section 4.8. Bucket Sort
Section 4.9. Criteria for Choosing a Sorting Algorithm
Section 4.10. References
Chapter 5. Searching
Section 5.1. Overview
Section 5.2. Sequential Search
Section 5.3. Binary Search
Section 5.4. Hash-based Search
Section 5.5. Binary Tree Search
Chapter 6. Graph Algorithms
Section 6.1. Overview
Section 6.2. Depth-First Search
Section 6.3. Breadth-First Search
Section 6.4. Single-Source Shortest Path
Section 6.5. All Pairs Shortest Path
Section 6.6. Minimum Spanning Tree Algorithms
Section 6.7. References
Chapter 7. Path Finding in AI
Section 7.1. Overview
Section 7.2. Depth-First Search
Section 7.3. Breadth-First Search
Section 7.4. A*Search
Section 7.5. Comparison
Section 7.6. Minimax
Section 7.7. NegMax
Section 7.8. AlphaBeta
Section 7.9. References
Chapter 8. Network Flow Algorithms
Section 8.1. Overview
Section 8.2. Maximum Flow
Section 8.3. Bipartite Matching
Section 8.4. Reflections on Augmenting Paths
Section 8.5. Minimum Cost Flow
Section 8.6. Transshipment
Section 8.7. Transportation
Section 8.8. Assignment
Section 8.9. Linear Programming
Section 8.10. References
Chapter 9. Computational Geometry
Section 9.1. Overview
Section 9.2. Convex Hull Scan
Section 9.3. LineSweep
Section 9.4. Nearest Neighbor Queries
Section 9.5. Range Queries
Section 9.6. References
Part III: III
Chapter 10. When All Else Fails
Section 10.1. Variations on a Theme
Section 10.2. Approximation Algorithms
Section 10.3. Offline Algorithms
Section 10.4. Parallel Algorithms
Section 10.5. Randomized Algorithms
Section 10.6. Algorithms That Can Be Wrong, but with Diminishing Probability
Section 10.7. References
Chapter 11. Epilogue
Section 11.1. Overview
Section 11.2. Principle: Know Your Data
Section 11.3. Principle: Decompose the Problem into Smaller Problems
Section 11.4. Principle: Choose the Right Data Structure
Section 11.5. Principle: Add Storage to Increase Performance
Section 11.6. Principle: If No Solution Is Evident, Construct a Search
Section 11.7. Principle: If No Solution Is Evident, Reduce Your Problem to Another Problem That Has a Solution
Section 11.8. Principle: Writing Algorithms Is Hard—Testing Algorithms Is Harder
Part IV: IV
Appendix A. Benchmarking
Section A.1. Statistical Foundation
Section A.2. Hardware
Section A.3. Reporting
Section A.4. Precision

Jolt Awards 2007 Finalists

The books:

General Books
  Beautiful Code Edited by Andy Oram and Greg Wilson O’Reilly
Geekonomics: The Real Cost of Insecure Software by David Rice Addison-Wesley Professional
Manage It!: Your Guide to Modern Pragmatic Project Management by Johanna Rothman Pragmatic Bookshelf
Myths of Innovation by Scott Berkun O’Reilly
Outside In Software Development by Carl Kessler and John Sweitzer IBM Press
Release It!: Design and Deploy Production-Ready Software by Michael T. Nygard Pragmatic Bookshelf
Technical Books
  Continuous Integration: Improving Software Quality and Reducing Risk By Paul Duvall, Steve Matyas, Andrew Glover Addison-Wesley Professional
Fuzzing: Brute Force Vulnerability Discovery By Michael Sutton, Adam Greene, Pedram Amini Addison-Wesley Professional
Head First SQL Your Brain on SQL—A Learner’s Guide by Lynn Beighley O’Reilly
The Rails Way by Obie Fernandez Addison-Wesley Professional
WPF Unleashed by Adam Nathan Sams Publishing
xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros Addison-Wesley Professional

The complete list is here.

Eight books for $6

This weekend I picked up 8 books for $6 from the King County library used book sale. One of the best deals I ever got :-)

This deal is all the more wonderful because of a coincidence. I had been to Borders on saturday and had picked up The Mother Tongue by Bill Bryson but decided against it at the last moment while standing in the queue to pay for it. That saved me $13.50 because I got it for $0.50 the next day :-)