Quantum computation is a remarkable subject based on one of the great computational discoveries that computers based on quantum mechanics are exponentially powerful. This course aims to make this cutting-edge material broadly accessible to undergraduate students, including computer science majors who do not have any prior exposure to quantum mechanics. The course starts with a simple introduction to the fundamental principles of quantum mechanics using the concepts of qubits (or quantum bits) and quantum gates. This treatment emphasizes the paradoxical nature of the subject, including entanglement, non-local correlations, the no-cloning theorem and quantum teleportation. The course covers the fundamentals of quantum algorithms, including the quantum fourier transform, period finding, Shor's quantum algorithm for factoring integers, as well as the prospects for quantum algorithms for NP-complete problems.
I took this the spring of 2013, and the implementation problems described by the other reviewers had been solved.
I'm a physicist, so I came in knowing a bit about QM, but I learned a tremendous amount in this class, both from the lectures, which were well organized and presented, and the homework and exams, which worked to stretch my mind around the new concepts.
Whether or not you've been exposed to quantum mechanics, prepare to have your mind blown!
I completely agree with the criticisms, but I reach a different conclusion. This was one of the most thought-provoking and stimulating subjects I have studied. It was a nice intro to quantum mechanics and a deeper look at the reality of one of the more over-hyped and poorly understood emerging technologies. I felt that the subject matter and the talented Prof overcame the shortcomings of the implementation.
The course was not well done in the initial implementation (Summer 2012). Lectures and problem sets were late. Lectures weren't very good. There was a lot of talking, not enough on the slides. Problem sets were often confusing and weren't very insightful. In the last lecture, the professor explained that he didn't have the time he initially wanted to spend on the course, and that he intends to make a lot of improvements. The course does need a lot of work, but hopefully in the next iteration, it is much better.