CPSC 225 Data Structures and Algorithms Spring 2025

CPSC 225 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, "Eck" refers to the textbook (Introduction to Programming Using Java).

Dates for things in light gray are for planning purposes and may be adjusted slightly. Expect class preparation assignments for most classes, weekly labs, and several projects.

 Assignments

Week 1: 1/21-1/24

Topics: course introduction; review of procedural programming

 

Wed Materials from class: introductory survey
(on Canvas)
   

Thu   lab 1
Linux and Eclipse


due Thu 1/30 1:10pm

Fri Materials from class: class prep — review of procedural programming
(on Canvas)

due Thu 1/23 10pm
 

Week 2: 1/27-1/31

Topics: review of object-oriented programming

 

Mon Materials from class: class prep — programming with objects
(on Canvas)

due Sun 1/26 10pm
project 1a
Flip


due Mon 2/3 11:59pm

Wed Materials from class: class prep — writing classes
(on Canvas)

due Tue 1/28 10pm

Thu  

Fri Materials from class:    

Week 3: 2/3-2/7

Topics: OOAD fundamentals; program correctness

 

Mon Materials from class:     project 1b
OO Flip


due Mon 2/10 11:59pm

Wed Reading:
  • Eck 8.1 (introduction to correctness and robustness)
  • Eck 4.1, 4.7.1, 4.6.5 (method contracts, pre- and postconditions, javadoc)
Materials from class:
  • slides: correctness (correctness and robustness, Javadoc comments, preconditions, testing)
class prep — Eck 8.1, 4.1, 4.7.1, 4.6.5
(on Canvas)

due Tue 2/4 10pm
 

Thu   lab 2
Testing



due Thu 2/13 1:10pm

Fri Reading:
  • Eck 8.2.1-8.2.3 (reasoning about correctness)
  • Eck 8.4.1 (assertions)
Materials from class:
class prep — Eck 8.2.1-8.2.3, 8.4.1
(on Canvas)

due Thu 2/6 10pm

Week 4: 2/10-2/14

Topics: correctness and robustness: debugging, preventing bugs, checking preconditions, robust handling of input, exceptions


Mon Materials from class:
  • slides: correctness (reasoning about correctness, assertions)
    lab 1 resubmit
due Mon 2/10 9:40am

Wed Materials from class:
  • slides: correctness (defensive programming, clean code)
   

Thu   lab 3
Correctness


due Thu 2/20 1:10pm
 

Fri Reading:
  • Eck 8.2.4 (robust handling of input)
  • Eck 8.3 (exceptions)
Materials from class:
class prep — Eck 8.3
(on Canvas)

due Thu 2/13 10pm
   

Week 5: 2/17-2/21

Topics: data structure fundamentals: arrays

 

Mon Reading:
  • Eck 3.8.4 (partially full arrays)
  • Eck 7.1.1, 7.1.3 (for-each loops, array literals)
  • Eck 7.2.1-7.2.2 (working with arrays)
  • Eck 7.2.4 (dynamic arrays)
Materials from class:
  • slides: arrays (syntax recap, arrays as collections, figuring out array operations)
  • examples: ArraySequence (in progress)
class prep — arrays
(on Canvas)

due Sun 2/16 10pm
   

Wed Materials from class:      

Thu   lab 4
Arrays and Debugging


due Thu 2/27 1:10pm
 

Fri Materials from class: class prep — Omino
(on Canvas)

due Thu 2/20 11:59pm
(optional, but encouraged)
project 2
Omino


due Fri 3/7 11:59pm
flip resubmit
due Fri 2/21 9:40am

feedback

hand in as flipv2

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

Week 6: 2/24-2/28

Topics: searching, sorting, shuffling; linked lists

 

Mon Reading:
  • Eck 7.5.3-7.5.4 (insertion sort, selection sort)
class prep
(on Canvas)

due Sun 2/23 10pm
 

Wed Reading:
  • Eck 7.5.1 (searching)
  • Eck 7.5.5 (shuffling)
class prep
(to be posted)

due Tue 2/25 10pm
 

Thu    

Fri Reading:
  • Eck 9.2 (linked data structures)
class prep
(to be posted)

due Thu 2/27 10pm
 

Week 7: 3/3-3/7

Topics:

 

Mon    

Wed    

Thu    

Fri    

Week 8: 3/10-3/14

Topics:

 

Mon     project 3

Wed    

Thu
exam 1
   

Fri    

Spring Break: 3/17-3/21


Week 9: 3/24-3/28

Topics:

 

Mon    

Wed    

Thu    

Fri    

Week 10: 3/31-4/4

Topics:

 

Mon    

Wed      

Thu    

Fri      

Week 11: 4/7-4/11

Topics:

 

Mon     project 4

Wed    

Thu    

Fri    

Week 12: 4/14-4/18

Topics:

 

Mon    

Wed    

Thu
exam 2
   

Fri    

Week 13: 4/21-4/25

Topics:

 

Mon    

Wed    

Thu    

Fri    

Week 14: 4/28-5/2

Topics:

 

Mon    

Wed    

Thu    

Fri    

Week 15: 5/5

Topics:

 

Mon    

Reading Period: 5/6-5/8

 

Tue      

Wed      

Thu      

Final Exams: 5/9-5/12

 

Fri
final exam
5/9 8:30-11:30am
end-of-semester deadline
no work accepted after 5/9 11:30am

Sat

Sun      

Mon