73093 - INFORMATICA TEORICA (1) (LM)

Anno Accademico 2023/2024

  • Docente: Aldo Gangemi
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Scienze filosofiche (cod. 8773)

Conoscenze e abilità da conseguire

Al termine del corso lo studente conosce i principi della calcolabilità e le teorie alla base dell'informatica. E' in grado di verificare l'esistenza o l'inesistenza di programmi che calcolano una determinata funzione.

Contenuti

Il corso si compone di lezioni frontali. Ogni lezione introduce un argomento specifico. Le lezioni sono associate a sessioni pratiche.

Elenco delle lezioni (ridotte e adattate dal corso "Computational Thinking" di Silvio Peroni):

  • Introduzione al pensiero computazionale
    - Confronto tra lingue naturali e linguaggi di programmazione
    - Astrazione: lo strumento principale del Computational Thinking
  • Algoritmi
    - Cos'è un algoritmo?
    - Come sviluppare un algoritmo: diagrammi di flusso
    - Un algoritmo di base: input, processo, decisione, output
  • Computabilità
    - Il costo computazionale di un algoritmo
    - Il problema dell'arresto
    - Valutazione dell'output: sviluppo basato su test
  • Linguaggi di programmazione
    - Un algoritmo Python di base con variabili, assegnazioni e istruzioni condizionali
  • Strutture di dati ordinate
    - Strutture dati
    - Elenco
    - Pile
    - Code
  • Algoritmi di forza bruta
    - Iterazioni: costrutti for e while
    - Ricerca lineare
    - Ordinamento per inserzione
  • Strutture dati non ordinate
    - Strutture dati infinite?
    - Insiemi
    - Dizionari
  • Ricorsione
    - Un'intuizione
    - Approcci e algoritmi ricorsivi
  • Algoritmi divide et impera
    - Ordinare miliardi di libri
    - Unisci e ordina
  • Alberi
    - Genealogia e markup dei documenti
    - Albero
  • Grafi
    - Ponti di Königsberg
    - Grafi

Testi/Bibliografia

(Sezioni dal) testo "Computational Thinking and Programming" creato da Silvio Peroni per il corso di Computational Thinking.

Metodi didattici

Lezioni frontali e hands-on sessions.

Modalità di verifica e valutazione dell'apprendimento

Una prova scritta per valutare le competenze acquisite dagli studenti sugli argomenti del corso.

Strumenti a supporto della didattica

Il repository GitHub del corso di Silvio Peroni sarà liberamente utilizzato per esemplificare, ed esercitarsi su, i contenuti del corso.

Verrà impostato un gruppo in un'applicazione di messaggistica per l'interazione informale tra gli studenti e con l'insegnante.

Orario di ricevimento

Consulta il sito web di Aldo Gangemi