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 The style is appropriate for both undergraduate and graduate classes. Students and professionals interested in theoretical computation and language models for computer science.