85285 - Programming

Academic Year 2017/2018

  • Moduli: Simone Martini (Modulo 1) Angelo Troina (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

Computer science and problem solving. Abstract machines. Python machine. Programming in Python: names and visibility, functions, immutable and mutable objects, basic data structures (strings, tuples, lists, dictionaries) and their use in the solution of problems. Abstract data types: queues, stacks, binary trees. Representation of information. Structure of the Von Neumann machine. Limitations of effective procedures: non decidable problems.

The course involves an important lab activity, where the instructors is joined by a teaching assistant and other senior students in giving assistance to students.

Readings/Bibliography

Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: see http://www.cs.unibo.it/~martini/MATH/index.html

Jessen Havill
Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming
Chapman and Hall/CRC. ISBN 9781482254143

Teaching methods

Lectures.
Guided experimentations in computer lab.

The course involves an important lab activity, where the instructors is joined by a teaching assistant.

Assessment methods

There is a single exam covering the lectures of prof. Martini and the lab. Tests in lab during lectures will be given during the semester.

The exam consists in a project, a written examination, and an oral discussion. 

Teaching tools

Computer lab.
Info and material available at http://www.cs.unibo.it/~martini/MATH/

Office hours

See the website of Simone Martini

See the website of Angelo Troina