Elements of Quantum Computing:History, Theories and Engineering Applications