program analysis lecture notes 3175897