CPSC 327 Data Structures and Algorithms Spring 2015

# CPSC 327 Syllabus

Reading is to be done for the class period where it is listed.

Dates for things in light gray are tentative and may shift slightly.

Assignments

### Week 1: 1/20-1/23

Topics: introduction, developing iterative algorithms

• ADM sections 1.1-1.2 (including chapter introduction)

Slides:

homework #0
due Fri 1/23

• ADM sections 1.3.1-1.3.4 (including introduction to section 1.3)

Slides and Examples:

homework #1
due Mon 1/26

### Week 2: 1/26-1/30

Topics: developing iterative algorithms, greedy algorithms

Mon Examples: homework #2
due Wed 1/28

Wed Slides and Examples: homework #3
due Fri 1/30

Fri Slides and Examples: homework #4
due Mon 2/2

### Week 3: 2/2-2/6

Topics: greedy algorithms

Mon Slides and Examples: homework #5
due Wed 2/4

Wed Slides and Examples: homework #6
due Fri 2/6

Fri Slides and Examples: homework #7
homework #8
homework #9
homework #10
due Wed 2/18

### Week 4: 2/9-2/13

Topics: analysis of algorithms

• ADM sections 2.1-2.8 (including introduction to chapter 2)

Reference:

Wed

Fri

### Week 5: 2/16-2/20

Topics: basic data structures and ADTs, balanced binary trees

• ADM sections 3.1-3.4 (including introduction to chapter 3)

Wed Slides:

Fri Slides:
homework #11
due Mon 2/23

### Week 6: 2/23-2/27

Topics: data structures (hashtables, priority queues, heaps)

Slides:

homework #12
due Wed 2/25

Slides:

Slides and Examples:

homework #13
due Mon 3/2

### Week 7: 3/2-3/6

Topics: data structures wrapup, developing recursive algorithms, divide-and-conquer

Mon Slides and Examples:
homework #14
due Wed 3/4

• ADM section 4.10 (introduction only)

Slides and Examples:

midterm 1
due Mon Mar 9

(review information)

Slides and Examples:

### Week 8: 3/9-3/13

Topics: divide-and-conquer

Mon Slides and Examples: homework #15
due Wed 3/11
programming assignment 1
due Wed Apr 8

Wed Slides and Examples:
homework #16
due Fri 3/13

Fri Examples:

### Week 9: 3/23-3/27

Topics: graphs and graph algorithms

• ADM sections 5.1-5.4 (including the introduction to chapter 5)

Slides:

Slides:

homework #17
due Fri 3/27

Fri Slides and Notes:

### Week 10: 3/30-4/3

Topics: graph algorithms

• ADM sections 6.1-6.4 (including the introduction to chapter 6)

Slides:

homework #18
due Wed 4/1

Wed Slides: homework #19
due Fri 4/3

Fri Slides and Examples:
homework #20
due Mon 4/6

### Week 11: 4/6-4/10

Topics: using graphs to solve problems; recursive backtracking, pruning

• ADM section 6.6, plus review sections 6.1 and 6.4

Slides:

Reference:

• ADM section 7.1 (including the introduction to chapter 7)

Slides:

homework #21
due Fri 4/10

Slides:

midterm 2
due Wed Apr 15

(review information)

### Week 12: 4/13-4/17

Topics: branch and bound, dynamic programming

Mon Slides:

• ADM sections 8.1-8.5 (including the introduction to chapter 8)

Slides:

homework #22
due Fri 4/17
programming assignment 2
due Mon May 4

Fri Slides: homework #23
due Mon 4/20

### Week 13: 4/20-4/24

Topics: dynamic programming, reductions

Slides:

homework #24
due Wed 4/22

Wed Slides: homework #25
due Fri 4/24

• ADM sections 9.1-9.8 (including the introduction to chapter 9)

Slides and Examples:

### Week 14: 4/27-5/1

Topics: complexity; The Hitchhiker's Guide to Algorithms

Slides:

Wed Slides:

• browse through Part II of ADM - get a sampling of what's there

Slides:

### Week 15: 5/4-5/5

Topics: The Hitchhiker's Guide to Algorithms

Mon Slides:

Wed

Fri

Wed

Thu

Fri

### Exams: 5/9-5/12

Sat

Sun

Mon

Tue
final exam
Tue 5/12 8:30-11:30am

(review information)