ECS2607 notes