Introduction to Computational Reasoning