Welcome to the home page for the Computer Science Department's **
Computer Algorithms for the Life Sciences** course CLA CS 431.
This is the starting point for online course information and documentation.

Instructor: Steve Homer (homer@cs.bu.edu) - 617-353-8927

Class Meetings: Tuesday, Wednesday, and Thursday, 10 am-12:30 pm in PSY 212 and Wed. 2-3 (Lab section) in MCS B31

The course syllabus can be found here.

The Teaching Assistant this semester is Jeffrey Finkelstein.

His office hours are TBA in room MCS 182, his office phone is 353-3298.

The section for the course is:

W 2-3 in MCS B31

The midterm is next Wednesday, June 8, in class.

A short study guide for the midterm is here.

Here is the current homework: HW5.

Past homeworks are here:
HW1, HW2,
HW3, HW4.

Here are the answers to HW 1, answers to HW 2, answers to HW 3.

Course Description: CS 431 is an advanced undergraduate introduction to computer algorithms. It is intended for computer science majors and for students in biology or related sciences who also have some computational background. Its goal is to give students a broader view of computational methods and how these methods are used and applied to problems in the life sciences. In the first two weeks the course will review properties of algorithms and their complexity. We will briefly discuss and present examples of many of the core algorithmic methods which are used in numerous programs and computing applications. Also during this time a few of the key applications areas in biology and central problem in these areas will be introduced. Among the techniques studied will be algorithmic methods of exhaustive search,greedy algorithms, recursive algorithms, graph algorithms, dynamic programming, string and textual data manipulation, basic numerical methods, parallel algorithms, and approximation and probabilistic methods. During the middle part of the class, several of these core methods will be explored and applied in more depth to problems arising in computational biology. The choice of application area will be chosen depending on the interests and backgrounds of the class members. During the last three or four weeks of the class will, two core topics will be expanded upon and applied to a the study of more advanced applications. Class members should have some experience programming in a high-level programming language, and good math skills including those that are needed for the design, writing and efficiency analysis of resource bounded algorithms. Reading regarding the scientific applications will be given, as needed, to those to those with less background. There will be four or five homework assignments, one programming project, a midterm and a final exam. The grade will be determined by: homework and project 40%, midterm 20%, and final 40%. Formal Prerequisites: One programming class (comparable to CS 112) and either CS 330 (Algorithms) or CAS BI316; or consent of instructor.