CPSC 327 Data Structures and Algorithms Spring 2025

CPSC 327 Schedule

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/24

Topics: course introduction; analysis of algorithms

 

Wed Materials from class: introductory survey
(on Canvas)
     

Fri Reading:
  • ADM 2.1-2.4 (RAM model of computation, big-Oh, growth rates and dominance relations, working with big-Oh)
Materials from class:
class prep — ADM 2.1-2.4
(on Canvas)

due Thu 1/23 10pm
     

Week 2: 1/27-1/31

Topics: analysis of algorithms; ADTs

 

Mon Reading: Materials from class: class prep — big-Oh for sums and recurrence relations, ADM 2.7-2.8
(on Canvas)

due Sun 1/26 10pm
     

Wed Reading:
  • ADM 4.6.3 (limitations of asymptotic complexity)
Materials from class:
  homework 1

due Fri 2/7 in class
   

Fri Reading:
  • ADM chapter 3 intro (page 69)
  • ADM 3.1 (arrays and linked lists)
  • ADM 3.2-3.3 (stacks, queues, dictionaries)
  • ADM 3.5 (priority queues) — for the "stop and think" about implementation, focus on the unsorted and sorted array implementations
Materials from class:
class prep — ADM 3.1
(on Canvas)

due Thu 1/30 10pm
   

Week 3: 2/3-2/7

Topics: data structures: arrays, linked lists, binary trees; binary search trees, balanced BSTs

 

Mon Materials from class:
  • slides: data structures (arrays, linked lists, implementations of containers)
     

Wed Reading:
  • ADM 3.4-3.4.2 (binary search trees)
Materials from class:
class prep — BSTs
(on Canvas)

due Tue 2/4 10pm
   

Fri Reading:
  • ADM 3.4.3 (balanced search trees)
  • AVL trees
Materials from class:
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/14

Topics: 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:
  • ADM 4.3.1-4.3.4 (heaps)
Materials from class:
class prep — heaps
(on Canvas)

due Tue 2/11 10pm
   

Fri Reading:
  • ADM 3.7-3.7.1 (hashing and hashtables)
Materials from class:
class prep — hashtables
(on Canvas)

due Thu 2/13 10pm
homework 3

due Fri 2/21 in class
   

Week 5: 2/17-2/21

Topics: specialized data structures; developing data structures; applications of data structures and fundamental techniques

 

Mon Reading:
  • ADM 3.8-3.9 (specialized data structures)
  • ADM 15 (hitchhiker's guide) — skim, focusing on what each data structure is, its applications, and an overview of the relevant variations and considerations
Materials from class:
class prep — ADM 15
(on Canvas)

due Sun 2/16 10pm
   

Wed Reading:
  • ADM 4.1-4.2, 4.3, 4.3.5, 4.5-4.7, 4.8, 17.1 (sorting)
Materials from class:
class prep — sorting
(on Canvas)

due Tue 2/18 10pm
   

Fri Reading:
  • ADM 3.6, 4.4 (applications of containers)
  • ADM 17.2-17.3 (searching and selection)
  • ADM 3.7.2-3.7.5 (other uses of hashing)
Materials from class:
class prep — fundamental techniques
(on Canvas)

due Thu 2/20 10pm
homework 4

due Fri 2/28 in class
   

Week 6: 2/24-2/28

Topics: graphs

 

Mon Reading:
  • ADM 7 (introduction), 7.1 (graphs and graph terminology)
  • ADM 7.2 data structures for graphs — pay attention to the data structures and how they work rather than the C code
  • ADM 7.3-7.4 (war stories)
class prep — ADM 7.1-7.2
(on Canvas)

due Sun 2/23 10pm
programming assignment 1 hw1 resubmit
due Mon 2/24 in class

feedback

if you got less than 3 on the initial handin (or didn't hand in anything), come to office hours to discuss resubmit

Wed
exam 1
   

Fri Reading:
  • ADM 7.5 (graph traversals)
  • ADM 7.6-7.7 (BFS and BFS-based algorithms and applications)
class prep — ADM 7.5-7.7
(to be posted)

due Thu 2/27 10pm
   

Week 7: 3/3-3/7

Topics:

 

Mon      

Wed      

Fri     programming assignment 2

Week 8: 3/10-3/14

Topics:

 

Mon      

Wed      

Fri      

Spring Break: 3/17-3/21


Week 9: 3/24-3/28

Topics:

 

Mon     programming assignment 3  

Wed      

Fri      

Week 10: 3/31-4/4

Topics:

 

Mon      

Wed
exam 2
     

Fri      

Week 11: 4/7-4/11

Topics:

 

Mon     design problem  

Wed      

Fri     programming assignment 4  

Week 12: 4/14-4/18

Topics:

 

Mon      

Wed
exam 3
     

Fri      

Week 13: 4/21-4/25

Topics:

 

Mon      

Wed      

Fri      

Week 14: 4/28-5/2

Topics:

 

Mon        

Wed        

Fri        

Week 15: 5/5

Topics:

 

Mon        

Reading Period: 5/6-5/8

 

Tue        

Wed        

Thu        

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

Sun        

Mon