Descrizione generale sintetica
Il corso presenta i fondamenti di programmazione degli elaboratori adottando Python come linguaggio di riferimento.
Sono presentati i concetti base della programmazione imperativa senza tralasciare l'impiego di librerie specifiche per il calcolo scientifico. In particolare il discente è condotto verso l'acquisizione degli strumenti concettuali classici della programmazione strutturata mediante la descrizione e l'utilizzo delle strutture predefinite per l'elaborazione dei dati, la codifica di algoritmi notevoli e l'impiego della tecnica della ricorsione. Durante tutto il corso si farà uso di un ambiente di sviluppo professionale per il linguaggio Python.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi
Le lezioni frontali sono tenute in aula con l'ausilio del videoproiettore.
Tutto il materiale presentato (slide e frammenti di codice) è messo a disposizione degli studenti nel portale Studium.
Le slide non intendono sostituire i testi di riferimento ma rappresentano una guida puntuale agli argomenti del corso.
Al fine di perseguire gli obiettivi formativi del corso esposti nei descrittori 2) Applying knowledge and understanding e 3) Making judgements:
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel Syllabus.
NOTA BENE: Informazioni per studenti con disabilità e/o DSA
A garanzia di pari opportunità e nel rispetto delle leggi vigenti, gli studenti interessati possono chiedere un colloquio personale in modo da programmare eventuali misure compensative e/o dispensative, in base agli obiettivi didattici ed alle specifiche esigenze. E' possibile rivolgersi anche al docente referente CInAP (Centro per l’integrazione Attiva e Partecipata - Servizi per le Disabilità e/o DSA) del nostro Dipartimento, prof. Filippo Stanco
Nessun prerequisito.
Le lezioni frontali sono erogate in modalità fortemente interattiva docente-discenti pertanto la frequenza è consigliata. Il calendario delle lezioni è pubblicato in www.dmi.unict.it
(1) A.Downey, Think Python, 2nd Ed., Grean Tea Press (disponibile online).
(2) C.Horstmann - R.Necaise, Concetti di Informatica e fondamenti di Python, 2nd. Ed., Maggioli Editore.
(3) M.Lutz, Learning Python, 4th Ed., O'Reilly (disponibile online).
(4) D.Pine, Introduction to Python for Science and Engineering, SMTEBooks - CRC Press (disponibile online).
Relativamente allo svolgimento del corso, il testo (2) è adottato.
Si tenga presente che tutti i testi sopraindicati sono comunque idonei al conseguimento degli obiettivi dell'apprendimento, considerando che:
- il libro (2) è consigliato ai principianti in quanto introduttivo alla programmazione e con una grande quantità di esercizi presenti in esso;
- il libro (3) è di livello avanzato ed è consigliato a chi è già nota la programmazione.
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione alla programmazione e codifica dell'informazione | 2 |
2 | Ambiente di sviluppo Python | 1, 2 ,3, 4 |
3 | Costrutti del linguaggio Python | 1, 2, 3, 4 |
4 | Strutture dati predefinite in Python | 1, 2, 3, 4 |
5 | Algoritmi notevoli (ricerca, ordinamento, fusione) | 2 |
6 | Ricorsione | 2 |
7 | Librerie NumPy, SciPy, PlotPy | 4 |
L’esame consiste nella verifica degli obiettivi preposti per il corso e cioè:
L'esame è composto da due prove indipendenti atte a verificare gli obiettivi dell'apprendimento e si intende superato quando tutte e due le prove saranno valutate sufficientemente:
(1) prova scritta (due esercizi di codifica, verifica gli obiettivi (a) e (b)),
(2) prova orale (discussione di un progetto software assegnato, verifica gli obiettivi (a), (b) e (c)).
La prova (1) consiste in un compito scritto assegnato in aula che comprende due semplici esercizi di stesura di codice Python. Il tempo assegnato per tale prova è un'ora. La valutazione di tale prova V1 è espressa in trentesimi.
La prova (2) consiste in un colloquio orale durante il quale sarà discusso un progetto software presentato dal discente. Il progetto può essere svolto da un gruppo di studenti (da uno a tre) e deve essere concordato con largo anticipo con il docente. Al momento del colloquio il discente dovrà presentare il codice Python, il manuale utente e la documentazione progettuale. Nel caso di gruppi di studenti la valutazione deve avvenire contemporaneamente. La durata media del colloquio è mezz'ora. La valutazione V2 di tale prova è espressa in trentesimi.
La valutazione complessiva dell'esame è data dalla media di V1 e V2.
La prova (1) è da considerarsi propedeutica alla (2). Le due prove possono essere superate in momenti differenti, pertanto ad ogni appello gli studenti potranno sostenere una o entrambe le prove. La sufficienza conseguita in una certa prova sarà considerata valida per tutto l’anno solare (fino a Dicembre successivo al corso di riferimento).
Per accedere alla prova (1) lo studente deve risultare prenotato nel portale studenti, la prova (2) non necessita di prenotazione.
La verifica degli obiettivi dell'apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Alcune tipiche questioni per la prova scritta (1) sono le seguenti:
Alcune tipiche domande per la prova orale (2) sono le seguenti: