CMPT 225 - Data Structures and Programming - Spring 2023

Course Information Syllabus Lectures Assignments Exams


Course outline:

SFU course outlines

Topics Covered:

  • Intro to Java and Object Oriented Programming
  • Review of some basic data structures: Array, Linked list, Stack, Queue, Iterators
  • Big-O notation and the Master Theorem
  • Recursion: Faster integer multipllication, Merge sort
  • Converting recursion to iteration using a stack
  • Trees, Binary Trees, Traversals
  • Arithmetic expressions: Infix/Prefix/Postfix notations
  • Priority Queues using Heap
  • Heap sort
  • Binary search trees
  • Self-balancing trees: AVL trees, B-trees
  • Hash tables: chaining vs linear-probing
  • Graphs and graph traversals: BFS, DFS, A*
  • Union-find
  • Kruskal's algorithm

Grading:

  • Final exam - 35%
  • Midterm exam - 25%
  • Four homework assignments - 20%
  • Project - 20%

Exams:

There will be a midterm and a final exam. All exams are cumulative, on all the material covered thus far.

Recommended textbooks (not mandatory):

Related courses: