Instructor: Li Yang

Lecture Time: TR 11:30am-12:45pm

Classroom: CEAS D206

Office: CEAS B248

Office Hour: TR 1-2pm

TA: Lin Cheng

Office Hour: Thuesday 1-2pm, Office: B252

Important announcements will come here.

- Class schedule.
- Summation and Recurrence Relations notes.
Math facts that are useful for asymptotic analysis. If you want to study
further, read Graham, Knuth and Patashnik's book,
*Concrete Mathematics: A Foundation for Computer Science*.

There will be 5-6 assignments. Assignments will be posted on
e-learning portal with due dates. They must be submitted to the
e-learning portal exactly when they are due.
**No late submission will be accepted. **

Name: CS4310 - Design and Analysis of Algorithms

Credit Hours: 3

Prerequisite: (MATH 1450 or CS1310) and CS3310 or equivalent with a grade of
C or better.

A continuation of study of data structures and algorithms. It provides a theoretical foundation in designing algorithms. The focus is on the advanced analysis of algorithms and on how the selections of different data structures affect the performance of algorithms. Algorithmic paradigms such as divide and conquer, greedy method, dynamic programming, backtracking, and branch and bound are covered. B-tree, 2-3 tree and a variety of graph structures are discussed along with their applications to algorithm implementation. Algorithms will be analyzed for their complexity. NP-completeness will be introduced.

The general objective of this course is to develop algorithmic thinking to solve real world problems. Specific objectives include:

- reinforce analytic skills and problem-solving abilities;
- analyze and understand the complexity of algorithms, and how theory connects with performance in real-world applications;
- apply alagorithm analysis to solve practical problems and optimize solutions.

Upon completion of this course, students should:

- have an ability to apply knowledge of computing and mathematics appropriate to the discipline.
- have an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- have an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
- have an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.
- exhibit knowledge of algorithms pertaining to the greedy, divide-and-conquer, dynamic programming, backtracking and branch-and-bound paradigms.
- gain an introductory knowledge of the complexity of algorithms and of the classes P, NP, and NP-complete.
- have an ability to evaluate a problem with respect to ethical responsibilities and security concerns.

**(Required).**Michael Goodrich and Roberto Tamassia.*Algorithm Design and Applications.*Wiley 2014. ISBN - 978-1-118-33591-8.- To review topics learned in CS331, a good source is Clifford A. Shaffer's
free online book,
*Data Structures and Algorithm Analysis*. The link is to an older version, we will provide you an online interactive version on Canvas Notes. - Optional. The following books may suffice for you, if you can copy
problems sets needed in homeworks from one of your colleagues who has
purchased the required texbook.
- Robert Sedgewick and Kevin Wayne.
*Algorithms (4th Edition)*. Addison-Wesley, ISBN: 978-0321573513. It was used in previous semesters. - Michael Goodrich and Roberto Tammassia.
*Algorithm Design: Foundations, Analysis and Internet Examples*. Wiley, ISBN: 978-0-471-38365-9.

- Robert Sedgewick and Kevin Wayne.

There will be assignments, a midterm exam and a final exam. Your final grade is determined based on a weighted sum of your scores. Weights of the scores are:

- Assignments: 30%
- Midterm: 35%
- Final Exam: 35%

The following code is required to be included in this syllabus:

*You are responsible for making yourself aware of and
understanding the policies and procedures in the Undergraduate (pp.
271-272) [Graduate (pp. 24-26)] Catalog that pertain to Academic
Integrity. These policies include cheating, fabrication,
falsification and forgery, multiple submission, plagiarism,
complicity and computer misuse. If there is reason to believe you
have been involved in academic dishonesty, you will be referred
to the Office of Student Judicial Affairs. You will be given the
opportunity to review the charge(s). If you believe you are not
responsible, you will have the opportunity for a hearing. You
should consult with me if you are uncertain about an issue of
academic honesty prior to the submission of an assignment or test.*