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: Wed. 3-4pm, Fri. 2-3pm, and stop by or email. Office: LH 330C.
- Amey Jahagirdar, Office hours: Thu 12:30-1:30pm, Location: LH 406
- Nilesh Mahajan, Office hours: Fri 3-4pm (Thu 1-2pm starting 10/17), Location: LH 406
- Sai Prakash, firstname.lastname@example.org, Office hours: Wed 4-5pm, Location: LH 406
- Max Crouse, mvcrouse at umail.iu.edu, Office hours: Fri 11am-12, Location: LH 406
- Geralyn Dierfeldt, gbdierfe at umail.iu.edu, Office hours: Thu 11am-12, Location: LH 406
- Riley Todd, rileyatodd at gmail.com,Office hours: Fri 2:30-3:30pm, Location: LH 406
Lecture: Monday & Wednesday, 4:00-5:15pm @ Lindley Hall 102
- Thursday, 11:15am-12:05pm @ WH 002, Instructors: Amey and Sai
- Thursday, 4:00-4:50pm @ WH 007, Instructors: Riley and Geralyn
- Friday, 12:20-1:10pm @ GY 226, Instructors: Nilesh, Max, and Priyanka
- Midterm: October 16, 4:00-5:15pm
- Final: Dec. 16, 10:15am-12:15pm
Online Discussion: Piazza
- 25% – Quizzes (conducted at the end of the labs most weeks, solutions)
- 20% – Midterm (solution A, solution B)
- 30% – Final Exam (solution A, solution B, solution C)
- 15% – Homework
- 10% – Participation
- 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.)
- 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.