Quantum Computing Fundamentals