85285 - Programming

Academic Year 2021/2022

  • Moduli: Alessandro Amoroso (Modulo 1) Zeynep Kiziltan (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Genomics (cod. 9211)

Learning outcomes

By the end of the course, the student knows the principles, the tools and the methodologies pertaining to computer programming. The successful student can find solutions to basic programming problems and to choose the best informatics tools to solve specific programming challenges. At the end of the hands-on lab, the student can program in at least one of the main languages used in bioinformatics.

Course contents

Introduction to Python. Simple numerical programs. Functions scoping and abstractions. Structured types, mutabilty and higher-order functions. Testing and debugging. Exceptions and assertions. Classes and object-oriented programming. A simplistic introduction to algorithmic complexity. Some simple algorithms and data structures. Dynamic programming. Stochastic programs, probability and distributions. Monte Carlo simulations. Sampling and confidence intervals. Understanding experimental data. Lies, damned lies, and statistics. Quick look at machine learning.


John V. Guttag; Introduction to Computation and Programming Using Python (2 ed.); The MIT Press.


Zed A. Shaw; Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code; Pearson Addison-Wesley

Teaching methods


Assessment methods

Both written and oral exam about theory and practice.


Teaching tools

Some source codes

Office hours

See the website of Alessandro Amoroso

See the website of Zeynep Kiziltan


Quality education Gender equality Decent work and economic growth Industry, innovation and infrastructure

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