Fall 2017


Course Description: In this course, a thorough examination of several wellknown techniques that are used for the design and analysis of algorithms will be covered. Topics to be studied include theoretical measures of algorithm complexity, sorting and selection algorithms, greedy algorithms, divide and conquer techniques, dynamic programming, graph algorithms, search strategies, randomized algorithms, and an introduction to the theory of NPcompleteness. Prerequisites:CS 310 (Data Structures) and CS 330 (Formal Methods & Models) Instructor:
Teaching Assistant:Xiaosheng Li Class Time & Location:Sec 002: Thursdays 4:30 pm  7:10 pm; Robinson B 113
Required Textbook:
Course Requirements & Grading:The course grade is based on your performance on required homework assignments, weekly quizzes, midterm, and comprehensive final examinations. All required coursework must be completed by the stated due date and time. Late coursework will not be accepted and makeup tests will not be given for missed examinations. All students must work in groups on the Homework assignments. Groups will be assigned by the instructor and additional information related to group responsibilities and grading will be distributed in the first class. All required quizzes and exams must be performed independently. Please read the information about GMU and CS Department Academic Integrity and Honor Code Policies at If you have a documented learning disability or other condition that may affect academic performance you should: (1) make sure this documentation is on file with the Disability Services (SUB I, Suite 2500; 9932474; http://ds.gmu.edu/) to determine the accommodations you need; and (2) talk with me to discuss your accommodation needs. Important Dates:Last day to add: September 5, 2017 Tentative List of Topics:You are expected to be familiar with the concepts taught in prerequisite courses. Created: 28 Aug 2017 