The course aim to introduce computational thinking and the
algorithmic approach to solving problems correctly and efficiently.
Algorithms are ubiquitous in bioinformatics and are often at the
interface of computer science and biology. Well established algorithmic
techniques will be studied as well as ways to encode them in a computer
program using python.

We will introduce the algorithmic approach and the
theory of algorithms for studying correctness and efficiency,
understanding what makes a good algorithm and how to classify them.

We will study characteristic algorithmic techniques
and the relate-d computational ideas that are relevant to the field of
biology and how to select the most suitable to solve a given task.
Topics covered include

  • Searching algorithms
  • Divide-and-Conquer algorithms
  • Clustering and Tree-based algorithms

We will work with Python and how to write a computer program encoding a given algorithm.

The course will look into Cloud technologies in order to execute algorithms in order to analyze large volumes of data.

Details on the material, class schedule and assignments are available on the web page of the course: http://ichatz.me/Site/PrinciplesOfComputerScience2