CPSC 327 Data Structures and Algorithms Spring 2026

CPSC 327 Schedule

Readings are listed on the schedule page on the day when they will be discussed in class. "ADM" refers to the textbook (The Algorithm Design Manual). Readings are the first introduction for most material — it often takes more than one encounter to fully absorb something, and class time is more effective if it can be used to fill in the gaps and answer questions about things you have already started to think about. You are encouraged to complete the assigned reading before class to identify the main ideas and note questions, and then revisit the reading after class to more fully understand the material.

Dates for things in light gray are for planning purposes and are subject to change.

 Assignments

Week 1: 1/21-1/23

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:
     

Week 2: 1/26-1/30

Topics: analysis of algorithms; standard ADTs and basic data structures

 

Mon Reading: Materials from class:    

Wed Reading: Materials from class:
  • slides: analysis of algorithms (big-Oh from sums and recurrence relations; sums from loops, recurrence relations from recursion)
homework 1

due Wed 2/4 in class
   

Fri Reading:
  • ADM chapter 3 intro (page 69)
  • ADM 3.1 (arrays and linked lists)
  • ADM 3.2-3.3, 3.5 (stacks, queues, dictionaries, priority queues) — only read the first part of each section about the operations of each ADT; skip the discussion about implementation
Materials from class:
   

Week 3: 2/2-2/6

Topics: ADTs and implementations: containers (lists, stacks, queues), lookup (dictionaries); data structures: binary trees, BSTs, and balanced BSTs

 

Mon Reading:
  • ADM 3.2 (containers: lists, stacks, queues)
  • ADM 3.3, 15.1 (lookup: dictionaries)
Materials from class:
   

Wed Reading:
  • ADM 3.4-3.4.2 (binary search trees)
Materials from class:
homework 2

due Wed 2/11 in class
   

Fri Reading: Materials from class:    

Week 4: 2/9-2/13

Topics: ADTs and implementations: lookup (dictionaries), priority queues; data structures: balanced BSTs, hashtables, heaps

 

Mon Reading: Materials from class:    

Wed Reading:
  • ADM 3.7-3.7.1 (hashtables)
Materials from class:
homework 3

due Wed 2/18 in class
   

Fri Reading:
  • ADM 3.5, 15.2 (priority queues)
  • ADM 4.3.1-4.3.4 (heaps)
Materials from class:
   

Week 5: 2/16-2/20

Topics: ADTs and implementations: sets; fundamental algorithms and techniques: sorting, searching, selection, hashing; data structure toolkit wrapup

 

Mon Reading:
  • ADM 15.5 (sets)
Materials from class:
   

Wed Reading:
  • ADM chapter 4, 17.1 (sorting)
  • ADM 5.1, 17.2 (searching)
  • ADM 17.3 (selection)
  • ADM 3.7.2-3.7.5 (hashing)
Materials from class:
homework 4

due Wed 2/25 in class
   

Fri Reading:
  • ADM 3.8, 15.3, 15.6, 8.1.3 (specialized structures)
Materials from class:
  • slides: data structures toolkit wrapup (external sorting, searching, selection, hashing; recap; choosing data structures, designing data structures)
   

Week 6: 2/23-2/27

Topics: graphs: terminology, ADT and implementation, traversal (BFS)

 

Mon Reading:
  • ADM 7-7.2, 15.4 (flavors of graphs, graph ADT, implementation)
  • ADM 7.3-7.4 (war stories)
Materials from class:
  • slides: graphs (terminology, flavors of graphs, graph ADT, implementation)
programming assignment
Graph ADT


due Mon 3/9 in class
 

Wed Reading:
  • ADM 7.5 (graph traversal)
  • ADM 7.6-7.7 (BFS, applications of BFS)
Materials from class:
homework 5

due Wed 3/4 in class
 

lab session
Thu 4-5pm
Fri
exam
revise-and-resubmit for hw1

due Fri 2/27

comments on hw1

Week 7: 3/2-3/6

Topics: graphs: DFS and DFS-based algorithms, minimum spanning tree, shortest paths

 

Mon Reading:
  • ADM 7.8-7.10 (DFS, applications of DFS)
Materials from class:
 

Wed Reading:
  • ADM 8-8.1 (weighted graphs algorithms, minimum spanning tree)
homework  

Fri Reading:
  • ADM 8.3 (shortest paths)
 

Week 8: 3/9-3/13

Topics:

 

Mon    

Wed homework    

Fri    

Spring Break: 3/14-3/22


Week 9: 3/23-3/27

Topics:

 

Mon programming assignment  

Wed homework  

lab session
Thu 4-5pm
Fri
exam
 

Week 10: 3/30-4/3

Topics:

 

Mon  

Wed homework    

Fri programming assignment  

Week 11: 4/6-4/10

Topics:

 

Mon  

lab session
Tue 4-5pm
Wed homework  

Fri  

Week 12: 4/13-4/17

Topics:

 

Mon    

Wed homework    

Fri    

Week 13: 4/20-4/24

Topics:

 

Mon programming assignment  

Wed HWS Day (no class) homework  

Fri
exam
 

Week 14: 4/27-5/1

Topics:

 

Mon  

lab session
Tue 4-5pm
Wed homework  

Fri  

Week 15: 5/4

Topics:

 

Mon      

Reading Period: 5/5-5/7

 

Tue      

Wed      

Thu      

Exams: 5/8-5/11

 

Fri      

Sat      

Sun      

Mon
exam 8:30-11:30am
end of semester deadline
no work accepted after 11:30am