CSE 3500: Algorithms and Complexity

Spring 2016


This course is for undergraduate students to learn basic concepts and techniques in
algorithms and complexity.

Lectures. Monday and Wednesday, 3:35-4:50 pm.

Instructor:
Yufeng Wu (ywu@engr.uconn.edu), ITE 235. Office hour: Monday and Wednesday,
2:00-3:20 or by appointment.
TA:
Shaobo Zheng (Shaobo.zheng@uconn.edu), Christian Kuntz (Christian.kuntz@uconn.edu)

Prerequisites. CSE 2100 (Data structure and intro. to algorithms) and CSE 2500
(Introduction to discrete systems).
Some topics need some basic knowledge of probabilities.

Textbook: The required textbook is: Algorithm Design by Kleinberg and Tardos, 2006.
Occasionally I will also use some materials from: Introduction to Algorithms, 3rd edition
by Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein. MIT Press, 2009.
Several chapters are available online at the above web page.
Many lectures are based on this book, although we will sometimes
cover 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.
Graph related topics.

2) Basic algorithm techniques.
Divide and conquer. 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 problems.

For more details on planned topics, please look at the planned schedule (from the course web page).

Homework. We will have homework every one to two weeks.  Work hard on them, even though
homework does 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 homework. 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. You are required to
submit the homework electronically (in PDF format). We appreciate greatly if you typeset the homework.
One good typesetting tool is Latex (google it). Latex is a bit  difficult to pick up but it is very powerful.
Or you may type the English part and write by hand, very clearly, any mathematical parts, and then scan it.
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 always
write the solutions on your own.

Exams. There are two midterm exams for this course and a final exam. Exams will be closed book.
We may have in-class quiz (which will be announced in advance).


Grading. Homework (25%), quiz (5%), mid-term 1 (20%), mid-term 2 (20%) and final (30%).