Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Algoritmi e Computabilità: Introduzione all'Informatica di Base, Slide di Fondamenti di informatica

Una panoramica introduttiva all'informatica di base, con un focus sui concetti fondamentali di algoritmi e computabilità. Il testo include esempi pratici e storici, oltre a spiegazioni dettagliate. disponibile sotto licenza Creative Commons Attribuzione 4.0 Internazionale.

Tipologia: Slide

2021/2022

Caricato il 06/04/2022

martinapedalettii
martinapedalettii 🇮🇹

4.6

(52)

120 documenti

1 / 29

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
La lezione inizia alle 15:30
Mentre aspettiamo elimina le distrazioni
1. Mettere il microfono in modalità “muto” e disattivare la webcam
2. Prenotarsi sulla chat per fare eventuali domande
3. Abilitare temporaneamente il microfono quando richiesto dal docente
Regole
di
interazione
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Anteprima parziale del testo

Scarica Algoritmi e Computabilità: Introduzione all'Informatica di Base e più Slide in PDF di Fondamenti di informatica solo su Docsity!

La lezione inizia alle 15:

Mentre aspettiamo elimina le distrazioni

  1. Mettere il microfono in modalità “muto” e disattivare la webcam
  2. Prenotarsi sulla chat per fare eventuali domande
  3. Abilitare temporaneamente il microfono quando richiesto dal docente Regole di interazione

Algoritmi e computabilità

Informatica di base

Luigi Asprino Dipartimento di Filologia Classica e Italianistica, Università di Bologna, Bologna, Italia [email protected] - https://www.unibo.it/sitoweb/luigi.asprino Quest'opera è distribuita con Licenza Creative Commons Attribuzione 4.0 Inter nazionale Autore delle slide: prof. Silvio Peroni

Situazioni di tutti i giorni 2

Sorgente: https://www.ikea.com/ch/it/catalog/products/S09017826/

Situazioni di tutti i giorni 3

Sorgente: https://www.swiss-jazz.ch/standards-jazz/RemarkYouMade.pdf

Cosa hanno in comune queste situazioni?

Una definizione

Un’astrazione di una procedura passo passo che prende qualcosa come input e produce un certo output , scritta in un linguaggio specifico in modo che le istruzioni che definisce possano essere comunicate e comprese da un computer in modo da ottenere qualcosa come conseguenza dell’ elaborazione di qualche materiale di input Un algoritmo è: Un programmatore è una persona che crea algoritmi e li specifica in programmi usando uno specifico linguaggio comprensibile dal computer (elettronico)

Il primo programma

Tra le varie annotazioni che Ada aggiunse al testo, c’era anche una descrizione di come usare la Macchina Analitica per calcolare i numeri di Bernoulli Questo è riconosciuto come il primo programma della storia dei computer, creato senza avere a disposizione la macchina reale, visto che la Macchina Analitica era soltanto teorica, che di fatto fa di Ada la prima programmatrice della storia “[La Macchina Analitica] potrebbe operare su altre cose oltre ai numeri, se si trovassero oggetti le cui relazioni fondamentali possano essere espresse da quelle della scienza astratta delle operazioni” Scienza astratta delle operazioni = informatica

Che linguaggio usare per definire un algoritmo?

Non esiste un linguaggio standard per descrivere un algoritmo in modo che possa essere immediatamente comprensibile da un qualunque computer Di solito si usa uno pseudocodice , ovvero un linguaggio informale per descrivere i passi principali di un algoritmo ad un umano, anche se non è direttamente eseguibile da un computer elettronico – anche se i suoi costrutti sono strettamente connessi con quelli tipicamente definiti nei linguaggi di programmazione Un esempio di pseudocodice: i diagrammi di flusso – li abbiamo informalmente introdotti prima quando abbiamo visto la “Mappa per le discussioni”

Il nostro primo algoritmo

Prendi in input tre stringhe , ovvero due parole e un riferimento bibliografico di un articolo pubblicato, e restituisci : ● (^) 2 se entrambe le parole sono contenute nel riferimento bibliografico ● (^) 1 se solo una delle parole è contenuta nel riferimento bibliografico ● (^0) altrimenti Esempio riferimento bibliografico: Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379–423. doi:10.1002/j.1538-7305.1948.tb01338.x Esempio parole: “Theory” e “Journal”, “Conference” e “Bells”, “Logical” e “System”

Versione parziale

Prendi in input due stringhe, una parola e un riferimento bibliografico, e restituisci 1 se la parola è contenuta nel riferimento bibliografico, 0 altrimenti

Versione finale

Prendi in input due parole e un riferimento bibliografico e restituisci 2 se entrambe le parole sono contenute nel riferimento bibliografico 1 se solo una delle parole è contenuta nel riferimento bibliografico,0 altrimenti

Tre domande chiave del pensiero computazionale

Possiamo usare gli algoritmi per computare qualsiasi cosa vogliamo? Esiste un limite a quello che possiamo computare? È possibile definire un problema computazionale – ovvero un problema che può essere risolto algoritmicamente da un computer – che non può essere risolto da nessun algoritmo? Che ne pensate?

Vediamone uno: la biblioteca di Babele

Risoluzione