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 python. Nella seconda parte vengono introdotti i concetti di struttura dati e di algoritmo in riferimento alla rappresentazione di liste, dizionari e insiemi e a problemi di ricerca e ordinamento.
Contenuto del corso - Cognomi O-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 python. Nella seconda parte vengono introdotti i concetti di struttura dati e di algoritmo in riferimento alla rappresentazione di liste, dizionari e insiemi e a problemi di ricerca e ordinamento.
- Pensare in Python Copertina flessibile di Allen Downey -
- Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624
- Pensare in Python Copertina flessibile di Allen Downey -
- Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624
Obiettivi Formativi - Cognomi E-N
Gli obiettivi formativi sono i seguenti:
i) Conoscenza e comprensione: (cc1, con riferimento ai "Descrittori di Dublino"). La conoscenza dei principi dell'informatica e dell'approccio algoritmico e numerico ai problemi: capacità risolvere problemi trasferendone la modellazione matematica in una prevalentemente algoritmica.
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 con l'ausilio di strumenti informatici, in particolare sfruttando il linguaggio di programmazione python per implementare algoritmi fondamentali per risolvere problemi logici, matematici e numerici.
Obiettivi Formativi - Cognomi O-Z
Gli obiettivi formativi sono i seguenti:
i) Conoscenza e comprensione: (cc1, con riferimento ai “Descrittori di Dublino”). La conoscenza dei principi dell’informatica e dell’approccio algoritmico e numerico ai problemi: capacità risolvere problemi trasferendone la modellazione matematica in una prevalentemente algoritmica.
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 con l’ausilio di strumenti informatici, in particolare sfruttando il linguaggio di programmazione python per implementare algoritmi fondamentali per risolvere problemi logici, matematici e numerici.
Competenze Trasversali
- L'esame orale prevede la discussione di problemi e la loro soluzione tramite implementazione di conseguenza lo studente sviluppa una espressione e discussione tecnica adeguata delle proprie argomentazioni (ct3, con riferimento ai descrittori di Dublino).
- La valutazione dell'esame richiede la consegna di un elaborato per accedere all'orale per cui è prevista una scadenza ferma, di conseguenza lo studente matura la capacità di rispettare i temi (ct7 con riferimento ai descrittori di dublino)
Prerequisiti - Cognomi E-N
Conoscenza matematica e geometria di base, numeri naturali, reali, funzioni.
Prerequisiti - Cognomi O-Z
Conoscenza matematica e geometria di base, numeri naturali, reali, funzioni.
Metodi Didattici - Cognomi E-N
Riferimento al libro di testo, Uso di slide, video, esercitazioni.
Metodi Didattici - Cognomi O-Z
Riferimento al libro di testo, Uso di slide, video, esercitazioni.
Altre Informazioni - Cognomi E-N
Informazioni aggiuntive e AVVISI gestiti tramite moodle del corso (https://e-l.unifi.it/)
Altre Informazioni - Cognomi O-Z
Informazioni aggiuntive e AVVISI gestiti tramite moodle del corso (https://e-l.unifi.it/)
Modalità di verifica apprendimento - Cognomi E-N
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: stringhe, array, matrici, liste e dizionari; ii) capacità di utilizzare tali strutture dati per la risoluzione e relativa implementazione in linguaggio python, dei problemi assegnati.
Modalità di verifica apprendimento - Cognomi O-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: stringhe, array, matrici, liste e dizionari; ii) capacità di utilizzare tali strutture dati per la risoluzione e relativa implementazione in linguaggio python, dei problemi assegnati.
Programma del corso - Cognomi E-N
Rappresentazione
• Introduzione al linguaggio python
o Tipi, variabili e costanti
o Operatori ed espressioni
o Istruzioni
• Rappresentazione dei dati
o Numeri
o Interi
o Caratteri e stringhe
Elementi di sintassi di un linguaggio
elementi di architettura degli elaboratori
Esecuzione di programmi e ambienti: notebooks, IDE, console
• Il linguaggio python
o tipi mutabili e immutabili
o operatori ed espressioni
o istruzioni
o funzioni
o cicli while e for
o esecuzione condizionale
• Strutture dati e algoritmi elementari: Liste, Dizionari, Insiemi, iterazioni su strutture dati
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
Cenni su analisi dei dati, lettura e scrittura di file in forma tabulare, grafici.
Programma del corso - Cognomi O-Z
Rappresentazione
• Introduzione al linguaggio python
o Tipi, variabili e costanti
o Operatori ed espressioni
o Istruzioni
• Rappresentazione dei dati
o Numeri
o Interi
o Caratteri e stringhe
Elementi di sintassi di un linguaggio
elementi di architettura degli elaboratori
Esecuzione di programmi e ambienti: notebooks, IDE, console
• Il linguaggio python
o tipi mutabili e immutabili
o operatori ed espressioni
o istruzioni
o funzioni
o cicli while e for
o esecuzione condizionale
• Strutture dati e algoritmi elementari: Liste, Dizionari, Insiemi, iterazioni su strutture dati
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
Cenni su analisi dei dati, lettura e scrittura di file in forma tabulare, grafici.