sabre23t has described short algebraic chess notation, the shortened form of long algebraic chess notation, both of which are different from descriptive notation.
Short algebraic notation is now the commonest form of chess notation, probably because it is easiest to understand and looks more elegant.
One thing sabre23t left out was that the move number is an essential part of the notation. For example, white's move in move 4 in the game above would be 4. Qxf7++ (++ is checkmate, btw, there is no notation for double-check). To indicate Black's third move by itself, use three dots, as in 3. ... a5??
The use of exclamation marks and question marks is more for diagnostic and teaching value than anything else.
A single exclamation mark (!) denotes a very good move while a single question mark (?) indicates a blunder. A double exclamation mark (!!) is a rarely used symbol denoting truly brilliant chess moves (ala. Bobby Fischer) while a double question mark (??) indicates a gross blunder. A question mark followed by an exclamation mark (?!) is a move that is questionable but not an outright error while an exclamation mark followed by a question mark (!?) is a surprising move that appears risky.
One more thing - "e.p." is often used to indicate an en passant capture.