This text presents the formal concepts underlying Computer Science.It starts with a wide introduction to Logic with an emphasis on reasoning and proof, with chapters on Program Verification and Prolog.The treatment of computability with Automata and Formal Languages stands out in several ways: The style is appropriate for both undergraduate and graduate classes.