Scheda insegnamento
-
Docente Mirko Viroli
-
Moduli Moreno Marzolla (Modulo 1)
Mirko Viroli (Modulo INT)
Sara Montagna (Modulo 2)
-
Crediti formativi 9
-
SSD ING-INF/05
-
Modalità didattica Convenzionale - Lezioni in presenza (Modulo 1)
Convenzionale - Lezioni in presenza (Modulo INT)
Convenzionale - Lezioni in presenza (Modulo 2)
-
Lingua di insegnamento Italiano
-
Campus di Cesena
-
Corso Laurea in Ingegneria biomedica (cod. 0946)
Valido anche per Laurea in Ingegneria elettronica per l'energia e l'informazione (cod. 8767)
Anno Accademico 2015/2016
Conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede le conoscenze di base dei concetti di computazione, di programmazione imperativa, strutturata, e ad oggetti, e di strutture dati e loro algoritmi. In particolare, lo studente è in grado di: - progettare algoritmi base per la manipolazione di strutture dati - realizzare tali algoritmi nei linguaggi di programmazione Java e C - costruire semplici applicazioni Java
Contenuti
PROGRAMMA
- Architettura dei calcolatori: l'architettura di Von Neuman (CPU,
memoria, input/output). la struttura di una CPU; breve introduzione ai circuiti logici.
- Rappresentazione dell'informazione: logica binaria;
rappresentazione dell'informazione numerica (rappresentazione binaria in complemento a due, rappresentazione di numeri floating-point); rappresentazione dell'informazione non numerica: audio, immagini; I concetti di campionamento e discretizzazione; compressione lossy e lossless.
- I sistemi operativi: struttura e funzione dei moderni sistemi
operativi; il nucleo; gestione della memoria; gestione delle periferiche; scheduling dei processi; cenni ai file system.
- Introduzione agli algoritmi: definizione di algoritmo; esempi
(ordinamento e ricerca); l'analisi asintotica del costo computazionale degli algoritmi; strutture dati fondamentali.
- Fondamenti teorici dell'informatica: la macchina di Turing;
funzioni calcolabili e non calcolabili.
- Linguaggio C: costrutti fondamentali del linguaggio (tipi,
espressioni, funzioni, strutture di controllo e cicli); programmazione strutturata; iterazione e ricorsione; array e puntatori.
- Linguaggio Java: costrutti fondamentali del linguaggio; gestione
automatica della memoria; cenni sulla programmazione orientata agli
oggetti: oggetti, classi e gerarchie di classi.
Testi/Bibliografia
I libri che seguono sono da considerarsi testi di consultazione per coloro che desiderano approfondire gli argomenti trattati a lezione.
Testi generali:
J. Glenn Brookshear, Informatica: una panoramica generale (11/ed), Pearson, 2012, ISBN 9788871927671
Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, Informatica: arte e mestiere 4/ed, McGraw-Hill Education, 2014, ISBN 9788838668487
Linguaggio Java:
Cay S. Horstmann, Concetti di informatica e fondamenti di Java, Apogeo Education, 5 edizione, ISBN 978-8838786303
Linguaggio C:
Paul J. Deitel, Harvey M. Deitel, Il linguaggio C: fondamenti e tecniche di programmazione, Pearson, 2013, ISBN 978-8871929378
Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition Prentice Hall, Inc., 1988. ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
Metodi didattici
Lezioni frontali in aula con il supporto di lucidi; esercitazioni pratiche in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame consiste in una prova teorico/pratica che di norma si svolge in laboratorio. La prova consiste in alcune domande sulla parte teorica, sotto forma di quesiti a risposta multipla e/o risposta aperta, e alcuni esercizi di programmazione.
Strumenti a supporto della didattica
Il materiale didattico (lucidi delle lezioni, esercizi svolti, altre risorse utili) si trovano nella pagina web del corso.
Orario di ricevimento
Consulta il sito web di Mirko Viroli
Consulta il sito web di Moreno Marzolla
Consulta il sito web di Sara Montagna