This course studies the fundamental ideas for how to efficiently analyze 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 tighly 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.

Instructor: Jeremy Siek, Office hours: Mon 3-4pm and Wed 9-10am, and by appointment. Office: LH 230D.

Associate Instructors:

  • Paul Spears, spearspa, Office hours: Mon 2-3pm, Fri 3-4pm, LH 125
  • Marcela Poffald, mpoffald
  • Jayalakshmi Sureshkumar, jsureshk
  • Sayali Warule, sbwarule, Office hours: Tue 11am-12, LH 125

Undergraduate Instructors:

  • Riley Todd, rilatodd, Office hours: Wed 5:30-6:30pm, LH 125
  • Elizabeth Feicke, eafeicke, Office hours: Wed 9-10am, LH 125
  • Jonathan Hawkins, jonthawk, Office hours: Thu 4-5pm, LH 125

Lecture: Monday & Wednesday, 4:00-5:15pm @ Ballantine Hall 310


  • Thursday, 11:15am-12:30pm @ SB 221, Instructors: Paul, Sayali
  • Thursday, 4:00-5:15pm @ LI 503, Instructors: Jayalakshmi, Elizabeth
  • Friday, 9:30-10:45am @ GY 226, Instructors: Paul, Jonathan
  • Friday, 1:00-2:15pm @ GR 102A, Instructors: Jayalakshmi, Riley

Homework and Projects: See the Schedule for due dates, project turn-in at GitHub:IU
Homework and projects may be turned in up to one week late for 1/2 credit. You must notify your lab AI of this so that they know to grade it. If you could not complete a homework or project due to extended illness, you can turn it in late so long as you bring a doctors note that says the time period that you were sick.

Exam Dates:

  • Midterm: October 22 (in class)
  • Final: TBD

Online Discussion: Piazza


  • 20% – Quizzes (conducted at the end of the lab every 2 weeks solutions)
  • 20% – Midterm (solution A, solution B)
  • 30% – Final Exam
  • 10% – Projects
  • 10% – Homework
  • 10% – Participation (in-class and on Piazza)

Textbooks (required):

  • Introduction to Algorithms, 3rd ed. by Cormen, Leiserson, Rivest, Stein.
  • Problem Solving with Algorithms and Data Structures Using Python 2nd Ed. by Miller and Ranum (free online version).


© Jeremy Siek 2014