B5780 - COMPUTATIONAL METHODS FOR BIOINFORMATICS

Academic Year 2025/2026

  • Docente: Ivan Lanese
  • Credits: 10
  • SSD: INF/01
  • Language: English
  • Moduli: Ivan Lanese (Modulo 1) Matteo Manfredi (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Bioinformatics (cod. 6767)

Learning outcomes

At the end of the course, the student has the knowledge for developing and using tools for sequence and structure analysis of biomolecules and more generally for annotation problems in the genomic era. In particular, the student will be able to independently write programs in Python language. He/she will be also able to discuss the theoretical basis of sequence alignment tools (dynamic programming and heuristic algorithms) and to implement them.

Course contents

The course is composed of 2 modules:

  1. Python programming, including: variables, expressions and statements, functions, conditionals, iteration, strings, lists, tuples, dictionaries, files, recursion and object-oriented programming.
  2. Brief introduction to linux (at the beginning of the course) and to dynamic programming and pairwise alignment algorithms (local, global and semiglobal) and their python implementation (at the end of the course).

Readings/Bibliography

No specific book is required. Updated teaching material is available through the Virtuale website.

For further information we suggest:

Cay Horstmann, Rance D. Necaise. Python for Everyone, Wiley

Allen B. Downey. Think Python: How to Think Like a Computer Scientist, O’ Reilly

for the Python programming part.

Teaching methods

Theoretical lessons and practical programming activity in Pyhton under linux.

In relation to the kind of activities and didactical methods adopted,
the attendance to this class will require the preliminary participation
of all the students to the Modules 1 and 2 of the Safety rules on study places, which can be followed remotely in e-learning via the following link: https://elearning-sicurezza.unibo.it/

Assessment methods

The exam is composed of two parts, one per module, that can also be taken in different exam sessions. Each part takes the form of a python programming exercise, including debugging of errors. The ability to obtain correct code via debugging (manual or supported by tools) is a main point in the evaluation. Each part also includes a brief discussion of the developed code. Each part receives a score of up to 16 points. For each part it is also possible to get one bonus point by submitting and discussing one exercise during the course.

Students with learning disorders and\or temporary or permanent disabilities: please, contact the responsible office 
(https://site.unibo.it/studenti-con-disabilita-e-dsa/en/for-students) as soon as possible so that they can propose acceptable adjustments. The request for adaptation must be submitted in advance (at least 15 days before the exam date) to the lecturers, who will assess the appropriateness of the adjustments, taking into account the teaching objectives.


Teaching tools

Teaching material will be available on the Virtuale website.

For exercises we will use the linux shell, a text editor/IDE (each student can choose the one (s)he prefers among EMACS, VS-CODE and PYCHARM) and the Python interpreter.

Office hours

See the website of Ivan Lanese

See the website of Matteo Manfredi