- 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)
-
from Nov 10, 2025 to Jan 09, 2026
-
from Nov 03, 2025 to Jan 22, 2026
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:
- Python programming, including: variables, expressions and statements, functions, conditionals, iteration, strings, lists, tuples, dictionaries, files, recursion and object-oriented programming.
- 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