The objective of this course is to offer a comprehensive introduction of the methods and techniques in Computational Logic. Although the course has a formal background, it includes a strong practical part in using automated tools and with a review of applications.