Vinaora Nivo Slider 3.x

Fondamenti di Informatica

SSD: ING-INF/05
CFU: 9

Insegnamenti propedeutici (se previsti dall'Ordinamento del CdS)

Nessuno 

Eventuali prerequisiti

Nessuno

Obiettivi formativi

Fornire le nozioni di base per le discipline informatiche, introducendo lo studente allo studio dei fondamenti teorici dell’informatica, dell’architettura dei calcolatori e dei linguaggi di programmazione ad alto livello. Fornire le conoscenze necessarie per lo sviluppo di programmi per la risoluzione di problemi di limitata complessità.

Risultati di apprendimento attesi 

Conoscenza e capacità di comprensione

Lo studente deve dimostrare di conoscere, saper comprendere e saper descrivere i concetti di base relativi all’informatica teorica, all’architettura dei calcolatori e ai linguaggi di programmazione ad alto livello. Inoltre, lo studente deve dimostrare di conoscere e saper comprendere i programmi per la risoluzione di problemi di limitata complessità.

Capacità di applicare conoscenza e comprensione

Lo studente deve dimostrare di saper applicare le conoscenze apprese per la soluzione di semplici problemi di programmazione, progettando e sviluppando programmi per la soluzione di problemi di limitata complessità.

Programma - Syllabus

Il concetto di elaborazione e di algoritmo. I modelli in Informatica. Automi a stati finiti: definizione, grafo e tabella. Macchina di Turing. Calcolabilità.

Algebra di Boole: definizioni e teorema di De Morgan. Funzioni booleane. L’algebra della logica delle proposizioni.

La codifica e la rappresentazione dell’informazione. Rappresentazione dei numeri naturali, relativi, reali.

Fondamenti di architettura dei sistemi di elaborazione: il modello di Von Neumann, funzionamento del processore. Le memorie, l’Input/Output.

Il sistema operativo. Il ciclo di vita di un programma. Traduttori ed interpreti. I linguaggi di programmazione: grammatiche; la Backus-Naur Form.

Fondamenti di programmazione: tipi di dato semplici strutturati; istruzioni elementari e strutture di controllo.

La programmazione strutturata. Array. I sottoprogrammi e le librerie standard.

Allocazione dinamica e puntatori. Algoritmi su sequenze e array. Strutture e stringhe. Operazioni di Input/Output verso le memorie di massa.

I tipi di dato astratto: liste, pile, code. Algoritmi di ricerca ed ordinamento.

Il linguaggio C++. Impiego di un ambiente di sviluppo dei programmi con esempi di algoritmi fondamentali e di gestione di tipi di dato astratto. Elementi di programmazione ad oggetti.

Materiale didattico

Si veda sito web del docente della materia.

Modalità di svolgimento dell'insegnamento

I docenti utilizzeranno: a) lezioni frontali per circa il 60% delle ore totali, b) ed esercitazioni sullo sviluppo di programmi in linguaggio C++ per circa il 40% delle ore totali.

Le esercitazioni vengono svolte in aula e/o in laboratorio con l’utilizzo di un ambiente di sviluppo integrato ed attraverso piattaforme per laboratori didattici virtuali.

Verifica di apprendimento e criteri di valutazione

Modalità di esame

L'esame si articola in prova scritta e orale. In caso di prova scritta i quesiti sono: a risposta libera.

L'esame consiste in una prova di programmazione è vincolante ai finire dell'accesso alla prova finale. 

 

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.