09730 - FONDAMENTI DI INFORMATICA

Anno Accademico 2020/2021

  • Docente: Sara Montagna
  • Crediti formativi: 6
  • SSD: ING-INF/05
  • Lingua di insegnamento: Italiano

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 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 in un linguaggio di programmazione.

Contenuti

Architettura dei calcolatori: architettura di Von Neuman; struttura di una CPU.

Rappresentazione dell'informazione: rappresentazione dell'informazione numerica (rappresentazione in complemento a due, rappresentazione floating-point); rappresentazione dell'informazione non numerica.

Introduzione agli algoritmi e alle strutture dati: definizione di algoritmo ed esempi; analisi asintotica; strutture dati fondamentali.

Linguaggio C: costrutti fondamentali del linguaggio: tipi, operatori, espressioni, funzioni, strutture di controllo, cicli, funzioni; programmazione strutturata; iterazione e ricorsione; array e puntatori; algoritmi su array (inversione, ordinamento, ricerca sequenziale, ricerca binaria); stringhe.

Testi/Bibliografia

Testo adottato:

  • Paul J. Deitel, Harvey M. Deitel, "Il linguaggio C: fondamenti e tecniche di programmazione", 8/ed, Pearson, ISBN 978-8891901651

Ulteriore materiale sarà reso disponibile dal docente.

Approfondimenti sulla parte di teoria:

  • J. Glenn Brookshear, “Informatica—una panoramica generale”, 11/ed., Pearson 2012, ISBN 978-8871927671

Approfondimenti sulla programmazione in C:

  • 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

Approssimativamente 7 ore di lezione alla settimana, di norma 4/5 teoriche e 2/3 di esercitazione. Durante le lezioni teoriche vengono introdotti i concetti base dell'informatica, e vengono via via descritti i costrutti di programmazione che sono poi oggetto di esercitazioni parzialmente guidate, con la supervisione dei docenti. Di tutti gli esercizi proposti viene poi fornita una possibile soluzione sul sito Web del corso, allo scopo di supportare le attività di studio individuale. Alcune esercitazioni sono rivolte a simulare lo svolgimento dell'esame finale.

Modalità di verifica e valutazione dell'apprendimento

Gli studenti saranno valutati in base allo svolgimento di una prova scritta composta da esercizi e domande di tipo teorico ed eventualmente di un esame orale. L'esame è strutturato in modo tale da valutare il raggiungimento degli obiettivi didattici; in particolare, la capacità di ragionare in termini logici e algoritmici e le competenze di analisi e sintesi di programmi in linguaggio C.

Strumenti a supporto della didattica

Nel corso sarà utilizzato anche materiale didattico fornito dal docente (in particolare, lucidi e dispense con esercizi e problemi vari).

Orario di ricevimento

Consulta il sito web di Sara Montagna