This is a very straightforward lecture on 2PC and 3PC.  The only thing my students find a bit subtle is the idea that even though both 2PC and 3PC have "bad states" in any real environment where failures can't be detected, there might be systems in which failures actually CAN be detected.  In those, 3PC would actually be usable.  Moreover, even in cases where mistakes in failure detection can still occur, 3PC is less likely to get into a bad state.  Students seem to think in all-or-nothing terms.  The idea that something works "better" even when it isn't perfect confuses at least some of them...