Cs 6505 Computability Algorithms And Complexity