CPSC 327 | Data Structures and Algorithms | Spring 2016 |
Reading is to be done for the class period where it is listed.
Note on reading the war stories: you may not be familiar with all of the techniques, algorithms, or data structures mentioned in the stories. That's OK - read the war stories for what they illustrate about the real world of developing algorithms rather than for necessarily understanding every detail of the algorithm. (Though feel free to ask about things!)
Dates for things in light gray are tentative and may shift slightly.
Note on homework problems: [PC] denotes a pre-class problem - these are intended as part of the first exposure to the material and are graded primarily on effort. You should try to do these problems yourself before discussing with others (if you discuss). [P] denotes a practice problem - these are meant for practice applying things that have been discussed in class and are graded primarily on correctness. Both kinds of problems are due when the homework is due.
Assignments | |||
---|---|---|---|
Week 1: 1/19-1/22Topics: course introduction, introduction to algorithm design, analysis of algorithms |
|||
Wed |
Reading:
|
homework 1 due Fri 1/22 |
|
Fri | Reading:
|
homework 2 due Mon 1/25 |
|
Week 2: 1/25-1/29Topics: analysis of algorithms, review of basic ADTs and data structures, lookup |
|||
Mon | Slides: | homework 3 due Wed 1/27 |
|
Wed |
Reading:
|
homework 4 due Fri 1/29 |
|
Fri |
Reading:
|
homework 5 due Mon 2/1 |
|
Week 3: 2/1-2/5Topics: balanced binary trees; hashtables |
|||
Mon | Reading: Slides: | homework 6 due Wed 2/3 |
|
Wed | Reading: Slides: | homework 7 due Fri 2/5 |
|
Fri |
Reading:
|
homework 8 due Mon 2/8 |
|
Week 4: 2/8-2/12Topics: ordered sequences (priority queues, heaps); other data structures (and rolling your own); searching and sorting |
|||
Mon |
Reading:
|
homework 9 due Wed 2/10 |
|
Wed |
Reading:
|
homework 10 due Fri 2/12 |
|
Fri |
Reading:
|
project 1 Code Breaker due Fri 3/4 |
|
Week 5: 2/15-2/19Topics: sorting and searching, iterative algorithms |
|||
Mon |
Reading:
|
homework 11 due Wed 2/17 |
|
Wed | Reading: Slides and Examples: | homework 12 due Fri 2/19 |
|
Fri | Slides and Handouts: | homework 13 due Mon 2/22 |
|
Week 6: 2/22-2/26Topics: greedy algorithms |
|||
Mon | Reading: Slides and Examples: | ||
Wed | Slides and Examples: | homework 14 due Fri 2/26 |
|
Fri |
Slides and Examples:
|
homework 15 due Mon 2/29 |
|
Week 7: 2/29-3/4Topics: iterative and greedy algorithms, divide-and-conquer algorithms, recurrence relations |
|||
Mon | Slides and Examples: | homework 16 due Wed 3/2 |
|
Wed | Reading: Slides and Examples: | ||
Fri |
Slides and Examples:
|
exam 1 (review information) (comments and partial solutions) |
|
Week 8: 3/7-3/11Topics: divide-and-conquer |
|||
Mon | Slides and Examples: | ||
Wed |
Slides and Examples:
|
homework 17 due Mon 3/21 |
project 2 Iterative, Greedy, Divide-and-Conquer due Wed 4/6 |
Fri | meet with your group to work on project 2 | ||
Spring Break: 3/12-3/20 |
|||
Week 9: 3/21-3/25Topics: solving recurrence relations; graphs - applications, ADT, implementation, traversal |
|||
Mon | Slides: | homework 18 due Wed 3/23 |
|
Wed |
Reading:
|
homework 19 due Fri 3/25 |
|
Fri |
Reading:
|
||
Week 10: 3/28-4/1Topics: graphs - traversal, shortest paths, solving problems with graphs |
|||
Mon |
Slides:
|
homework 20 due Wed 3/30 |
|
Wed |
Reading:
|
homework 21 due Fri 4/1 |
|
Fri |
Reading:
|
||
Week 11: 4/4-4/8Topics: solving problems with graphs, minimum spanning trees |
|||
Mon |
Reading:
|
||
Wed |
Reading:
|
exam 2 (review information) |
|
Fri |
Reading:
Slides and Examples:
|
||
Week 12: 4/11-4/15Topics: backtracking, pruning, branch and bound, heuristic search |
|||
Mon |
Reading:
|
homework 22 due Wed 4/13 |
project 3 Finding Your Way due Tue 5/3 |
Wed | Slides: | homework 23 due Mon 4/18 |
|
Fri |
Reading:
|
||
Week 13: 4/18-4/22Topics: dynamic programming |
|||
Mon |
Reading:
|
homework 24 due Wed 4/20 |
|
Wed |
Reading:
|
homework 25 due Fri 4/22 |
|
Fri |
Reading:
|
homework 26 due Mon 4/25 |
|
Week 14: 4/25-4/29Topics: reductions, complexity, dealing with NP-complete problems |
|||
Mon |
Reading:
|
homework 27 due Wed 4/27 |
|
Wed |
Reading:
|
||
Fri |
Reading:
|
||
Week 15: 5/2-5/3Topics: how to design algorithms, wrapup |
|||
Mon |
Reading:
|
||
Reading Period: 5/4-5/6 |
|||
Wed | office hours 1-3pm | ||
Thu | office hours 1-3pm | ||
Fri | office hours 10:30-12 and 1:30-3pm | ||
Exams: 5/7-5/10 |
|||
Sat | |||
Sun | |||
Mon |
final exam
Mon 5/9 8:30-11:30am |
end-of-semester deadline no work accepted after 5/9 11:30am |
|
Tue |