Puzzles in Logic, Languages and Computation