CMPT 225 - Data Structures and Programming - Spring 2023

Course Information Syllabus Lectures Assignments Exams


Week 13 - April 5
Review Before Final
Lab 12 - April 4
Hashing
Evaluating arithmetic expressions
Week 12 - March 29-31
Selection algorithm
Lower bounds for sorting algorithms
Union-find
Kruskal's algorithm
Evaluating arithmetic expressions
Lab 11 - March 28
Hashing
Selection algorithm
Week 11 - March 22-24
Hashing
Separate Chaining
Open addressing / Probing
HashSet and HashMap in Java
3-SUM
Selection algorithm
Lab 10 - March 21
BFS and DFS on graphs
Week 10 - March 15-17
Graphs
Breadth First Search
Depth First Search
A* algorithm
Tips for the project
hashCode() and equals() in Java
Lab 09 - March 14
Heaps and HeapSort
Midterm exam - March 10
Week 09 - March 8
Priority queues
Heaps
Lab 08 - March 7
AVL Trees
Week 08 - February 27-March 1
Self Balancing Binary Search Trees
- AVL Trees
- 2-3 Trees
- B-Trees
Lab 07 - February 28
Binary Search Trees
Week 07 - February 15-17
Binary trees
- Binary tree traversals
Binary Search Trees
Lab 06 - February 14
Converting recursion to iteration
Binary trees
Week 06 - February 8-10
Master Theorem
Faster Integer Multiplication
Megre Sort
Megre Sort - iterative implementation
Binary trees
Lab 05 - February 7
Measuring performance of algorithms
Week 05 - February 1-3
Big-O notation
Lab 04 - January 31
Exercises on Stacks
Week 04 - January 25-27
Linked Lists
Doubly Linked Lists
Stacks
Queues
Execution stack
A comment on recursion
Lab 03 - January 24
Comparable Interface
Streams
Linked List
Week 03 - January 18-20
Using Generics
Iterators
Comparable interface
Sorting and Searching
File I/O
Using command line arguments
Exceptions
Coding style conventions
Design patterns:
- Singleton
- Factory
- Builder
Streams in Java
Lab 02 - January 17
Learning Java
- .equals vs ==
- Interfaces
- Comparable Interface: compareTo()
- Generics
- Using command line arguments
Week 02 - January 11-13
Basic OOP:
- Inheritance
- 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
Lab 01 - January 10
Compiling Java
Basic examples
- Hello World
- Compiling several files
- Using command line arguments
Week 01 - January 4-6
General Information
Introduction to Java
Variables and strong typing
Basic OOP:
- Classes
- Inheritance
- Access modifiers: public, protected, no modifier, private