Introduction to Classical and Quantum Computing