Course Unit Page


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education

Academic Year 2018/2019

Learning outcomes

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, simple ADTs (Stacks and Queues), Trees and Graphs. 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.


    • Module 1:

    • Durbin, Eddy, Krogh, Mitchison. Biological sequence analysis Probabilistic models of proteins and nucleic acids. 1998. Cambridge University Press

      Module 2:

    • Downey, Elkner, Meyers. How to Think Like a Computer Scientist - Learning With Python. 2002. Available at http://www.greenteapress.com/thinkpython/thinkCSpy/
    • Miller and Ranum. Problem Solving with Algorithms and Data Structures. Franklin, Beedle & Associates; 2nd edition (August 22, 2011) Available at http:// [http://interactivepython.org/courselib/static/pythonds/index.html] interactivepython.org/courselib/static/pythonds/index.html
    • Libeskind-Hadas, Bush. Computing for Biologists. 2014. Cambridge University Press •

      Module 3:

    • Newham. Learning the bash shell. 3 rd edition, 2005. O’ Reilly

    • Buffalo. Bioinformatics Data Skills. 2015. O’Reilly

Teaching methods

Lectures, practicum and lab activity including python programming exercises.

Assessment methods

During the course the students are requested to write python programs on selected topics that must be known for the final evaluation.

A midterm exam will test the knowledge on the python language and syntax.

The final examination will be written exercises on writing python functions and shell scripts .

Teaching tools

Video beam, PC, overhead projector, laboratory activity.

Office hours

See the website of Pier Luigi Martelli

See the website of Allegra Via

See the website of Pietro Di Lena