Il corso mira a raggiungere una capacità di progettazione e programmazione di algoritmi attraverso la comprensione delle regole che formano la struttura del linguaggio C. Nella seconda parte vengono introdotti i concetti di struttura dati e di algoritmo in riferimento alla rappresentazione di liste e a problemi di ricerca e ordinamento. La parte finale del corso prevede la programmazione di algoritmi tramite l’uso di fogli di stile.
Contenuto del corso - Cognomi M-Z
Il corso mira a far raggiungere allo studente una capacità di progettazione e programmazione di algoritmi attraverso la comprensione delle regole che formano la struttura del linguaggio C. Nella seconda parte vengono introdotti i concetti di struttura dati e di algoritmo in riferimento alla rappresentazione di liste e a problemi di ricerca e ordinamento. La parte finale del corso prevede la programmazione di algoritmi tramite l’uso di fogli di stile.
Stefano Berretti, Laura Carnevali, Enrico Vicario.
Fondamenti di Programmazione: linguaggio c, strutture dati e algoritmi elementari, C++
Obiettivi Formativi - Cognomi A-L
Gli obiettivi formativi sono i seguenti:
i) Conoscenza e comprensione: (cc1, con riferiemtno ai “Descrittori di Dublino”) conoscenza dei principi matematici e la comprensione del ruolo delle scienze matematiche come strumento di analisi e risoluzione di problemi. La conoscenza dei principi dell’informatica e dell’approccio algoritmico e numerico ai problemi;
ii) Capacità di applicare conoscenza e comprensione (ca1, con riferimento ai “Descrittori di Dublino”): capacità di applicare metodi matematici per modellare, analizzare e risolvere problemi di tipo ingegneristico, anche con l’ausilio di strumenti informatici.
Obiettivi Formativi - Cognomi M-Z
Gli obiettivi formativi sono i seguenti:
i) Conoscenza e comprensione: (cc1, con riferimento ai “Descrittori di Dublino”) conoscenza dei principi matematici e la comprensione del ruolo delle scienze matematiche come strumento di analisi e risoluzione di problemi. La conoscenza dei principi dell’informatica e dell’approccio algoritmico e numerico ai problemi;
ii) Capacità di applicare conoscenza e comprensione (ca1, con riferimento ai “Descrittori di Dublino”): capacità di applicare metodi matematici per modellare, analizzare e risolvere problemi di tipo ingegneristico, anche con l’ausilio di strumenti informatici.
Metodi Didattici - Cognomi A-L
Riferimento al libro di testo, Uso di slide, video, esercitazioni.
Metodi Didattici - Cognomi M-Z
Riferimento al libro di testo, Uso di slide, video, esercitazioni.
Altre Informazioni - Cognomi A-L
Informazioni aggiuntive e AVVISI alla seguente pagina:
http://www.disit.org/drupal/?q=en-US/node/7020
Altre Informazioni - Cognomi M-Z
Informazioni aggiuntive e AVVISI gestiti tramite moodle del corso (https://e-l.unifi.it/)
Modalità di verifica apprendimento - Cognomi A-L
Lo studente deve essere in grado di risolvere problemi tramite algoritmi con l'ausilio di strumenti informatici. In generale l’esame prevede una prova scritta e una orale strutturate in modo tale da: i) stimolare l’autonomia di giudizio degli studenti; ii) permettergli di acquisire proprietà di linguaggio tecnico e incrementare così le proprie abilità comunicative. In particolare, lo studente deve dimostrare di avere acquisito: i) conoscenza relativa all'uso di strutture dati quali: array, matrici, liste, alberi binari; ii) capacità di utilizzare tali strutture dati per la risoluzione e relativa implementazione in linguaggio C, dei problemi assegnati.
Modalità di verifica apprendimento - Cognomi M-Z
Lo studente deve essere in grado di risolvere problemi tramite algoritmi con l'ausilio di strumenti informatici. In generale l’esame prevede una prova scritta e una orale strutturate in modo tale da: i) stimolarne l’autonomia di giudizio degli studenti; ii) permettergli di acquisire proprietà di linguaggio tecnico e incrementare così le proprie abilità comunicative. In particolare, lo studente deve dimostrare di avere acquisito: i) conoscenza relativa all'uso di strutture dati quali: array, matrici, liste, alberi binari; ii) capacità di utilizzare tali strutture dati per la risoluzione e relativa implementazione in linguaggio C, dei problemi assegnati.
Programma del corso - Cognomi A-L
Rappresentazione
• Introduzione al linguaggio C
o Tipi, variabili e costanti
o Operatori ed espressioni
o Istruzioni
• Rappresentazione dei dati
o Numeri
o Interi senza segno
o Caratteri
o Interi con segno
• Definizione di un linguaggio
o Sintassi di un linguaggio
o Grammatica
o Albero sintattico
o Il metalinguaggio BNF
o Semantica e sintassi
• Il linguaggio C
o Tipi variabili e costanti
o Operatori ed espressioni
o Puntatori
o Array
o Istruzioni
o Funzioni
o Dati strutturati
• Strutture dati e algoritmi elementari
o Liste
o Rappresentazione in forma sequenziale
o Rappresentazione in forma collegata con array e indici
o Rappresentazione collegata con puntatori
o Iterazione
• Algoritmi di ordinamento su vettori
o Sequential-sort
• Cenni sugli alberi
o Alberi
o Alberi binari di ricerca: i) Visita in forma ricorsiva; ii) Ricerca; iii) Inserimento ordinato
Applicazione degli algoritmi
• Excel
o Operazioni/Formule di base (Filtri, Somma, Media, Max e Min, creazione formule semplici, ...)
o Analisi dati: Tabelle e Grafici
o Creazione e Uso di Macro
Programma del corso - Cognomi M-Z
Rappresentazione
• Introduzione al linguaggio C
o Tipi, variabili e costanti
o Operatori ed espressioni
o Istruzioni
• Rappresentazione dei dati
o Numeri
o Interi senza segno
o Caratteri
o Interi con segno
Elementi di sintassi di un linguaggio
elementi di architettura degli elaboratori
Compilazione e assemblaggio di un programma
• Il linguaggio C
o Tipi variabili e costanti
o Operatori ed espressioni
o Puntatori
o Array
o Istruzioni
o Funzioni
o Dati strutturati
• Strutture dati e algoritmi elementari
o Liste
o Rappresentazione in forma sequenziale
o Rappresentazione in forma collegata con array e indici
o Rappresentazione collegata con puntatori
o Iterazione
Costo di esecuzione e complessità
Il modello di costo
La complessità di un algoritmo
• Algoritmi di ordinamento su vettori
o Sequential-sort
• Cenni sugli alberi
o Alberi
o Alberi binari di ricerca: i) Visita in forma ricorsiva; ii) Ricerca; iii) Inserimento ordinato
Applicazione degli algoritmi
• Excel
o Operazioni/Formule di base (Filtri, Somma, Media, Max e Min, creazione formule semplici, ...)
o Analisi dati: Tabelle e Grafici
o Creazione e Uso di Macro