85285 - PROGRAMMING

Anno Accademico 2017/2018

  • Docente: Simone Martini
  • Crediti formativi: 12
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Moduli: Simone Martini (Modulo 1) Angelo Troina (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Genomics (cod. 9211)

Conoscenze e abilità da conseguire

Al termine del corso, lo studente conosce i principi, gli strumenti e le tecniche della programmazione delle applicazioni informatiche. È in grado di individuare soluzioni a nuovi problemi informatici utilizzando tecniche computazionali e scegliendo quegli strumenti informatici che meglio risolvono specifici problemi di programmazione. Al termine dell'esperienza di laboratorio lo studente sa programmare negli specifici linguaggi di programmazione utilizzati in campo bioinformatico.

Contenuti

Informatica e problem solving. Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, strutture dati di base (stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Tipi di dato astratti: coda, pila, albero binario; algoritmi ricorsivi su di essi. Rappresentazione dell'informazione. Struttura della macchina di Von Neumann. Limitazioni dei procedimenti effettivi: esistenza di problemi non risolubili per via algoritmica.

L'insegnamento ha un'intensa attività di laboratorio (3CFU) distribuita sulla durata del corso, di cui è responsabile il dott. Angelo Troina

Testi/Bibliografia

Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
Manoscritto disponibile on-line: si veda 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

Metodi didattici

Lezioni in aula.
Esercitazioni in laboratorio.
L'insegnamento è distribuito sia nel primo che nel secondo semestre, con maggiore intensità nel primo.

Il corso ha un'intensa attività di laboratorio (3CFU) distribuita sulla durata del corso, di cui è responsabile il dott. Angelo Troina.

Modalità di verifica e valutazione dell'apprendimento

Il corso ha sia lezioni tradizionali che lezioni di laboratorio, con un unico esame. Ogni settimana saranno proposti in laboratorio alcuni test di autovalutazione: non sono necessari per l'esame, ma costituiscono un importante strumento per la sua preparazione. La consegna di tutti gli assegnamenti durante l'anno dà diritto ad un bonus di 1 punto.

L'esame è costituito da tre parti: (i) la redazione di un progetto, da consegnare prima di sedere allo scritto; (ii) una prova scritta (2 ore, non è consentita la consultazione di appunti o testi); (iii) una verifica orale.
Il testo del progetto è unico per tutto l'anno accademico ed è reso pubblico entro il mese di marzo. I progetti vanno consegnati entro le scadenze che sono fissate (alcuni giorni precedenti la prova scritta cui si intende presentarsi).

Condizione necessaria e sufficiente per sostenere l'orale è aver superato lo scritto con una prova sufficiente (voto ≥ 18/30) e aver consegnato un progetto sufficiente. Ad un progetto sufficiente viene assegnato un voto tra 0 e 5, che viene sommato al voto dello scritto per determinare il voto in trentesimi di ammissione all'orale. Un progetto insufficiente deve essere ripresentato: sarà corretto e valutato insieme ai progetti della scadenza successiva. Non si può rifiutare il voto assegnato al progetto.

Strumenti a supporto della didattica

Laboratorio informatico.
Informazioni e materiale sul corso sono disponibili al link www.cs.unibo.it/~martini/MATH/

Orario di ricevimento

Consulta il sito web di Simone Martini

Consulta il sito web di Angelo Troina