This document discusses the limits of computation. It distinguishes between intractable problems that take an impractical amount of time to solve versus truly unsolvable problems. It describes different complexity classes based on how fast the number of operations grows with input size. Hard problems like the traveling salesman problem are inherently difficult even with faster computers. Reductions show relationships between problem difficulties. The halting problem and incompleteness theorems prove certain logical and mathematical questions cannot be answered algorithmically.