Fundamentals of Logic and Computation