EECS 336: Introduction to Algorithms (Fall 2015)


Required Text: Kleinberg and Tardos, Algorithm Design, 2005.
Discussion/Announcements/Homeworks/etc: on Canvas.

Lectures: Tuesday and Thursday 3:30-4:50 in Tech L211.
Instructor: Jason D. Hartline.
Office Hours: Tuesday, 2:00-2:50, or by appt.; Ford 3-329.

Teaching Assistant: Sam Taggart
Lab Sections: Monday and Tuesday, various times.
Office Hours: Wednesday, 10:30-12:00; Tech F281

Overview. Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, network flows, reductions, and randomized algorithms. Important themes that will be developed in the course include the algorithmic abstraction-design-analysis process and computational tractability (e.g., NP-completeness).

Prerequisites. EECS 212 (Mathematical Foundations of Computer Science) and EECS 214 (Data Structures and Data Management) which cover abstract data types such as stacks, queues, and binary search trees; and discrete mathematics such as recurrence relations, sets, and graphs.

Grading. 50% Homework, 15% Midterm, 25% Final, 10% Participation.

Homework Policy. Homeworks may be done in pairs by students in the same discussion section. Both students must contribute to the solution of all problems. Pairs should submit one typed copy of each problem to its corresponding assignment submission in Canvas. Both students will receive the same grade. Assignments must be typed - LaTeX is recommended. You may consult your text book and course notes when answering homework questions; you must not consult the Internet other than for help with LaTeX. (See LaTeX Hints.)  Homeworks are assigned in class on Thursday and due the week after on Thursday at 11:59pm (or as noted).  Late homework will be accepted until Sunday at 11:59pm and will be marked down by 25% of the grade received.  See Homework Preparation Guidelines.

Tentative Schedule:

Week 1: beginning Sept. 21

Week 2: beginning Sept. 28

Week 3: beginning Oct. 5

Week 4: beginning Oct. 12

Week 5: beginning Oct. 19

Week 6: beginning Oct. 26

Week 7: beginning Nov. 2

Week 8: beginning Nov. 9

Week 9: beginning Nov. 16

Week 10: beginning Nov. 23

Week 11: beginning Nov. 30

Course Summary:

Date Details Due