This year's courses (2016-7)
Algorithms in Computational Biology   (3571)
The course focuses on algorithms designed to solve computational problems in biology. It covers classic topics in computational
biology, such as DNA sequence alignment and reconstruction of evolutionary trees, as well as more general techniques for
processing large amounts of noisy data, such as probabilistic graphical models and Monte Carlo sampling. The course will focus
on theory and algorithm design, but will also emphasize the practical applications of these algorithms in cutting edge
biological research from recent years. The course requires basic knowledge of algorithms and probability and no prior knowledge
Probabilistic Models for Data Analysis   (3575)
Analysis of large data sets has emerged in the past decade as a central approach for studying complex phenomena in many scientific
disciplines such as biology, economics, and social sciences. The dramatic increase in availability of data has lead to a paradigm
shift in these disciplines, and to a growing need for tools combining statistics, probability theory, and algorithms. This course
will introduce fundamental concepts in this field, such as Bayes Networks, exact and approximate inference, and Monte Carlo
sampling. The theoretical component of the course involves probability theory, graph theory, and complexity. We will also cover
practical aspects of applying probabilistic models to data and will work with real-life examples.
Seminar in Genome Analysis   (3582)
In this course we will survey and present research papers on genome sequence analysis. We will cover classic
papers on sequence alignment, algorithms introduced for the human genome sequence project, and algorithms used
in today's high throughput sequencing protocols.
System programming in C   (391)     (formerly Programming Workshop)
The course provides basic knowledge and skills in procedural programming (in C) and work in a UNIX/Linux evnironment.
The course covers basic subjects in the C programming language, such as structures, pointers and file management, as well as general concepts
in program design for procedural languages. Among the UNIX topics covered by the course are pipes, processes, and shell scripting.
The course provides hands-on programming experience in the C programming language under the UNIX/Linux operating system.