This course studies the fundamental ideas for efficiently analyzing large amounts of data, such as DNA sequence databases and geographic information. These fundamental ideas come in two kinds: algorithms and data structures. Algorithms are instructions for solving problems and data structures are strategies for organizing information on computers. Efficient algorithms require appropriate data structures, and vice versa, so the study of algorithms and data structures is tightly linked. In this course we learn about the algorithms and data structures that form the building blocks for most of Today's large-scale computer systems. We apply these ideas to solve challenging problems in bioinformatics and geographic information systems. Warning: a possible side-effect of taking this course is doing better on job interview questions.

Lecture: Tuesdays and Thursdays, 9:30-10:45am, in SB 150.

Instructor: Jeremy Siek (jsiek), Office hours: TBD, Office: LH 230D

Associate Instructors:

  • TBD

Textbook (required):

  • Data Structures and Algorithm Analysis in Java, 3rd Ed. by Mark A. Weiss



  1. TBD

© Jeremy Siek 2017