How To Think About Algorithms