Why does NaCl act as a catalyst for the reaction of CuSO4 + H2O + Al?
Aluminum resists corrosion in neutral or slightly off-neutral water because of the very insoluble Al2O3 film on the metal. If you break this film, it will corrode the bare metal and reform.

But if you scratch the Al and attach a cathode (a less active metal), you have a galvanic cell, and H2 can be evolved from this cathode as Al dissolves. The simplest example of this is when you put Al in H2O in contact with a drop of mercury. Scratch the Al thru the Hg; the Hg amalgamates with the Al (attaching itself as cathode), allowing H2 to be evolved as Al dissolves elsewhere. 

The experiment with CuSO4 is similar: scratch the Al; some Cu will be deposited and act as a cathode and the rest of the Al will eventually dissolve in the H2O. If you are too lazy to scratch the Al (I'm being facetious!), you can add a little Cl- ion to the H2O, which will begin corrosion of the Al, deposition of Cu, galvanic cell production, dissolution of all the Al.

There is an electrochemical example posed as a test question: would it be better to make a ship out of aluminum with copper rivets or out of copper with aluminum rivets? An aluminum boat? Nah! It would corrode in seawater. Copper would survive longer. But NO! The copper boat would have a huge cathode and tiny aluminum anodes (the rivets), which would corrode rapidly and the copper plates would fall apart. On the other hand, an aluminum boat would not last forever in seawater, but the tiny cathodes would limit corrosion current, and the large aluminum anodes would have corrosion distributed over the whole ship, so it would survive longer than the other way. Of course, any intelligent person would use copper rivets on copper plates, and aluminum rivets on aluminum, but it's just to make a point.