Data Structures, CS 435

Writing slow and memory intensive computer programs is easy.  Writing elegant and efficient programs requires practice and skills that will be developed in this course.  While increasingly fast computers may tempt us to use sloppy code, today’s powerful machines are also solving phenomenally complex problems, manipulating terabytes of data, and threading thousands of simultaneous processes.  The obvious (slow) solutions will rarely work on these processor-intensive and memory-hogging real-world problems.  This course will help you evaluate the correct algorithms to use for practical applications. 

Homework Assignments

Syllabus

Class Notes Part 1 (Intro to Data Structures)

Class Notes Part 2 (Programming Review)

Class Notes Part 3 (Math Review)

Class Notes Part 4 (Big-O Analysis)

Class Notes Part 5 (More Big-O)

Class Notes Part 6 (Big-O Last Gasp)

Class Notes Part 7 (ADTs and Linked Lists)

Class Notes Part 8 (Stacks and Queues)

Class Notes Part 9 (List Examples)

Class Notes Part 10 (Trees)

Class Notes Part 11 (Binary Trees)

Class Notes Part 12 (Binary Search Trees)

Class Notes Part 13 (Hash Tables)

Class Notes Part 14 (Hash Table Details)

Class Notes Part 15 (Heaps)

Class Notes Part 16 (More Heaps)

Class Notes Part 17 (Sorting)

Class Notes Part 18 (More Sorting)