Algorithm Design and Analysis Course Design