lecture notes for oop 526359