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.
- 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
- 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.
- 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)
- 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).
- Python Website (includes software downloads, tutorial (I recommend sections 1-5 and 9), reference, etc.)
- LiClipse distribution of Eclipse with PyDev.
- Electronic Version of Intro. to Algorithms by Cormen et al.
- Python Books:
- The Quick Python Book, 2nd ed. by Ceder.
- Python Pocket Reference, 4th ed. by Lutz.
- Cracking the Coding Interview by Laakman.
- Learn Python the Hard Way
- Videos, etc. from a similar course at MIT
- Nice web page on DNA sequence alignment is here.