CSE 3500 Notes