Introduzione al Corso di Algoritmi
|
|
- Roberto Amore
- 8 anni fa
- Visualizzazioni
Transcript
1 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 1/36 Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione pratiche sul corso: - Modalità di esame (e come superarlo brillantemente) - Materiale didattico (libri di testo, materiale di supporto, esercizi di esame...) - Altro...
2 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 2/36 Corso di Algoritmi Obiettivi (ufficiali) del corso: Apprendere metodologie per il progetto ed analisi di algoritmi Di fatto, acquisiremo strumenti concettuali per la risoluzione di problemi. (Quali problemi? Di qualunque tipo...) Cosa studieremo? - Tecniche generali per lo sviluppo di algoritmi efficienti atti a risolvere problemi computazionali di interesse pratico - Strumenti per la valutazione degli algoritmi
3 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 3/36 Perchè studiare algoritmi? Tecniche algoritmiche permettono di risovere problemi importantissimi in Informatica (e ben oltre...) Trasmissione dati in Internet (come si gestisce in pratica il flusso di dati nei vari router della rete?) Ricerca nel WEB (come fà Google a trovare le informazioni nel WEB?) Bioinformatica (come il DNA determina le nostre caratteristiche?) Processi economici (come si gestiscono le aste on-line su Ebay?, come si effettua la compravendita di azioni su Internet?) Organizzazione di risorse e servizi (come si schedulano i voli delle aerolinee? Come si assegnano le frequenze nelle celle delle reti cellulari?)
4 E non lo dico solo io: Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 4/36
5 Anche il Corriere della Sera del 15/1/2012! Universita di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 5/36
6 ...e se non siete ancora convinti dell utilità degli algoritmi, questo dovrebbe... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 6/36
7 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 7/36 Iniziamo con un pó di storia... Il termine Algoritmo deriva dal matematico Persiano al-khwârizmî (c ), autore del testo Al-jabr w al-muqabâla (da cui anche il termine Algebra)
8 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 8/36 Un altro pó di storia... Algoritmi di tipo numerico furono studiati da matematici babilonesi ed indiani piú di di 3000 anni fá. Algoritmi in uso fino a tempi recenti furono studiati dai matematici greci 500 anni a.c. Esempio: Algoritmo di Euclide per il Massimo Comun Divisore Esempio: Algoritmi geometrici (calcolo di tangenti, sezioni di angoli,...)
9 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 9/36 Ma cos é un Algoritmo? Algoritmo: procedura computazionale che prende certi valori in input e produce i valori richiesti in output Algoritmo: strumento per risolvere un Problema Computazionale Il Problema computazionale (in forma generale o astratta) é definito da una relazione input/output Un algoritmo é quindi una procedure computazionale per ottenere la desiderata relazione input/output
10 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 10/36 Esempi di Problemi Computazionali Problema dell Ordinamento: Input: sequenza di numeri a 1,...,a n Output: una permutazione a 1,...,a n dell input tale che a 1... a n Algoritmo di Ordinamento: procedura che prende in input a 1,...,a n e produce in output a 1... a n
11 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 11/36 Esempi di Problemi Computazionali Problema della ricerca di un elemento: Input: Tabella A[1...n] ed elemento x Output: intero i, se x = A[i] per qualche indice i, un messaggio Non c é", altrimenti. Algoritmo di Ricerca: procedura che prende in input A[1...n] ed elemento x, e produce in output "i" se x = A[i], Non c è" altrimenti.
12 Dovrete avere la capacità di passare da tale problema concreto alla sua versione astratta (cioè l ordinamento) e quindi risolverlo con le tecniche che apprenderete in questo corso. Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 12/36 Nella vita reale raramente avrete a che fare con problemi astratti... Ciò che accadrà sarà che il vostro capo vi chiederà (ordinerà): Mi scriva un programma che elenchi i nostri fornitori in base ai loro tempi di consegna!
13 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 13/36 Abbiamo detto che studieremo Algoritmi Efficienti Cosa intendiamo per Algoritmi Efficienti? Algoritmi Efficienti = Algoritmi che usano "poche" risorse Risorse = Tempo e Spazio richiesto dall algoritmo per produrre l output Problema 1: Come misurare le risorse usate da un algoritmo? (Analisi degli algoritmi) Problema 2: Come progettare algoritmi che usano "poche" risorse? (Tecniche generali per il progetto di algoritmi) Lo vedremo...
14 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 14/36 Motivazioni Perché occuparci di algoritmi efficienti? Perchè algoritmi efficienti conducono a programmi efficienti Perchè programmi efficienti si vendono meglio... Perchè programmi efficienti fanno un miglior uso dell hardware Perchè programmatori che scrivono programmi efficienti sono piú richiesti...
15 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 15/36 Obiettivi Cosa otterrete da questo corso? Metodi e conoscenze per formulare modelli astratti da problemi pratici (Problemi Concreti Problemi Computazionali) Metodi e conoscenze per la progettazione di algoritmi efficienti per la risoluzione di problemi computazionali Metodi e conoscenze per analizzare l efficienza di algoritmi Un catalogo" di algoritmi efficienti, pronti per l uso, per la risoluzione dei piú comuni problemi computazionali
16 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 16/36 Esempio: Profitto Massimo in anni contigui Profitti della Ditta ACME-Corporation Anno Profitto in M$ Esempi: Tra gli anni 1 e 9 la Ditta ACME ha guadagnato = 4 M$, tra gli anni 2 e 6 ha guadagnato = 6 M$, tra gli anni 5 e 8 ACME ha guadagnato = 9 M $ Il Problema del Profitto Massimo in anni contigui è quello di trovare l intervallo temporale in cui la Ditta ACME ha guadagnato di più (nel nostro esempio l intervallo (5, 8)).
17 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 17/36 Astrazione del Problema Input: un array di reali A[1...N], il profitto totale negli anni dall i-esimo allo j-esimo è V(i,j) = j x=i A[x]. Il Problema del Profitto Massimo in anni contigui (PMAC) è quello di trovare indici i j tali che Output: V(i,j) tale che i,j, vale che V(i,j ) V(i,j) i,j, vale che V(i,j ) V(i,j)
18 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 18/36 Prima Soluzione: Forza Bruta Idea: Calcolare il valore V(i,j) per ogni coppia i j, e ritornare il valore massimo VMAX=A[1] for i = 1 to N do for j = i to N do % qui ci calcoliamo V = V(i,j) V = 0 for x = i to j do V = V +A[x] if V > VMAX then VMAX = V return VMAX Complessità dell algoritmo: Θ(N 3 ) (ci sono 3 for innestati, ciascheduno spazia su al piú N valori)
19 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 19/36 Seconda Soluzione: Approccio Incrementale Idea: Non è necessario calcolare separatamente" ciascun V(i,j),ma possiamo usare il fatto che V(i,j) = j x=i A[x] = j 1 x=i VMAX=A[1] for i = 1 to N do V = 0 for j = i to N do % qui ci calcoliamo V(i,j) V = V +A[j] if V > VMAX then VMAX = V return VMAX A[x]+A[j] = V(i,j 1)+A[j]. Complessità dell algoritmo: Θ(N 2 ) (ci sono 2 for innestati, ciascheduno spazia su al piú N valori)
20 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 20/36 Terza Soluzione: Divide-et-Impera Idea: Poni M = (N +1)/2. Il PMAC dell array A[1,...,N] deve necessariamente essere uno dei seguenti: S 1 : il PMAC dell array A[1,...,M], S 1 M M+1 oppure S 2 : il PMAC dell array A[M +1,...,N], M M+1 oppure é a "cavallo" di A[M], ovvero e A = A 1 A 2 A 1 A 2 M M+1 S 2
21 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 21/36 Esempio In questo caso S 1 = [3,6] con valore 3+6 = 9, e S 2 = [2,6,1] con valore = Ma abbiamo anche A 1 = [3,6,1], A 2 = [2, 4,7], con A = A 1 A 2 = [3,6,1,2, 4,7], di valore totale = 13.
22 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 22/36 Dobbiamo quindi trovare S 1, S 2 e A... S 1 lo si trova determinando il PMAC di A[1...M], ovvero chiamando l algoritmo ricorsivamente sulla parte sinistra A[1...M] dell array A[1...N] S 2 lo si trova determinando il PMAC di A[M +1...N], ovvero chiamando l algoritmo ricorsivamente sulla parte destra A[M +1...N] dell array A[1...N] Come trovare A lo vediamo in un secondo... Il PMAC dell intero array A[1...N] sará quindi quel sottovettore che tra S 1, S 2, ed A, ha valore massimo.
23 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 23/36 Come trovare A: la fase di Conquer A 1 A 2 M M+1 i j A 1 é della forma A[i...M]: ci sono solo M N tali sequenze, tante quanti sono i corrispondenti valori di i,1 i M. Pertanto la sequenza contigua A 1 di valore massimo puó essere trovata usando al piú O(M) = O(N) operazioni. Analogamente, A 2 é della forma A[M +1...j]: ci sono solo N M N tali sequenze, tante quanti sono i corrispondenti valori di j,m j N. Pertanto la sequenza contigua A 2 di valore massimo puó essere trovata in O(N M) = O(N) operazioni. A = A 1 A 2 puó essere trovato in O(N) operazioni!
24 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 24/36 L Algoritmo Completo Divide-et-Impera Input: A[i...j], con i j PMAC(A,i,j) 1. if i = j return A[i] else 2. trova PMAC(A,i, (i+j)/2 ) 3. trova PMAC(A, (i+j)/2 +1,j) 4. trova PMAC che contiene sia A[ (i+j)/2 )] che A[ (i+j)/2 +1] 5. return il MASSIMO delle tre sequenze trovate Detto T(N) il numero di operazioni di PMAC(A,1,N), abbiamo: 1. richiede tempo O(1), 2. e 3. richiedono tempo T(N/2), 4. richiede tempo O(N), 5. richiede tempo O(1). T(N) = 2T(N/2)+O(N) T(N) = O(N logn)
25 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 25/36 Analisi dell Algoritmo Divide-et-Impera Per semplificare l analisi, assumiamo che N = 2 h. I passi 4. e 5. dell algoritmo richiedono O(N) operazioni, ovvero richiedono un numero di operazioni cn, per qualche costante c. Quindi [ ] T(N) 2T(N/2)+cN 2 = 2 2 T(N/2 2 )+2cN 2 2 [ 2T(N/2 2 )+c N 2 +cn 2T(N/2 3 )+c N 2 2 ]+2cN = 2 3 T(N/2 3 )+3cN... 2 h T(N/2 h )+hcn Ponendo h = logn, si ha 2 h = 2 logn = N, e quindi T(N) NT(1)+(logN)cN = O(N logn)
26 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 26/36 Abbiamo visto: Riassumendo... un algoritmo basato sulla generazione di tutte le possibili soluzioni, di complessitá O(N 3 ) un algoritmo basato sul riuso di dati precedentemente calcolati di complessitá O(N 2 ) un algoritmo basato su Divide-et-Impera di complessitá O(N logn)
27 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 27/36 Ne é valsa la pena? Confrontiamo gli algoritmi su di un computer che esegue un milione di operazioni al secondo. Algoritmo Tempo esecuzione N 3 N 2 N logn Tempo per risolvere un problema di taglia s 1/100s s m 1s s ,78h 100s s ,69y 16,67m s ,09y 277,78h s
28 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 28/36 Morale della lezione Ne é valsa la pena Abbiamo visto che è possibile progettare algoritmi seguendo tecniche "generali" (forza bruta, divide-et impera,...) Abbiamo visto che è possibile analizzare e valutare algoritmi in base al numero di operazioni che essi compiono per produrre l output, in funzione della "taglia" dell input, e che questa analisi riflette il comportamento degli algoritmi in pratica
29 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 29/36 Circa PMAC: si può far meglio di O(N logn)? Si Esiste un algoritmo che risolve il Problema del Profitto Massimo in anni contigui in O(N) operazioni Però per oggi basta, trovatelo voi...
30 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 30/36 Informazioni sul corso Libro di testo: Jon Kleinberg ed Eva Tardos, Algorithm Design, Addison Wesley, 2005 Alla pagina WEB apparirá tutto il materiale relativo al corso (copie delle slides usate, esercizi, date delle prove d esame, comunicazioni varie, etc.)
31 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 31/36 Informazioni pratiche sul corso In generale, le copie delle slide usate al corso compariranno in anticipo rispetto alla relativa lezione. É fortemente consigliato che le stampiate e le studiate (o almeno le leggiate...) prima della lezione.
32 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 32/36 Come superare l esame con buon voto? Seguire il corso Studiare lezione per lezione Studiare le slide anche prima della lezione Studiare anche dal libro di testo
33 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 33/36 Ma soprattutto... Fare tanti esercizi!
34 e dove li trovo gli esercizi, direte voi... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 34/36
35 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 35/36 Promessa: Prometto che gli esercizi d esame li conoscerete in anticipo! ovvero, gli esercizi d esame saranno presi dalla lista di esercizi che saranno via via disponibili alla pagina uv/algo/algo.html
36 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 36/36 Orario Lezioni e Ricevimento Lezioni: Lunedí ore 9:00 11:00, Aula F8, Mercoledí, ore 9:00 11:00, Aula F8 Controllare spesso la pagina WEB per eventuali cambiamenti all ultimo minuto di orari. Ricevimento: Lunedí e Mercoledí dopo la lezione
Introduzione al Corso di Algoritmi
Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione
DettagliALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y
DettagliEsercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
DettagliAlgoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11
Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliAlgoritmi e Strutture Dati
Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliNote su quicksort per ASD 2010-11 (DRAFT)
Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliFondamenti di Informatica Ingegneria Clinica Lezione 15/10/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 15/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
Dettagli2. Leggi finanziarie di capitalizzazione
2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M
DettagliSistemi Web! per il turismo! - lezione 3 -
Sistemi Web per il turismo - lezione 3 - I computer sono in grado di eseguire molte operazioni, e di risolvere un gran numero di problemi. E arrivato il momento di delineare esplicitamente il campo di
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliInternet i vostri figli vi spiano! La PAROLA-CHIAVE: cacao Stralci di laboratorio multimediale
Internet i vostri figli vi spiano! La PAROLA-CHIAVE: cacao Stralci di laboratorio multimediale Ins: nel laboratorio del Libro avevamo detto che qui, nel laboratorio multimediale, avremmo cercato qualcosa
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliProgrammazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
DettagliScopo della lezione. Informatica. Informatica - def. 1. Informatica
Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni
DettagliRAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI
RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma
DettagliIntroduzione al corso
Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia
DettagliLABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco
DettagliProcesso di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
DettagliLogica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo
Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero
DettagliLezione 10: Il problema del consumatore: Preferenze e scelta ottimale
Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale Facoltà di Scienze della Comunicazione Università di Teramo Scelta
DettagliInformatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
DettagliVademecum studio funzione
Vademecum studio funzione Campo di Esistenza di una funzione o dominio: Studiare una funzione significa determinare gli elementi caratteristici che ci permettono di disegnarne il grafico, a partire dalla
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliFormattazione. ü Introduzione
Formattazione ü Introduzione Abbiamo fatto un bel po' di lavoro con Mathematica, vero? Abbiamo visto come creare, valutare, semplificare, disegnare, programmare, cucinare, pescare, ed anche come sfilare
DettagliProof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme
G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero
DettagliFUNZIONE ESPONENZIALE e INTERESSE COMPOSTO. Ipotizziamo di avere a nostra disposizione all'inizio del primo anno (tempo in ascissa
FUNZIONE ESPONENZIALE e INTERESSE COMPOSTO Ipotizziamo di avere a nostra disposizione all'inizio del primo anno (tempo in ascissa t o = 0 ) una somma C o (detta capitale iniziale ) e di volerla investire
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliIntroduzione ai tipi di dato astratti: applicazione alle liste
Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliInformatica per le discipline umanistiche 2 lezione 14
Informatica per le discipline umanistiche 2 lezione 14 Torniamo ai concetti base dellʼinformatica. Abbiamo sinora affrontato diversi problemi: avere unʼidentità online, cercare pagine Web, commentare il
DettagliGuida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico
Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico Maribel Maini Indi ndice ce: Procedura di registrazione alla piattaforma e di creazione del proprio
DettagliDue algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
DettagliGIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO 2011-2012
GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO 2011-2012 L unità di Milano Città Studi del Centro matematita propone anche per l a.s. 2011-2012 una serie di problemi pensati per
DettagliFondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!
Fondamenti di Informatica Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI! Finalità: Fornire gli elementi di base dei concetti che sono di fondamento all'informatica Informazioni Pratiche ORARIO:
DettagliIniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
DettagliOffice 2007 Lezione 08
Word: gli stili veloci e i temi Da questa lezione, iniziamo ad occuparci delle innovazioni che riguardano specificamente Word. Cominceremo parlando di stili e temi. Nella filosofia di questo nuovo Word,
DettagliIndice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
DettagliOSSERVAZIONI TEORICHE Lezione n. 4
OSSERVAZIONI TEORICHE Lezione n. 4 Finalità: Sistematizzare concetti e definizioni. Verificare l apprendimento. Metodo: Lettura delle OSSERVAZIONI e risoluzione della scheda di verifica delle conoscenze
DettagliCodifica binaria dei numeri relativi
Codifica binaria dei numeri relativi Introduzione All interno di un calcolatore, è possibile utilizzare solo 0 e 1 per codificare qualsiasi informazione. Nel caso dei numeri, non solo il modulo ma anche
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliIntroduzione alla tecnica di Programmazione Dinamica
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/37 Sommario della lezione Introduzione alla tecnica di Programmazione Dinamica Esempio di applicazione n. 1:
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
DettagliComplessità Computazionale
Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
DettagliCorso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015
Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 30 minuti per svolgere gli esercizi 1, 2, 3 Chi deve recuperare
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
DettagliPLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana
PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana giugno 2011 PARLARE Livello MATERIALE PER L INTERVISTATORE 2 PLIDA Progetto Lingua Italiana Dante Alighieri
DettagliLEZIONE: Pensiero Computazionale. Tempo della lezione: 45-60 Minuti. - Tempo di preparazione: 15 Minuti.
3 LEZIONE: Pensiero Computazionale Tempo della lezione: 45-60 Minuti. - Tempo di preparazione: 15 Minuti. Obiettivo Principale: Introdurre il modello del Pensiero Computazionale come metodo per la risoluzione
DettagliOlga Scotti. Basi di Informatica. Excel
Basi di Informatica Excel Tabelle pivot Le tabelle pivot sono strumenti analitici e di reporting per creare tabelle riassuntive, riorganizzare dati tramite trascinamento, filtrare e raggruppare i dati,
DettagliFondamenti di Informatica T1
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T1 Corso di Laurea in Ingegneria Elettrica e Automazione Prof. Michela Milano Anno accademico 2013/2014 CONTENUTI Costruzione
DettagliLABORATORIO DI INFORMATICA
- PROGRAMMAZIONE DI DIPARTIMENTO - anno scolastico 2015-2016 Corso: Liceo Linguistico Quadro orario Classe I II Laboratorio di 2 2 LABORATORIO DI INFORMATICA L insegnamento dell informatica nel liceo linguistici
DettagliProcedura di iscrizione alla Piattaforma On Line
PUNTO 1 Procedura di iscrizione alla Piattaforma On Line Accedere dal proprio browser internet al sito: http://www.qeselearning.it/ NOTA: è preferibile utilizzare Chrome o Firefox La schermata che le apparirà
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
DettagliUn gioco con tre dadi
Un gioco con tre dadi Livello scolare: biennio Abilità interessate Costruire lo spazio degli eventi in casi semplici e determinarne la cardinalità. Valutare la probabilità in diversi contesti problematici.
DettagliLe Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
DettagliANNO SCOLASTICO 2014-2015
ATTIVITÀ DI SPERIMENTAZIONE IN CLASSE PREVISTA NELL AMBITO DEL PROGETTO M2014 PROMOSSO DALL ACCADEMIA DEI LINCEI PER LE SCUOLE PRIMARIE E SECONDARIE DI I GRADO ANNO SCOLASTICO 2014-2015 Il Centro matematita,
DettagliCapitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.
Capitolo II La forma del valore 7. La duplice forma in cui si presenta la merce: naturale e di valore. I beni nascono come valori d uso: nel loro divenire merci acquisiscono anche un valore (di scambio).
DettagliSommario della lezione
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione
DettagliLA FORMAZIONE PROFESSIONALE
LA FORMAZIONE PROFESSIONALE I corsi di formazione professionale permettono di integrare le conoscenze scolastiche o di acquisire nuove conoscenze e competenze in ambiti diversi dall indirizzo di studio
DettagliGuida Compilazione Piani di Studio on-line
Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-
DettagliUso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
DettagliTecniche di Prototipazione. Introduzione
Tecniche di Prototipazione Introduzione Con il termine prototipo si intende il primo esempio di un prodotto che deve essere sviluppato e che consente di poter effettuare considerazioni preliminari prima
Dettagli10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliOffice 2007 Lezione 02. Le operazioni più
Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliIl sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.
E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica
DettagliPROGRAMMA SVOLTO NELLA SESSIONE N.
Università C. Cattaneo Liuc, Corso di Statistica, Sessione n. 1, 2014 Laboratorio Excel Sessione n. 1 Venerdì 031014 Gruppo PZ Lunedì 061014 Gruppo AD Martedì 071014 Gruppo EO PROGRAMMA SVOLTO NELLA SESSIONE
DettagliIntroduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
DettagliCalcolo del Valore Attuale Netto (VAN)
Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di
DettagliMetodologie di programmazione in Fortran 90
Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
DettagliEsempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
DettagliMetodologie Informatiche Applicate al Turismo
Metodologie Informatiche Applicate al Turismo 1. Introduzione Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Scienze
DettagliEsercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:
Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi
DettagliLa valutazione nella didattica per competenze
Nella scuola italiana il problema della valutazione delle competenze è particolarmente complesso, infatti la nostra scuola è tradizionalmente basata sulla trasmissione di saperi e saper fare ed ha affrontato
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliContabilità ordinaria, semplificata e altri regimi contabili
Contabilità ordinaria, semplificata e altri regimi contabili Obiettivi del corso Iniziamo, con questa prima lezione, il nostro corso dal titolo addetto alla contabilità. Si tratta di un corso base che
DettagliIntroduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliDropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).
Dropbox di classe Lo scopo del servizio Dropbox di classe è quello di far conoscere ai docenti del nostro istituto il funzionamento di un sistema di Cloud Storage, pronto e facile da usare, per esplorare
DettagliAlla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.
PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto
DettagliTECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO
CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,
DettagliCome valutare le caratteristiche aerobiche di ogni singolo atleta sul campo
Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo Prima di organizzare un programma di allenamento al fine di elevare il livello di prestazione, è necessario valutare le capacità
DettagliPROGETTO EM.MA PRESIDIO
PROGETTO EM.MA PRESIDIO di PIACENZA Bentornati Il quadro di riferimento di matematica : INVALSI e TIMSS A CONFRONTO LE PROVE INVALSI Quadro di riferimento per la valutazione Quadro di riferimento per i
DettagliInformatica Generale
Insegnamento di Informatica Generale Corso di Laurea in Economia delle banche, delle assicurazioni e degli intermediari finanziari (aa 2010-2011) Guido Fiorino (guido.fiorino@unimib.it) 1 informazioni.tex:
Dettagli