Course description

Analysis, use, and design of data structures and algorithms using an object-oriented language like Java to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming techniques including recursion. Intuitive and rigorous analysis of algorithms. 

Unofficial description

Become proficient in tradeoffs involving data, information, and programming so you can understand how to change the world the way you want to, or how to live interestingly in the world. Using computer science to: empower, educate, enlighten, and explore.


Monday and Wednesday at 1:25-2:40
Recitations are held on Friday


LSRC B101, The Love Auditorium

Data Structures and Algorithms