B5312 - PROGRAMMING FOR LANGUAGE STUDIES (LM)

Anno Accademico 2024/2025

  • Docente: Luigi Asprino
  • Crediti formativi: 9
  • SSD: INF/01
  • Lingua di insegnamento: Inglese
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Language, Society and Communication (cod. 8874)

Conoscenze e abilità da conseguire

At the end of the course, the student has competences on theoretical and practical foundations for the acquisition, manipulation and analysis of text and data using computational tools. Furthermore, the student will be familiar with the methodological foundations for the development of scripts for natural language processing. They know and use the fundamental algorithms and data structures and are able to build and interpret graphs that show descriptive statistics of the data collected in order to facilitate its analysis.

Contenuti

Il corso è organizzato in una serie di lezioni teoriche e sessioni pratiche. In ogni lezione, dopo una introduzione teorica sull'argomento specifico della lezione si svolgerà una sessione pratica in cui allo studente verrà chiesto di sperimentare in prima persona l’argomento introdotto.


Il corso è organizzato in due moduli. Il primo modulo tratta i concetti base della programmazione, il secondo modulo tratta argomenti avanzati.


Di seguito, sono riportati gli argomenti delle lezioni:


  • Introduzione alla programmazione

    • Algoritmi

    • Strutture dati

    • Linguaggi di programmazione

  • Introduzione al linguaggio Python

    • Interprete Python

    • Jupyter Notebook

    • Command Line interface

    • Strumenti per la gestione di ambienti virtuali e di pacchetti (e.g. anaconda, virtualenv)

    • Oggetti, Espressioni, Tipi di dato

    • IDE Python

  • Importare ed esportare dati e testo in Python

    • Come importare i dati e testo in memoria usando uno script Python

    • Esportare dati e testo su file

  • Manipolare dati e testo in Python

    • Elaborazione del linguaggio naturale con NLTK

  • Descrivere e visualizzare i dati in Python

    • Matplotlib

  • Librerie per il Machine Learning

    • Scikit-learn, Pytorch e tensorflow

Testi/Bibliografia

  • Downey, Allen. Think python (3rd ed). O'Reilly Media Link [https://greenteapress.com/wp/think-python-3rd-edition/]
  • John V. Guttag. Introduction to Computation and Programming Using Python (2 ed.). The MIT Press.

Metodi didattici

Il metodo di insegnamento si basa su sessioni di 2 o 4 ore l'una, che includono lezioni frontali interattive ed esercitazioni da svolgere in classe sotto la supervisione del docente.


Modalità di verifica e valutazione dell'apprendimento

Durante il corso verranno assegnati due homework che dovranno essere svolti obbligatoriamente dallo studente prima dell'esame.

Il primo di questi homework verrà assegnato alla fine di Ottobre, il secondo alla fine di Novembre.

Questi homework non hanno valutazione, ma devono essere svolti prima dell'esame.

Entro la fine del corso, il docente concorderà con lo studente le specifiche del progetto.

Lo studente svolgerà il progetto a casa e una volta concluso presenterà il lavoro svolto al docente.

Strumenti a supporto della didattica

Oltre agli strumenti disponibili in aula, gli studenti useranno componenti software disponibili gratuitamente online. Il software permetterà agli studenti di sperimentare in prima persona i concetti visti a lezione.


Orario di ricevimento

Consulta il sito web di Luigi Asprino

SDGs

Istruzione di qualità

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.