Data structures are the fundamental building blocks of any computer program, used for storing, representing and manipulating data in a computer. This text presents the basic concepts of data structures as part of the art of writing computer programs. The author concentrates on the fundamentals of what should be done to solve a problem efficiently rather than technical implementation details. The text includes pseudocode and covers all the most common data structures, such as queues, stacks, trees, heaps, and hash tables, along with the basics of searching, sorting, and coding. This book can supplement any undergraduate algorithms or discrete math course and will also be accessible to students and researchers in other quantitative disciplines. No prerequisites beyond introductory programming and basic mathematics are required, and the accessible, conceptual presentation will appeal to undergraduates in many quantitative fields. Carefully designed problem sets with selected solutions will allow students to test their understanding.