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.
La parte finale del corso prevede cenni all'uso dei folgi 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 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
Obiettivi Formativi - Cognomi A-L
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 M-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.
Prerequisiti - Cognomi A-L
Conoscenza matematica e geometria di base, numeri naturali, reali,
funzioni.
Prerequisiti - Cognomi M-Z
Conoscenza matematica e geometria di base, numeri naturali, reali, funzioni.
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 gestiti nel portale disit: https://www.disit.org/drupal/?q=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) 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 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: 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 A-L
• 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
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
Cenni sulla 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 M-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.