programming course lecture notes 4897260