17 Nov 2005: Here is a link to the Craig's
presentation on thermodynamics.
12 Nov 2005: With help from Thorsten Altenkirch and Roshan, here is
something that is much more correct than the previous solution to A5 :-) It
is very close though requiring only a small adjustement to the solution we
had earlier. This new solution is in the file Rev.hs. Please take a look and either do a proof of
correctness or find a counterexample.
10 Nov 2005: I posted the "last" assignment which consists of fixing
the problems in A5 and finding a "good" definition for orthogonality. It is
rather open-ended as you can tell.
9 Nov 2005: Let's go ahead and cancel lecture on 22 Nov before the
break.
8 Nov 2005: Here is the code for today's
lecture. We introduce three classes of classical (total) functions:
reversible, injective, and arbitrary closed under sequential, parallel, and
conditional composition. We then show two things: (i) an arbitrary function
can be realized by a reversible function with additional inputs and extra
garbage output, and (ii) an injective function can be realized by a
reversible function with additional inputs and no extra garbage
output. One of the possible projects would be to collaborate with John on
turning this into a paper with all the proofs included.
7 Nov 2005: If you did not select a topic for your project, please let
me know so that I can update the web page with your assignment.
6 Nov 2005: The announcement of 4 Nov 2005 about my solution to
assignment A5 says that I have provided a proof outline and that you should
either complete it or provide a counterexample. Two of your colleagues have
provided counterexamples to the first claim in the proof outline. The options
now are either to provide counterexamples or a proof for the second claim or
even better to give a real solution to the assignment that is provably
correct.
4 Nov 2005: Here is my solution to assignment A5: Haskell code and proof
outline. Instead of posting a new assignment, please think about the
proof outline, and either finish it or provide a counterexample if you find
problems.
3 Nov 2005: No class. It was determined late last night that today
will be one of the two big Muslim holidays (it depends on the moon
sighting). I apologize for the short notice but there will be no class today.
27 Oct 2005: Matt kindly provided a
gzipped tar file of the code he used in class, some notes, and a running
(classical) implementation of Shor's algorithm.
26 Oct 2005: I made another small change to the description of
Assignment A5 (asking for a proof that your construction is actually
reversible).
25 Oct 2005: I made a small change to the description of Assignment
A5.
23 Oct 2005: Assignment A5 is posted. It is due on Thursday 3 Nov.
23 Oct 2005: Michael has a beautiful solution to
Assignment 4. Please study it in detail.
15 Oct 2005: Yet another short assignment (A4) is posted. It is due on
Thursday 20 Oct.
5 Oct 2005: Another short assignment (A3) is posted. It is due on
Thursday 13 Oct.
26 Sep 2005: I have changed the due date for Assignment 2 to 4 Oct
2005.
23 Sep 2005: Here is an improved version of the code abstracting both
classical and quantum circuits: Circuits2.hs. I
plan on discussing this code on Tuesday 27 Sep in class.
22 Sep 2005: I have posted an initial list of
presentations. Please remember that everyone taking the class for credit
is expected to make at least one presentation. Please contact me to let me
know your choice or to suggest a presentation on another topic.
22 Sep 2005: qcl
is now installed on the CS Linux machines.
22 Sep 2005: Here is the Haskell code for today's lecture: Circuits.hs.
21 Sep 2005: A fairly short Assignment 2 has been posted. It is due
next week.
20 Sep 2005: Given the number of questions about the connection
between Haskell type classes and OO, I thought it might be a good idea to
have one of you read Object-Oriented
Style Overloading for Haskell and make a presentation in class about the
topic. Please let me know if you are interested in making the presentation. A
more recent and more sophisticated paper that might be helpful is Haskell's overlooked
object system.
7 Sep 2005: Please read up to Section 3.4 of Selinger's paper:
Towards a Quantum Programming Language.
6 Sep 2005: Here is the Haskell code for vectors
and linear operations on vectors. Part of this code was discussed in lecture
today; the rest will be discussed on the 8th.
1 Sep 2005: Here is the Haskell code for
classical reversible circuits.