This course gives a broad introduction to the current methods of formal verification including algorithmic methods, model checking and automated theorem proving from theoretical principles to practical tools. Also, through this course it will introduce prepositional and predicate logic with respect to their principles.