CPSC 327 | Data Structures and Algorithms | Spring 2025 |
Class preparation assignments are generally based on the assigned reading and are due by 10pm the night before the class for which they are listed. For readings, "ADM" refers to the textbook (The Algorithm Design Manual).
Dates for things in light gray are for planning purposes and may be adjusted slightly. Expect class preparation assignments for most classes, weekly homeworks, and several programming assignments.
Assignments | |||||
---|---|---|---|---|---|
Week 1: 1/21-1/24Topics: course introduction; analysis of algorithms |
|||||
Wed |
Materials from class:
|
introductory survey (on Canvas) |
|||
Fri |
Reading:
|
class prep — ADM 2.1-2.4 (on Canvas) due Thu 1/23 10pm |
|||
Week 2: 1/27-1/31Topics: analysis of algorithms; ADTs |
|||||
Mon |
Reading:
|
class prep — big-Oh for sums and recurrence relations, ADM 2.7-2.8 (on Canvas) due Sun 1/26 10pm |
|||
Wed |
Reading:
|
homework 1 due Fri 2/7 in class |
|||
Fri |
Reading:
|
class prep — ADM 3.1 (on Canvas) due Thu 1/30 10pm |
|||
Week 3: 2/3-2/7Topics: data structures: arrays, linked lists, binary trees; binary search trees, balanced BSTs |
|||||
Mon |
Materials from class:
|
||||
Wed |
Reading:
|
class prep — BSTs (on Canvas) due Tue 2/4 10pm |
|||
Fri |
Reading:
|
class prep — AVL trees (on Canvas) due Thu 2/6 10pm |
homework 2 [corrected!] due Fri 2/14 in class |
||
Week 4: 2/10-2/14Topics: balanced search trees (2-4 trees); heaps; hashtables |
|||||
Mon |
Reading:
Materials from class:
|
class prep — 2-4 trees (on Canvas) due Sun 2/9 10pm |
|||
Wed |
Reading:
|
class prep — heaps (on Canvas) due Tue 2/11 10pm |
|||
Fri |
Reading:
|
class prep — hashtables (on Canvas) due Thu 2/13 10pm |
homework 3 due Fri 2/21 in class |
||
Week 5: 2/17-2/21Topics: specialized data structures; developing data structures; applications of data structures and fundamental techniques |
|||||
Mon |
Reading:
|
class prep — ADM 15 (on Canvas) due Sun 2/16 10pm |
|||
Wed |
Reading:
|
class prep — sorting (on Canvas) due Tue 2/18 10pm |
|||
Fri |
Reading:
|
class prep — fundamental techniques (on Canvas) due Thu 2/20 10pm |
homework 4 due Fri 2/28 in class |
||
Week 6: 2/24-2/28Topics: graphs, graph traversal, BFS and BFS-based algorithms |
|||||
Mon |
Reading:
|
class prep — ADM 7.1-7.2 (on Canvas) due Sun 2/23 10pm |
programming assignment 1 Graph ADT due Fri 3/7 in class help sessions: Wed 2/26 8:30-9:30am Thu 2/27 3-4pm Lansing 301 |
hw1 resubmit due Mon 2/24 in class feedback |
|
Wed |
exam 1
|
||||
Fri |
Reading:
|
class prep — ADM 7.5-7.7 (on Canvas) due Thu 2/27 10pm |
homework 5 due Mon 3/10 in class |
||
Week 7: 3/3-3/7Topics: DFS and DFS-based algorithms, shortest paths, minimum spanning tree |
|||||
Mon |
Reading:
|
class prep — ADM 7.8-7.10 (on Canvas) due Sun 3/2 10pm |
hw2 resubmit due Mon 3/3 in class feedback |
||
Wed |
Reading:
|
class prep — ADM 8 intro, 8.3 (on Canvas) due Tue 3/4 10pm |
|||
Fri |
Reading:
|
class prep — ADM 8.1-8.1.3 (on Canvas) due Thu 3/6 10pm |
programming assignment 2 Dijkstra's Algorithm due Fri 3/14 in class |
||
Week 8: 3/10-3/14Topics: solving problems with graphs; divide-and-conquer algorithms |
|||||
Mon |
Reading:
|
class prep — ADM 8.7 (on Canvas) due Sun 3/9 10pm |
homework 6 due Wed 3/26 in class |
||
Wed |
Reading:
|
class prep — ADM 8.1.4, 8.2, 8.5-8.6, 18 (on Canvas) due Tue 3/11 10pm |
hw3 resubmit due Wed 3/12 in class feedback |
||
Fri |
Reading: (for the week after spring break if you
don't get to it before class)
|
||||
Spring Break: 3/17-3/21 |
|||||
Week 9: 3/24-3/28Topics: divide-and-conquer algorithms; iterative algorithms |
|||||
Mon |
Materials from class:
|
programming assignment 3 Ski-O due Mon 4/7 in class |
|||
Wed |
Additional Reading: (encouraged)
|
homework 7 due Fri 4/4 in class |
|||
Fri |
Reading:
|
class prep — iterative algorithms (on Canvas) due Thu 3/27 10pm |
|||
Week 10: 3/31-4/4Topics: iterative algorithms; greedy algorithms |
|||||
Mon |
Materials from class:
|
hw4 resubmit due Mon 3/31 in class feedback |
|||
Wed |
exam 2
|
||||
Fri |
|
homework 8 due Fri 4/11 in class |
hw5 resubmit due Fri 4/4 in class feedback |
||
Week 11: 4/7-4/11Topics: greedy algorithms; backtracking |
|||||
Mon |
Reading:
Materials from class:
|
class prep — greedy algorithms (on Canvas) due Sun 4/6 10pm |
|||
Wed |
Materials from class:
|
||||
Fri |
Reading:
|
homework 9 due Fri 4/18 in class |
|||
Week 12: 4/14-4/18Topics: backtracking, pruning, branch and bound |
|||||
Mon |
Reading:
|
class prep — pruning, branch and bound (on Canvas) due Sun 4/13 10pm |
programming assignment 4 Time-O due Mon 4/28 in class |
Graph ADT resubmit due Mon 4/14 in class hand in as graphv2 feedback hw6 resubmit due Mon 4/14 in class feedback |
|
Wed |
exam 3
|
||||
Fri |
Materials from class:
|
homework 10 due Fri 4/25 in class |
|||
Week 13: 4/21-4/25Topics: dynamic programming |
|||||
Mon |
Reading:
|
class prep — dynamic programming (on Canvas) due Sun 4/20 10pm |
Dijkstra's Algorithm resubmit due Mon 4/21 in class hand in as dijkstrav2 feedback |
||
Wed | HWS Day — no class | ||||
Fri |
Materials from class:
|
homework 11 due Fri 5/2 in class |
|||
Week 14: 4/28-5/2Topics: reductions; complexity; dealing with NP-complete problems |
|||||
Mon |
Reading:
|
class prep — ADM 11.1-11.8 (on Canvas) due Sun 4/27 10pm |
|||
interviews (see your email for the signup link) signup deadline 4/28 11:59pm |
|||||
Wed |
Reading:
|
class prep — ADM 11.9 (on Canvas) due Tue 4/29 10pm |
Ski-O resubmit due Wed 4/30 in class hand in as skiov2 feedback |
||
Fri |
Reading:
|
homework 12 due Mon 5/5 in class |
|||
Week 15: 5/5Topics: dealing with NP-complete problems; wrapup |
|||||
Mon | hw7 resubmit due Mon 5/5 in class priority: #2 feedback hw8 resubmit due Mon 5/5 in class priority: #1, #3 feedback hw9 resubmit due Mon 5/5 in class priority: #2 feedback |
||||
Reading Period: 5/6-5/8 |
|||||
Tue | office hours: 12:30-4pm | ||||
Wed | office hours: 12:30-2:30pm | (optional) exam 1-3 second chance (to be posted) (signup link to be emailed Monday evening) |
|||
Thu | office hours: 12:30-4pm | ||||
Final Exams: 5/9-5/12 |
|||||
Fri | |||||
Sat |
final exam
5/10 7-10pm |
end-of-semester deadline no work accepted after 5/10 10pm |
hw10 resubmit priority: #3, #4 hw11 resubmit priority: #2 hw12 resubmit Time-O resubmit due Sat 5/10 10pm |
||
Sun | |||||
Mon |