Puzzle of the week #151

Level: 
3-Bishop
Chess Diagram: 

[Event "Puzzle #151"][Date "2011.02.14"][Result "1-0"][SetUp "1"][FEN "6k1/5pb1/6pp/p1pr1b2/1p1pNB2/7P/PPP1RPP1/6K1 w - - 0 27"]{In the game} 27.Bc7 a4 28.Bb6 c4 29.Ng3 d3 30.cxd3 cxd3 31.Rd2 Bc3 {Black is winning}

I like to watch games played by my students. It gives me a good indication if there's progress, as well as it inspires subjects for future lessons. In the above position one of my former students - Joanne - was playing White and continued as shown in the diagram. She lost the game after a number of less important moves. Your tasks:
a) Analyse the position
b) Why did White lose the game?
c) Come up with a better plan and line for White

Total available points for this puzzle is 25. The answers will be published next week together with puzzle #152.

Puzzle #150 solution:
J. A. Darragh of Perth, Australia has saved this club game position from disappearing in the bottomless pit that we call past. It comes from an era without computers and the solution is flawed, but its beauty remains attractive and winning idea worth remembering. The overwhelming majority of you have tried to save the game by sacrificing the Knight and we discussed why this should not be the first option. In the end I chose a couple of answers I liked the most: the ones by Alex and Ziyao. See solution by Alex below.
Ziyao:
I thought this one through for a long time but I still did not figure it out. It is a very tricky puzzle. I got very close though, but there was always a move Black would do that make me think of a different plan; the closest I got to finding the solution was:

[Event "Puzzle #150"][Date "2011.02.07"][Result "0-1"][SetUp "1"][FEN "8/4p1kp/4p1p1/4pPP1/4P2Q/6NP/1r1q4/1n3R1K w - - 0 1"]{Alex} 1.f6+ exf6 (1...Kf8 {Ziyao} 2.Qh6+ (2.fxe7+ Kxe7 3.Qxh7+ Kd6 {Black wins}) 2...Ke8 3.f7+ Kd7 4.f8=N+ Kd6 {Black wins}) (1...Kh8 2.Ne2 Qxe2 3.Rf2 Qxf2? (3...Qe1+! 4.Kg2 exf6 5.gxf6 Rxf2+ 6.Qxf2 Qxf2+ 7.Kxf2 Kg8 {Black wins}) 4.Qxf2 Rxf2 5.fxe7 {White wins}) 2.gxf6+ Kf7 3.Qxh7+ Kf8 4.Qe7+ Kg8 5.Qg7#

Correct solutions:
Ziyao - 20 points
Alex, Derrick - 10 points
Harmony, James, Leroy, Philip - 5 points

Standings:
Ziyao - 97 points
Harmony - 75 points
James, Alex - 64 points
Philip - 54 points
Leo - 34 points
Frank - 33 points
Jeffrey - 32 points
Leroy - 28 points
Derrick - 23 points
Danny - 19 points
Karl - 13 points
Kevin - 11 point

Comment: 

Any position is interesting