CPSC 2070

Algorithms and Data Structures I

https://ufred.ca/courses/cpsc-2070/

Course description

This second-year course introduces the core ideas behind efficient algorithms and data structures. Students learn how different ways of representing data affect speed, memory use, and overall program design. The course covers fundamental data structures, including arrays, linked lists, stacks, queues, hash tables, heaps, trees, and graphs. It also introduces standard algorithmic techniques through searching, sorting, traversal, and selected graph algorithms. Throughout the course, students practice analyzing performance using asymptotic notation and apply these ideas to make informed implementation choices. This course emphasizes correctness, tradeoffs, and evidence-based reasoning, supported by hands-on programming work and targeted evaluation. By the end of the course, students will be able to select and implement appropriate structures and algorithms for a given problem and explain the reasoning behind those choices in precise, technical terms