69442 - Programming for Bioinformatics

Academic Year 2012/2013

  • Docente: Piero Fariselli
  • Credits: 10
  • SSD: INF/01
  • Language: English
  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Bioinformatics (cod. 8020)

Learning outcomes

Prerequisites:

  • basic calculus
  • elements of probability and statistics
  • basic knowledge of programming is not required but welcome
At the end of the course, the student acquires computer science skills and tools used to solve bioinformatics problems. In particular, the student should be able to: understand algorithms behind most used bioinformatics software; use existing tools to solve common bioinformatics problems; design solutions to new problems using computer science techniques; choose the best computer science tools needed to solve a specific problem.

Course contents

How to program in Python Language; Introduction to: Variables, Expressions and Statements, Functions, Conditionals and Recursion, Iteration, Strings, Lists, Tuples, Dictionaries, Classes and Objects, Inheritance, Linked Lists, Stacks and Queues and Trees. The course includes also a brief introduction to dynamic programming. Pairwise alignment algorithms (local, global and semiglobal). Markov Models and Hidden Markov Model: general descriptions and main algorithms.

Readings/Bibliography

  • Downey, J Elkner, C Meyers. How to Think Like a Computer Scientist - Learning With Python. 2002. Available at http://www.greenteapress.com/thinkpython/thinkCSpy/
  • Durbin, Eddy, Krogh, Mitchison "Biological sequence analysis Probabilistic models of proteins and nucleic acids" CAMBRIDGE UNIVERSITY PRESS 1998




Teaching methods

Lectures, practicum and lab activity including python programming exercises.

Assessment methods

During the course the students are requested to provide python programs on selected topics that will contribute to the final evaluation. The final examination will be written exercises and the mark will be combined with those obtained on the python programs.

Teaching tools

Video beam, PC, overhead projector, laboratory activity.

Office hours

See the website of Piero Fariselli