In this course we will explore the computational problems that have emerged from genome sequencing. The topics will include the string algorithms used for the classic sequence alignment and genome assembly problems, algorithms for comparing genomes, sequence classification using probabilistic models and algorithms for analyzing gene expression data. Throughout the course a special emphasis will be made on efficient algorithms designed to meet the challenges of rapidly growing data sets in the current era of high-throughput genome sequencing. The course is intended for Computer Science graduate students. All the required biology will be explained in the class. Students in biological and related sciences with a strong computational background are encouraged to participate.