Course Description

This course presents an introduction to the techniques for designing efficient computer algorithms and analyzing their running times. General topics include asymptotics, solving summations and recurrences, algorithm design techniques, analysis of data structures, and introduction to NP-completeness.

This course presents an introduction to the techniques for designing efficient computer algorithms and analyzing their running times. General topics include asymptotics, solving summations and recurrences, algorithm design techniques, analysis of data structures, and introduction to NP-completeness.

Course Information

### Instructor

- Clyde Kruskal (kruskal@cs)

### Class Time / Venue

- Section 0101: TuTh 11:00–12:15, CSI 3117
- Section 0201: TuTh 9:30–10:45, CSI 1115

### Piazza

- We will be using piazza for announcements and discussions. Please register yourself on Piazza. You can ask private questions (only instructor and TAs can see) or ask/reply anonymously. However DO NOT post your answer and ask if it is correct. If in doubt, ask private question or come during office hours.

### Textbook

- Cormen, Thomas H.; Leiserson, Charles E.; Rivest,
Ronald L.; Stein, Clifford (2009).
*Introduction to Algorithms*(3rd ed.). MIT Press (Any edition is fine)

### Teaching Assistant

- Anirudh Agarwal
- Yuk Hei Chan (Tom) (yhchan@cs)
- Kanthi K. Sarpatwar
- Milad Gholami

### Syllabus

### Homework

- Homework due every Thursday in class, unless otherwise specified.

Office Hour (AVW 1112)

- Kanthi: 10:00–1:00 Mon
- Tom: 3:00–6:00 Tue
- Milad: 12:00–3:00 Wed
- Anirudh: 12:30–3:30 Wed
- Clyde: 2:00–5:00 Fri