CS 5046: Computation for the Life Sciences (Spring 2006)

T. M. Murali

Tuesday and Thursday, 11AM--12:15PM, 206A Randolph Hall

Office hours: 1-3PM Tuesday and by appointment, 2160B Torgerson

Information on the Course

This course developes the computational, algorithmic, and programming skills needed by graduate students who are interested in doing research in bioinformatics and computational biology, are enrolled in a life science department or the Ph.D. in Genetics, Bioinformatics, and Computational Biology but do not have a computer science background. It builds upon the background developed in CS5045.

The first part of the course introduces students to object-oriented programming using the Perl language and teaches them basic principles of software engineering. The second part of the course deals with the design, analysis and implementation of fundamental algorithms and data structures. The course ends with special topics in Perl of relevance to life science students interested in doing research in bioinformatics and computational biology.

Pre-requisites

You must have graduate standing in a Life Science department or GBCB. CS 5045 is a pre-requisite for this course. Please talk to me if you have not taken CS5045. You cannot use this course to obtain CS major or minor credit. The course is not open to students with graduate standing in the CS programme.

Textbooks

  1. Required
  2. Recommended
  3. Useful
    • Perl Best Practices, Damian Conway, O'Reilly & Associates, 2005. Read online (requires connection via a computer on the VT network).
    • Programming Perl, Larry Wall, Tom Christiansen, and Jon Orwant, third edition, O'Reilly & Associates, 2001.
    • Perl Cookbook, Tom Christiansen and Nathan Torkington, second edition, O'Reilly & Associates, 2003.

Grading

Your grade will depend on homeworks, two mid-terms, and a final project. Submit your homework at the start of class on the due date.
Homeworks 6--8, due at start of class 30%
Midterm examinations February 22 and April 5, in class 20% each
Final project Due May 11, 5PM 30%

Class Schedule

The schedule is very likely to change throughout the semester.
Week Tuesday Thursday
1 (Jan 16, 18) Perl background
MPB, Chapter 2
Perl modules (modules.pl, Conditions.pm)
MPB, Chapter 2
2 (Jan 23, 25) Perl packages
How to be Lazy and Write as Little Code as Possible or
The Wonderful World of CPAN
3 (Jan 30, Feb 1) Multi-dimensional data structures
network.pl, CS5046::Network.pm
Network dataset
Multi-dimensional data structures
Same code as the previous class
4 (Feb 6, 8) Multi-dimensional data structures
Self-interactions and degree distributions
Homework 1
Gene expression data
gene-expression.pl
CS5046::Expression.pm,
ALL/AML dataset
5 (Feb 13, 15) Object-oriented programming
CS5046::Expression.pm, gene-expression-oo.pl
Homework 1 due
Object-oriented programming continued
Same code as the previous class
Homework 2
6 (Feb 20, 22) Review Midterm 1
Homework 2 due
7 (Feb 27, Mar 1) Interaction between multiple classes
GO/Ontology.pm
gene-ontology.pl
OBO file describing the Gene Ontology
Class cancelled
8 (Mar 13, 15) Interaction between multiple classes
GO/Ontology.pm
GO/Term.pm
Homework 3
Command line options and POD
9 (Mar 20, 22) Solutions to Homework 3 (GO::Ontology.pm and GO::Term.pm)
Homework 3 due
Depth-first and breadth-first search(GO::Ontology.pm)
Homework 4
10 (Mar 27, 29) Depth-first and breadth-first search continued Depth-first and breadth-first search continued
11 (Apr 3, 5) Solutions to Homework 4
Homework 4 due
Midterm 2
12 (Apr 10, 12) Algorithm analysis, Sort.pm, sort.pl Algorithm analysis, Sorting
Homework 5
12 (Apr 17, 19)
13 (Apr 25, 27)
14 (May 1)
May 8 Final project due at 5pm

Last modified: Mon Apr 9 22:08:01 EDT 2007