CPSC 327 | Data Structures and Algorithms | Spring 2024 |
Reading is to be done for the class period where it is listed; "ADM" refers to the textbook (The Algorithm Design Manual). Warmups are due by 10pm the night before the class for which they are listed.
Dates for things in light gray are for planning purposes and may be adjusted slightly. Expect homework problems for most class periods.
Assignments | |||||
---|---|---|---|---|---|
Week 1: 1/22-1/26Topics: course introduction; analysis of algorithms |
|||||
Mon |
Slides and Examples:
|
introductory survey (on Canvas, under "Quizzes") |
|||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 1/23 10pm |
|||
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 1/25 10pm |
homework 1 due Mon 1/29 |
||
Week 2: 1/29-2/2Topics: analysis of algorithms; data structures: building blocks, designing implementations; containers |
|||||
Mon |
Reading:
|
homework 2 due Wed 1/31 |
|||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 1/30 10pm |
homework 3 due Fri 2/2 |
||
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 2/1 10pm |
homework 4 due Mon 2/5 |
||
Week 3: 2/5-2/9Topics: balanced search trees, hashtables |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 2/4 10pm |
homework 5 due Wed 2/7 |
||
Wed |
Reading:
Slides and Examples:
|
warmup (on Canvas, under "Quizzes") due Tue 2/6 10pm |
homework 6 due Fri 2/9 |
homework 1 redo due Wed 2/7 (comments on hw1) |
|
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 2/8 10pm |
homework 7 due Mon 2/12 |
homework 2 redo due Fri 2/9 (comments on hw2) |
|
Week 4: 2/12-2/16Topics: data structures: sorting; priority queues, heaps; ADT/data structure roundup; developing data structures |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 2/11 10pm |
homework 8 due Wed 2/14 |
||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 2/13 10pm |
homework 9 due Fri 2/16 |
homework 4 redo due Wed 2/14 (comments on hw4) |
|
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 2/15 10pm |
homework 10 due Mon 2/19 |
homework 5 redo due Fri 2/16 (comments on hw5) |
|
Week 5: 2/19-2/23Topics: graphs |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 2/18 10pm |
homework 3 redo homework 6 redo due Mon 2/19 (comments on hw3) |
exam 1 (on Canvas, under "Assignments") due Wed 2/21 in class (review information) |
|
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 2/20 10pm |
programming assignment 1 Graph ADT due Fri 3/1 in class |
||
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 2/22 10pm |
homework 11 due Mon 2/26 |
homework 7 redo homework 8 redo due Fri 2/23 (comments on hw7, comments on hw8) |
|
Week 6: 2/26-3/1Topics: shortest paths, minimum spanning tree; developing algorithms: correctness |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 2/25 10pm |
|||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 2/27 10pm |
homework 12 due Wed 3/6 |
||
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 2/29 10pm |
homework 9 redo homework 10 redo due Fri 3/1 (comments on hw9, comments on hw10) |
exam 2 (on Canvas, under "Assignments") due Mon 3/4 in class (review information) |
|
Week 7: 3/4-3/8Topics: fundamental algorithms, applications of data structures; solving problems with graphs |
|||||
Mon |
Reading:
|
programming assignment 2 Dijkstra's algorithm due Mon 3/11 |
|||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 3/5 10pm |
homework 13 due Fri 3/8 |
||
Fri |
Slides and Examples:
|
homework 14 due Mon 3/11 |
|||
Week 8: 3/11-3/15Topics: divide-and-conquer algorithms |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 3/10 10pm |
homework 11 redo due Mon 3/11 (comments on hw11) |
exam 3 (on Canvas, under "Assignments") due Wed 3/13 in class (review information) |
|
Wed |
Slides and Examples:
|
homework 15 due Fri 3/15 |
|||
Fri |
Slides and Examples:
|
homework 12 redo (corrected) due Fri 3/15 (comments on hw12) |
|||
Spring Break: 3/16-3/24 |
|||||
Week 9: 3/25-3/29Topics: iterative algorithms, greedy algorithms |
|||||
Mon |
Reading:
|
homework 16 due Wed 3/27 |
|||
Wed |
Slides and Examples:
|
homework 17 due Fri 3/29 |
|||
Fri |
Reading:
Slides and Examples:
|
homework 18 due Mon 4/1 |
homework 13 redo due Fri 3/29 (comments on hw13) |
programming assignment 3 Ski-O due Wed 4/10 in class |
|
Week 10: 4/1-4/5Topics: greedy algorithms; recursive backtracking |
|||||
Mon |
Slides and Examples:
|
homework 19 due Wed 4/3 |
homework 15 redo Dijkstra's redo due Mon 4/1 (comments on hw15, comments on Dijkstra's implementation) |
||
Wed |
Slides and Examples:
|
homework 20 due Fri 4/5 |
|||
Fri |
Reading:
|
homework 21 due Mon 4/8 |
|||
Week 11: 4/8-4/12Topics: pruning; branch and bound; dynamic programming |
|||||
Mon |
Slides and Examples:
|
homework 22 due Fri 4/12 |
|||
Wed |
Reading:
|
warmup (on Canvas, under "Quizzes") due Tue 4/9 10pm |
|||
Fri |
Reading:
|
homework 23 due Mon 4/15 |
|||
Week 12: 4/15-4/19Topics: dynamic programmming; developing algorithms: strategies for improvement, beyond big-Oh |
|||||
Mon |
Slides and Examples:
|
homework 24 due Wed 4/17 |
homework 18 redo due Mon 4/15 (comments on hw18) |
||
Wed |
Slides and Examples:
|
||||
Fri |
Reading:
|
programming assignment 4 Time-O due Fri 5/3 in class |
|||
Week 13: 4/22-4/26Topics: reductions; complexity classes |
|||||
Mon |
Reading:
|
warmup (on Canvas, under "Quizzes") due Sun 4/21 10pm |
|||
Wed | HWS Day (no class) | ||||
Fri |
Reading:
|
warmup (on Canvas, under "Quizzes") due Thu 4/25 10pm |
homework 25 due Wed 5/1 |
homework 22 #2, #4 redo due Fri 4/26 (comments on hw22) |
|
Week 14: 4/29-5/3Topics: dealing with NP-complete problems; wrapup |
|||||
Mon |
Reading:
|
homework 16 redo homework 19 redo homework 20 redo homework 21 redo homework 22 #1, #3 redo due Mon 4/29 (comments on hw15, comments on hw18, comments on hw22) |
|||
Wed |
Reading:
|
||||
Fri |
Reading:
|
homework 23 redo homework 24 redo due Fri 5/3 (comments on hw23) |
|||
Reading Period: 5/4-5/6 |
|||||
Sat | final exam (on Canvas, under "Assignments") due 5/8 11:30am (review information) |
||||
Sun | |||||
Mon | office hours 10am-1pm | ||||
Final Exams: 5/7-5/10 |
|||||
Tue | office hours 10am-1pm | programming assignment 1 (Graph) redo programming assignment 3 (ski-o) redo homework 25 redo due 5/8 11:30am (comments on Graph, comments on ski-o, comments on hw25) |
|||
Wed | end-of-semester deadline no work accepted after 5/8 11:30am |
||||
Thu | |||||
Fri |