- Docente: Michele Corazza
- Crediti formativi: 12
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
- Corso: Laurea Magistrale in Dati, metodi e modelli per le scienze linguistiche (cod. 5946)
-
dal 10/02/2025 al 14/05/2025
Conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede il necessario background informatico ed una appropriata conoscenza dei linguaggi di programmazione. Sa utilizzare le conoscenze acquisite per progettare autonomamente algoritmi e strutture dati. Sa lavorare in modo autonomo, ma anche inserirsi in un gruppo di lavoro.
Contenuti
Risultati dell'apprendimento
L'introduzione alla programmazione fornisce agli studenti le basi della programmazione informatica in Python.
Dopo aver completato questo corso, lo studente è in grado di:
-
Comprendere i concetti di base della programmazione informatica generali ai linguaggi di programmazione.
-
Applicare le competenze di programmazione per affrontare una varietà di compiti pratici.
-
Applicare le competenze di programmazione per creare analisi realistiche e piccole applicazioni.
-
Selezionare e riutilizza le risorse di programmazione esistenti per il linguaggio Python.
-
Comprendere e applicare le competenze fondamentali di programmazione alla linguistica.
Le competenze di programmazione sono sempre più richieste: ci consentono di sviluppare applicazioni adeguate per l'elaborazione e l'analisi dei dati linguistici, su larga scala. Questo corso insegna le competenze fondamentali di programmazione utilizzando Python, un popolare linguaggio di programmazione. Le competenze acquisite durante il corso consentiranno agli studenti di ottenere il massimo dai numerosi corsi più avanzati del programma.
L'obiettivo pratico è mostrare agli studenti 1) quando e come è possibile e consigliabile automatizzare un'attività o analizzare i dati in modo programmatico; 2) come sviluppare applicazioni personalizzate, anziché affidarsi solo a quelle già pronte. A tal fine, il corso introduce concetti fondamentali di programmazione (variabili, tipi di dati, controllo di flusso, funzioni, input/output), tecniche e risorse specifiche per la linguistica (stringhe, espressioni regolari, file di testo) ed estensioni utili focalizzate sull'analisi dei dati e sulla visualizzazione, manipolazione numerica, scansione Web e query API.
La suddivisione degli argomenti è la seguente:
Parte I (settimane 1-5): Fondamenti di Python-
Perché è necessario sapere come programmare. Nozioni di base su funzionamento di un computer, algoritmi, computabilità e linguaggi di programmazione.
-
Configurazione dell'ambiente e primi passi con i notebook.
-
Variabili, tipi di dati di base, conversione di tipi, libreria standard.
-
Strutture dati di base.
-
Controllo del flusso.
-
Funzioni, lettura/scrittura file.
-
Testare e ‘loggare’ il codice, la documentazione.
-
Tutto sulle stringhe.
-
Espressioni regolari.
-
File di testo, codifiche e formati di file utili.
-
Array e matrici con numpy.
-
Ottenere dati dal Web e utilizzare le API.
-
Pipeline di analisi e visualizzazione dei dati (pandas, matplotlib, seaborn).
Questo elenco di argomenti è provvisorio e potrebbe ancora cambiare leggermente.
Testi/Bibliografia
Si consigliano le seguenti risorse per ulteriori letture e per svolgere esercizi extra:
-
Peroni, Silvio, et al. 'Computational Thinking and Programming', ongoing. https://comp-think.github.io. Capitoli 1-4 + esercizi.
-
Walsh, Melanie. 'Introduction to Cultural Analytics & Python', 2021. https://melaniewalsh.github.io/Intro-Cultural-Analytics/welcome.html .
-
Tagliaferri, Lisa. 'How to Code in Python', 2021. https://www.digitalocean.com/community/tutorial-series/how-to-code-in-python-3 .
Metodi didattici
Conoscenze preliminari consigliate
Non è richiesta alcuna conoscenza preliminare.
Metodo didattico e orari di contattoLezioni frontali, con live coding, e laboratori, con molti esercizi. Per quanto possibile, gli esempi e gli esercizi forniti saranno rilevanti per gli studenti di linguistica. Tutte le sessioni si svolgono di persona.
Gli studenti possono contattarci dopo le lezioni via email per programmare un ricevimento.
Materiale didatticoI materiali del corso verranno resi disponibili su virtuale e in un repository Gitlab pubblico. All'inizio del corso verranno fornite istruzioni su come utilizzare i materiali, anche localmente sulla propria postazione di lavoro, se si preferisce.
Modalità di verifica e valutazione dell'apprendimento
-
Esame orale (50%): domande sui concetti affrontati durante il corso. Svariati appelli, indicativamente a Giugno, Luglio, Settembre.
-
Progetto (50%): un progetto individuale concordato con il docente, su tema a scelta degli studenti o usando uno dei temi suggeriti. Verrà richiesta una relazione sul lavoro svolto 20 giorni prima della giornata degli orali. Il progetto verrà poi discusso durante l'esame orale.
È possibile effettuare esame orale e discussione del progetto nella stessa sessione oppure chiedere di discutere solo la parte generale o il progetto.
Una volta presentato e valutato positivamente, il voto del progetto resta valido per l'anno accademico, fino al superamento dell'esame. Allo stesso modo, l'esame orale può essere sostenuto anche prima della presentazione della componente progettuale, e il suo voto rimane valido per l'anno accademico.
Per trarre il massimo beneficio dal corso, si consiglia vivamente di frequentarlo regolarmente e di sostenere gli esami e il progetto il prima possibile.
Strumenti a supporto della didattica
Diapositive, codice con esercizi, dimostrazioni, letture e discussioni seminariali.
Le lezioni si svolgono in un'aula attrezzata con personal computer collegati a Intranet e Internet.
Orario di ricevimento
Consulta il sito web di Michele Corazza