CMPT 225 - Data Structures and Programming - Fall 2025

Course Information Syllabus Lectures Assignments Exams


Lab 12 - November 18-20
Evaluating arithmetic expressions
Week 12 - November 18-20
Evaluating arithmetic expressions
- Prefix and postfix notation
Union find
Kruskal's algorithm
No lab his week November 11-13
Lab 10 - November 4-6
Selection algorithm
Hashing
Week 10 - November 4-6
Hashing
Open addressing / Probing
The 3-SUM problem
Selection algorithm
Lower bounds for sorting algorithms
Lab 09 - October 28-30
Heaps and HeapSort
Week 09 - October 28-30
Graphs
Breadth First Search
Depth First Search
A* algorithm
Tips for the project
hashCode() and equals() in Java
HashSet and HashMap in Java
Hashing
Separate Chaining
Lab 08 - October 21-23
AVL Trees
Week 08 - October 23
Graphs
Breadth First Search
Midterm Exam - October 21
Lab 07 - October 14-16
Binary Search Trees
Week 07 - October 14-16
Self Balancing Binary Search Trees
- AVL Trees
- 2-3 Trees
- B-Trees
Priority queues
Heaps
Lab 06 - October 7-9
Converting recursion to iteration
Binary trees
Week 06 - October 7-9
Binary trees
Tree traversals
Binary Search Trees
Self Balancing BSTs
- AVL trees
Lab 05 - October 2
Measuring performance of algorithms
Week 05 - October 2
Trees
Binary trees
Tree traversals
Lab 04 - September 23-25
Exercises on Stacks
Week 04 - September 23-25
Big-O notation
Master Theorem
Faster Integer Multiplication
Megre Sort
Megre Sort - iterative implementation
A comment on recursion
Lab 03 - September 16-18
Comparable Interface
Streams
Linked List
Week 03 - September 16-18
Exceptions
Coding style conventions
Design patterns:
- Singleton
- Factory
- Builder
Streams in Java
Basic Data Structures:
- Linked Lists
- Doubly Linked Lists
- Stacks
- Queues
Execution stack
Lab 02 - September 9-11
Compiling Java
Basic examples
- Hello World
- Compiling several files
- Using command line arguments
Week 02 - September 9-11
Basic OOP:
- Classes
- Inheritance
- Access modifiers: public, protected, no modifier, private
- Interfaces
- Abstract Classes
Comparable interface
Objects, Reference Variables, and Memory Model
Arrays in Java
Iterators
Basic Java:
- Static variables and methods
- getClass() and instanceof
- Using Generics
- .equals() vs '==' operator
- .clone() method
File I/O
Using command line arguments
Exceptions
Coding style conventions
Design patterns:
- Singleton
There is no lab in the first week
Week 01 - Septeber 4
General Information
Introduction to Java