Docente/i:
Cristiana Larizza
Denominazione del corso: Fondamenti di informatica
Codice del corso: 500655
Corso di laurea: Bioingegneria, Ingegneria Industriale
Settore scientifico disciplinare: ING-INF/05
Crediti formativi: CFU 9
Sito web del corso: http://fdi.labmedinfo.org/FdIIB/index.html
Obiettivi formativi specifici
Gli obiettivi primari dell'insegnamento sono di fornire agli allievi conoscenze di base relative a: a) architettura di un elaboratore e principi logici del suo funzionamento; b) metodi di codifica delle informazioni e operatori per manipolarle; c) sistemi operativi e linguaggi di programmazione; d) principi di base della programmazione strutturata; e) definizione di algoritmi e rappresentazione mediante diagrammi di flusso; f) strutture dati e algoritmi per gestirle; g) linguaggio C e suo utilizzo per la implementazione applicazioni di media complessità . Verrà dedicata parte delle lezioni alla attività pratica con esercitazioni che si svolgeranno direttamente in aula di informatica. L'insegnamento prevede, pertanto, di fornire le basi teoriche della disciplina informatica e una buona capacità operativa nello sviluppo di software a partire dalle quali lo studente sara' in grado di approfondire tecniche e argomenti specifici, di apprendere nuovi linguaggi e di affrontare l'attività sperimentale prevista nei corsi del proprio curriculum.
Programma del corso
Gli obiettivi primari dell'insegnamento sono di fornire agli allievi conoscenze di base relative a: a) architettura di un elaboratore e principi logici del suo funzionamento; b) metodi di codifica delle informazioni e operatori per manipolarle; c) sistemi operativi e linguaggi di programmazione; d) principi di base della programmazione strutturata, definizione di algoritmi e rappresentazione mediante diagrammi di flusso; e) strutture dati e algoritmi per gestirle; f) linguaggio C e suo utilizzo per la implementazione applicazioni di media complessità .
Architettura di un elaboratore e principi logici del suo funzionamento
La descrizione mira a fornire una visione complessiva dell'architettura, nei suoi aspetti sia hardware che software.
In particolare, vengono presentati:
- la struttura funzionale dei calcolatori e dei moduli che li compongono;
- la logica di funzionamento dei processori, il formato e il ciclo di esecuzione delle istruzioni;
- l'organizzazione dei dispositivi di memoria e le relative tecniche di accesso;
- i principi di funzionamento e le caratteristiche dei dispositivi periferici.
Metodi di codifica delle informazioni e operatori per manipolarle
Vengono illustrate diverse tecniche di rappresentazione di informazioni numeriche, testuali, grafiche all'interno degli elaboratori. Viene introdotta l'algebra di Boole.
Sistemi operativi e linguaggi di programmazione
Vengono presentate:
- le funzioni principali del sistema operativo e quelle del kernel e del software di base;
- una classificazione dei vari tipi di sistemi operativi esistenti completata dalle relative caratteristiche principali;
- alcune funzionalitą del sistema operativo UNIX e alcuni comandi di base indispensabili per svolgere l'attivitą pratica nelle aule di Informatica;
- i principali tipi di linguaggi di programmazione di alto livello;
- le funzioni e le caratteristiche dei supporti per lo sviluppo dei programmi e, in particolare, il funzionamento di compilatori ed interpreti.
Principi di base della programmazione strutturata, definizione di algoritmi e rappresentazione mediante diagrammi di flusso
Vengono illustrati i principi della programmazione dei calcolatori elettronici attraverso l'uso di linguaggi di alto livello. Si affrontano in particolare gli aspetti di formalizzazione dei problemi, il progetto e la codifica degli algoritmi attraverso le metodologie e le tecniche della programmazione strutturata e i criteri per l'analisi, testing e convalida dei programmi. L'obiettivo è quello di fornire agli allievi una capacità operativa nello sviluppo dei software ed una sensibilità ai problemi di buona documentazione e affidabilità delle applicazioni.
Strutture dati e algoritmi per gestirle
Vengono illustrate le principali strutture dati sia dal punto di vista della loro definizione astratta che da quello della loro effettiva implementazione sui sistemi di calcolo. Inoltre vengono presentati gli algoritmi per il loro utilizzo nella risoluzione di problemi comuni.
Linguaggio C e suo utilizzo per la implementazione applicazioni di media complessità
Il ciclo di lezioni relativo alla programmazione prevede la descrizione dettagliata della sintassi del linguaggio C. Le lezioni vengono integrate da esercitazioni nel laboratorio di Informatica di Base durante le quali vengono presentate soluzioni a problemi di calcolo numerico e su strutture dati. In particolare vengono implementati algoritmi di ordinamento, di ricerca nelle tavole, di gestione di strutture dati, ecc. La prova d'esame prevede la soluzione di un problema utilizzando il linguaggio C.
Prerequisiti
Quelli richiesti per l'immatricolazione.
Tipologia delle attività formative
Lezioni (ore/anno in aula): 60
Esercitazioni (ore/anno in aula): 16
Attività pratiche (ore/anno in aula): 0
Materiale didattico consigliato
Informazioni di utilità relative all'insegnamento sono reperibili al sito http://fdi.labmedinfo.org/FdIIB/index.html
J. Glenn Brookshear. INFORMATICA una panoramica generale. Pearson - Addison Wesley. 9^ edizione, 11/2006. Buon riferimento per la preparazione della maggior parte degli argomenti teorici.
P. Tosoratti. Introduzione all'Informatica. Casa Editrice Ambrosiana, 1998, Milano. Buon riferimento per la preparazione della maggior parte degli argomenti teorici.
Harvey M. Deitel, Paul J. Deitel. C Corso completo di programmazione - Terza Edizione. Apogeo, 2007. Un testo chiaro e ben scritto, ottimo per la didattica.
Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Seconda Edizione . Jackson Libri, 1989. E' sicuramente il testo di riferimento per il linguaggio C, ideale come manuale di riferimento.
Modalità di verifica dell'apprendimento
Le prove d'esame prevedono una prova scritta di teoria in cui vengono proposti argomenti trattati nel corso delle lezioni che devono essere approfonditi dal candidato e una prova pratica in cui il candidato dovrà sviluppare un programma in linguaggio C che risolva il problema proposto. La valutazione globale è la media aritmetica delle valutazioni conseguite nelle due prove.
|