Improved course validation. Fixed infinite loops and required that circuits have the firstCheckpoint property set.