The sequencing of the human genome fueled a computational revolution in biology. As a result, modern biology produces as many new algorithms as any other fundamental realm of science. This course will introduce fundamental algorithms used to analyze biological data and give students the opportunity to write code to implement these algorithms so that they will be in a position to contribute to future innovations in the field.
In this course, we will uncover some of the algorithmic ideas that are fundamental to an understanding of modern biology. Computational concepts like dynamic programming and graph theory will help us explore algorithms applied to a wide range of biological topics, from finding regulatory motifs to assembling genomes. Throughout the process, we will apply bioinformatics algorithms to real genetic data.
CS 240 is the prerequisite for the course. Although many students will have significant biology background, we will attempt to cover the biology necessary to be successful in the class, so there is no specific biology course required as a prerequisite.
We will use this http://bioinformaticsalgorithms.com/ book for the class. There are a number of other learning materials at this URL. You will have to order the book yourself. The bookstore had a problem and wasnt able to order it. You can get by for the first couple of weeks using this pdf from the book but you will need to eventually get your own book.
You will also need to bring a laptop to class every day. We will work on the assignments during class and you will not be able to participate if you dont have a laptop.
Grading will be based on the number of algorithms you successfully complete, midterms, final exam, and projects. Your grade will be based on the following weights:
Rosalind Algorithms - 35%
Exams - 20%
Labs - 35%
Participation - 10%
Because the Rosalind Assignments are really the pacing element of the class, you should complete them on time. There will be no late assignments. Although you may work in a pair on Rosalind projects, you should each write your own code and turn in your own submission. You can work ahead so that if you have conflicts, they will not impact your ability to submit projects on time. Laboratory experiences will be team efforts and you can turn in one submission for each team. There will be a 10% per day late penalty for Laboratory projects.
Classroom participation will be essential for success in this class. Groups will present material from the chapter and will discuss approaches to solutions during class. All students in the class will participate in analyzing the algorithms and suggesting new implementation strategies. There will also be a reading quiz that will be given to help students to master the material in the book.
The solution to many of the problems will be provided in class. Additionally, groups will work together in class on projects. You will be at a significant disadvantage if you do not attend all of the classes and work consistently during class time.
Students will be assigned to groups for most of the classroom time. These groups will be changed during the semester in order to allow students to develop relationships with their colleagues. Although students will work as a group to complete assignments, each student will need to pass off their Rosalind assignment individually and will need to understand the code they submit.
The class will progress at a rapid pace and there will be multiple programming assignments due each week. If you get behind, it will be nearly impossible to catch up. If you attend class and spend time each week in completing homework, we expect that the course will take no more than 9 hours per week in out of class time.