









Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica introduttiva sull'informatica, spiegando il concetto di bit, l'unità di misura dell'informazione in informatica, e la sua relazione con il sistema binario dei computer. Inoltre, viene esplorata l'architettura hardware di un calcolatore reale, la sua complessità e la sua evoluzione generazione per generazione. Vengono inoltre presentati i concetti di problem solving, algoritmi e la loro importanza per risolvere problemi complessi. Una panoramica del processo mentale che sta alla base della formulazione dei problemi e delle soluzioni, e delle strategie per risolvere problemi complessi. Inoltre, viene spiegato come definire e trovare le soluzioni a problemi complessi utilizzando metodi formali come l'analogia, il procedimento vs soluzione e la descrizione di algoritmi.
Tipologia: Slide
1 / 15
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










Il computer Un computer è un dispositivo elettronico in grado elaborare informazioni ad alta velocità e di ricevere, trasmettere, immagazzinare ed con precisione. Evoluzione Hardware I primi computer funzionavano a valvole Alla fine degli anni 40: Invenzione dei transistor (Bell Laboratories) Legge di Moore: la complessità dei microcircuiti (per es., misurata dal numero di transistor per chip o per area unitaria) raddoppia periodicamente, con un periodo originariamente previsto in 12 mesi, allungato a 2 anni verso la fine degli anni Settanta e dall’inizio degli anni Ottanta assestatosi sui 18 mesi. Con la miniaturizzazione delle componenti si verifica la produzione ed il successo commerciale dei Personal Computer Il bit In informatica il bit (binary digit) è una unità di misura dell'informazione ● Un bit può contenere i due simboli del sistema binario: zero (0) e uno (1) Il sistema binario è la “lingua” dei computer, perché? ● Vi è stretta correlazione tra i valori 1 e 0 ed il concetto di circuito acceso e spento Unità di misura L’unità di misura della memoria è il Byte 1 Byte è formato da 8 bit 2 Byte (16 bit) = word* 4 Byte (32 bit) = double word* 8 Byte (64 bit) = quad word* *i valori riportati sono indicativi e fanno riferimento ad una architettura in cui una word è uguale a 2 Byte (storicamente: è così definita in ambiente Windows). Hardware Termine utilizzato per definire la parte fisica di un computer, ovvero l’insieme delle componenti che ne permettono il funzionamento Letteralmente “ferramenta” ...perché!? Hardware L’architettura hardware di un calcolatore reale è molto complessa, varia da prodotto a prodotto e di generazione tecnologica in generazione tecnologica Abbiamo utilizzato l’architettura di Von Neumann come
modello semplificato di un moderno calcolatore Architettura di von Neumann 2 CPU Central Processing Unit – CU Control Unit: controllo del flusso di istruzioni
Architettura Software Un computer è un dispositivo in grado di dare risposte rapide e corrette? NO , di conseguenza un computer è un dispositivo POTENZIALMENTE in grado di dare risposte rapide e corrette Potenzialmente? Affinché un computer possa garantire una risposta rapida e precisa ad un problema è necessario che: ● stia eseguendo un programma scritto da un bravo programmatore ● il programma sia eseguito da un bravo utente DAL PROBLEM SOLVING AGLI ALGORITMI Problemi e Calcolatori 1 Abbiamo visto come i calcolatori sono stati sviluppati per svolgere calcoli al fine di risolvere Abbiamo visto che il vantaggio nell’utilizzo di un calcolatore risiede nella sua capacità di eseguire operazioni elementari molto velocemente Ogni calcolatore è in grado di comprendere ed eseguire un limitato e specifico insieme di istruzioni In sintesi (Elaborazione) Con i COMPUTER, le macchine diventano strumenti per risolvere problemi basati sulle informazioni
Cos'è il pensiero computazionale? “Il processo mentale che sta alla base della formulazione dei problemi e delle soluzioni così che le soluzioni siano rappresentate in una forma che può essere implementata in maniera efficace da un elaboratore di informazioni sia esso umano o artificiale.” [Dott.ssa Jeannette Wing ] Il problem solving Il problem solving (soluzione di problemi) è l’insieme dei metodi formali per definire e trovare le soluzioni a problemi più o meno complessi, in diversi ambiti e situazioni. Il problem solving non è soltanto un metodo usato dall’uomo per risolvere tutti i tipi di problemi (economici, statistici, giuridici, etc.) ma anche una tecnica utilizzata per sviluppare il software. Tecniche di problem solving Divide and Conquer (divide et impera)
Definizione di algoritmo L'algoritmo è una strategia che serve per risolvere un problema ed è costituito da una sequenza finita di operazioni (dette anche istruzioni ), consente di risolvere tutti i quesiti di una stessa classe. Esso deve essere:
Bassa astrazione Scegliere un basso di livello di astrazione porta a problematiche invertite: vengono sacrificate intuitività e facilità di realizzazione per favorire la successiva traduzione in programma ELEMENTI BASE PER LA FORMALIZZAZIONE DI UN ALGORITMO Algoritmi: elementi base Possiamo pensare agli elementi base che consentono la rappresentazione di algoritmi come ai mattoncini di un set di costruzione Lego Ogni mattoncino ha una propria funzione specifica (porta, finestra) e vengono composti per ottenere la costruzione desiderata Le variabili 1/ Un elemento fondamentale sono le variabili Gli algoritmi operano principalmente su variabili che conterranno i dati sui quali si vuole svolgere una determinata elaborazione I valori da elaborare devono essere assegnati alle variabili prima di effettuare l’elaborazione Ogni variabile è identificata da un nome che permette di distinguerla dalle altre, indipendentemente dal valore contenuto Le variabili 2/ Sono contenitori Occorre stabilire che tipo di «contenuto» possono contenere Il tipo di contenuto è fisso Il loro contenuto può variare Le variabili contengono dati Il «senso» che le fa diventare informazioni si aggiunge con la programmazione... Le variabili 3/ Concettualmente, le variabili sono come pezzi di carta su cui si possono annotare/modificare i valori di un calcolo che si sta facendo Ogni variabile ha un nome mnemonico, che si usa nel programma per riferirsi alla var. stessa. Una variabile contiene un valore che può essere modificato a piacimento Durante l’esecuzione di un programma, il sistema operativo mantiene una associazione tra il nome di ogni var. e l’indirizzo della cella di memoria in cui è memorizzato il suo valore Quindi una variabile è semplicemente un'astrazione della cella di memoria fisica. Le variabili 4/ Lo stesso programma (o algoritmo), eseguito con variabili di valore diverso da risultati diversi. Lo stesso programma si adatta cioè alle esigenze del momento, senza dover essere riscritto
Scrivi “Non posso eseguire la divisione “ Fine Cosa fa questo algoritmo? E’ un semplice algoritmo per eseguire la divisione tra due numeri, ma includono anche la gestione di un caso particolare in cui il divisore è uguale a zero. Interpretazione dell'algoritmo Leggi il valore di Dividendo : In questa fase, il programma chiede all'utente di inserire un valore, che sarà il dividendo. Il dividendo è il numero da cui si desidera eseguire la divisione. Leggi il valore di Divisore : Il programma chiede all'utente di inserire un secondo valore, che sarà il divisore. Il divisore è il numero per il quale si desidera dividere il dividendo. Se il Divisore è maggiore di 0 allora : Questa è una dichiarazione condizionale che verifica se il divisore è maggiore di zero. Se questa condizione è vera (il divisore è positivo), il programma eseguirà le istruzioni all'interno di questo blocco. Assegna a Quoziente il valore Dividendo / Divisore : In questo passaggio, il programma calcola il quoziente, cioè il risultato della divisione tra il dividendo e il divisore. Il risultato viene memorizzato nella variabile "Quoziente". Scrivi Quoziente : Il programma mostra il valore del quoziente sullo schermo. Altrimenti : Questa parte della dichiarazione condizionale gestisce il caso in cui il divisore è uguale a zero. In tal caso, il programma eseguirà le istruzioni all'interno di questo blocco. Scrivi "Non posso eseguire la divisione": Se il divisore è zero, il programma mostra un messaggio che indica che non è possibile eseguire la divisione poiché la divisione per zero non è definita. Fine: Questa è una dichiarazione che indica la fine del programma o dell'algoritmo. Esempio: Iterazione Supponiamo (per esempio) di voler calcolare il quadrato di una serie di numeri positivi Leggi il valore di Numero Finché Numero > 0 Assegna a Quadrato il valore Numero * Numero Scrivi Quadrato Leggi il valore di Numero Fine Programmazione strutturata L’utilizzo di questi elementi nella rappresentazione di un algoritmo è detto programmazione strutturata La Programmazione strutturata fornisce, a partire dagli anni 60 le regole per la scrittura di algoritmi, ovvero le indicazioni appena viste Formalizzazione della soluzione La differenza tra una soluzione informale e una formale sta nel modo di rappresentare un algoritmo:
Sono disponibili numerosi strumenti per rappresentare una soluzione in modo formale, i più utilizzati sono:
Divisione
Calcola il quadrato del numero in input, termina inserendo un numero uguale o minore di zero