CSE 3500: Algorithms and Complexity
This course is for undergraduate students to learn basic concepts
and techniques in
algorithms and complexity.
Lectures. Tuesday and
Thursday, 3:30-4:45 pm.
Instructor: Yufeng Wu
(firstname.lastname@example.org), ITE 235. Office hour: Tuesday and Thursday,
9:30-12:00 or by
email@example.com). ITE 225. Office hour: Tuesday and Thursday,
2:00-3:00 pm or by
CSE 2100 (Data structure and intro. to algorithms) and CSE 2500
(Introduction to discrete systems). Some topics need some basic knowledge
The required textbook is: Introduction to Algorithms (3rd edition)
by T. Cormen, C. Leiserson,
R. Rivest, and C. Stein, 2009. Most of the lectures are based on
this book, although we will sometimes
cover some topics not in the book (where notes and handout will be
provided) and of course
we can not cover every chapter of the book.
Outline. This course is lecture-based. The planned subjects are the following
(subject to change).
1) Fundamental concepts of algorithms. Asymptotic order of growth.
Basic running time analysis.
Divide and conquer. Basic probabilistic analysis. Different kinds
2) Basic algorithm techniques. Dynamic programming. Greedy
algorithms. Algorithms for graphs:
basic algorithms, minimum spanning tree and shortest path.
3) Advanced algorithms and complexity. NP-completeness. Randomized algorithms.
Selected topics in algorithms. Algorithms for NP-complete
We will have homework every one to two weeks. Work
hard on them, although
homeworks do not carry big weights on grading. This is the best
way to prepare for exams.
Much of what you learn from this course comes from the homeworks.
Your solutions should be
concise, correct and legible. Some of the problems may be
challenging, depending on your
background. If you can not solve a problem, briefly explain where
the difficulty is. We appreciate
greatly if you type the homework. Or you may type the English part
and write by hand, very clearly,
any mathematical parts. Do NOT write code, and try to limit the
amount of pseudo-code you write.
Note: you need to
acknowledge any source of ideas other than the textbook. You must
write the solutions on your own.
There are two midterm exams for this course and a final exam.
Exams will be closed book.
Homeworks (25%), mid-term 1 (20%), mid-term 2 (20%) and final