Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica. Marco Anisetti - 1 / 30
|
|
- Oreste Costanzo
- 4 anni fa
- Visualizzazioni
Transcript
1 Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica Marco Anisetti - 1 / 30
2 Obiettivi del corso Corso introduttivo alla programmazione, ai suoi principi ed alle sue tecniche Nella sua carriera professionale un informatico potrebbe non aver mai a che fare direttamente con la programmazione, ma la sua conoscenza è di fondamentale importanza dato che tutti gli strumenti con i quali interagirà sono di fatto dei software Costituisce la differenza tra un utilizzatore del computer (seppur professionista) e un informatico Marco Anisetti - 2 / 30
3 Nozioni di base Nozione di algoritmo Fasi della programmazione Strumenti di modellazione Linguaggi di programmazione... Marco Anisetti - 3 / 30
4 Programmazione elementare Rappresentazione di informazione numerica e simbolica La macchina MIX e il suo linguaggio assembly MIXAL Organizzazione dei dati: il concetto di variabile, mappa della memoria e tabelle, strutture dati dinamiche Alcune tecniche fondamentali di programmazione: sottoprogrammi, ricorsione, interpreti, automi Marco Anisetti - 4 / 30
5 Programmazione strutturata Principi della programmazione strutturata Linguaggio C: espressioni e assegnamenti, costrutti di controllo, tipi predefiniti, vettori, matrici e stringhe, tipi strutturati, puntatori e gestione della memoria, funzioni e passaggio di parametri, main e parametri al main, libreria standard, gestione dei file Eliminazione dei Salti: teorema di Böhm-Jacopini, trasformazione di Ashcroft e Manna Fondamenti della programmazione ad oggetti: Java La programmazione strutturata utilizzando il linguaggio C verrà affrontata dal prof. Cordone Marco Anisetti - 5 / 30
6 Materiale consigliato U. Moscato, M. Ornaghi. Algoritmi, programmi e linguaggi di programmazione. Città Studi, Milano, D. E. Knuth. The Art of Computer Programming, vol. 1: Fundamental algorithms. Addison-Wesley, Reading (MA), N. Wirth. Principi di programmazione strutturata. ISEDI, Torino, H.M. Deitel, P.J. Deitel, Corso completo di programmazione (seconda edizione). Apogeo, 2004 Ravi Sethi. Programming Languages. Addison-Wesley G. Pighizzini M. Ferrari. Dai fondamenti agli oggetti Corso di programmazione JAVA. Terza Edizione Pearson Addison-Wesley Febbraio 2008 Marco Anisetti - 6 / 30
7 Modalità d esame Due prove obbligatorie: Scritto cartaceo con più domande a risposta aperta su tutti gli argomenti del programma Esame di programmazione in linguaggio C che viene effettuato in piattaforma (prof. Cordone) Una prova facoltativa (+3 punti): Progetto di programmazione in linguaggio Java (da inviare 15 giorni prima della discussione) Orale in cui presentare e discutere il proprio progetto in linguaggio Java Marco Anisetti - 7 / 30
8 Prefazione Due approcci possibili: Idealistico: Presentare la materia già organizzata alla luce dei moderni sviluppi (OO, pattern, ecc.) Evoluzionistico: Presentare la materia come evoluzione storica fino ad arrivare ai suoi recenti sviluppi Si integra in un piano di studi che comprenda Algoritmi e Strutture Dati, Linguaggi di Programmazione ed Ingegneria del software Marco Anisetti - 8 / 30
9 Calcolatore e programma Calcolatore Un automa il cui comportamento segue delle regole ben precise: è in grado di comprendere un repertorio ristretto di istruzioni elementari e di eseguirle con una enorme rapidità ed elevata precisione Programma Sequenza di istruzioni elementari che un calcolatore è in grado di comprendere ed eseguire Programmazione Attività che consiste nell organizzare istruzioni elementari, direttamente comprensibili dall esecutore, in strutture complesse (programmi) al fine di svolgere determinati compiti Marco Anisetti - 9 / 30
10 Programmabilità Una macchina ha come compito sostituirsi o facilitare il lavoro umano E generalmente concepita per svolgere un solo lavoro Embrione della programmazione: attrezzi regolabili, permettono di compiere una gamma di azioni maggiori (versatilità) Marco Anisetti - 10 / 30
11 Programmazione Primo approccio: un modello di calcolatore diverso per ciascuno dei calcoli che erano di volta in volta richiesti C è un motivo molto valido per cui molto presto si intraprese di progettare dei calcolatori general purpose Al crescere della complessità degli elaboratori, il compito di programmarli iniziò a superare in complessità addirittura il compito di progettarli Marco Anisetti - 11 / 30
12 Algoritmi Algoritmo Un algoritmo è sequenza finita di istruzioni che specificano come certe operazioni elementari debbano susseguirsi nel tempo per risolvere una data classe di problemi. Operazioni elementari: operazioni note all esecutore Istruzioni: richieste di azioni rivolte all esecutore e che da questo devono essere capite ed eseguite Classe di problemi: una formulazione del problema indipendente dagli specifici dati su cui opera Marco Anisetti - 12 / 30
13 Problema e Istanza(1) [*] Prof. Andrea G. B. Tettamanzi Marco Anisetti - 13 / 30
14 Problema e Istanza (2) [*] Prof. Andrea G. B. Tettamanzi Marco Anisetti - 14 / 30
15 Problema e Istanza (3) [*] Prof. Andrea G. B. Tettamanzi Marco Anisetti - 15 / 30
16 Problema Algoritmo Esecutore Figura : Relazione problema algoritmo esecutore Marco Anisetti - 16 / 30
17 Proprietà Oltre alle proprietà di eseguibilità e non ambiguità di un algoritmo, alcune altre proprietà fondamentali degli algoritmi sono: Correttezza: l esecuzione dell algoritmo porta realmente alla soluzione del problema dato Efficienza: quanto costa l esecuzione di un algoritmo in termini di risorse consumate Finitezza: normalmente si richiede che l algoritmo termini in un tempo finito, e cioè che la sequenza di istruzioni che caratterizzano l algoritmo sia una sequenza finita Marco Anisetti - 17 / 30
18 L algoritmo di Euclide Massimo Comune Divisore fra due numeri x e y 1. Calcola il resto della divisione di x per y 2. Se il resto è diverso da zero, ricomincia dal punto 1 utilizzando come x il valore attuale di y, e come y il valore del resto altrimenti prosegui con il passo successivo 3. Il massimo comune divisore è uguale al valore attuale di y L intelligenza necessaria per trovare la soluzione del problema è tutta codificata nell algoritmo Chiunque sappia comprendere ed eseguire le operazioni che costituiscono l algoritmo di Euclide, può calcolare l MCD Marco Anisetti - 18 / 30
19 Controesempio Non tutto ciò che sembra un una procedura passo passo è un algoritmo Dire se un numero è primo 1. N {0,1} 2. per ogni coppia di interi i > 1 e j > 1, N N {i j} 3. n è primo se e solo se n / N Ricordiamo che un numero naturale si dice primo se è divisibile solo per 1 e per sè stesso, e che per definizione 0 e 1 non sono primi Marco Anisetti - 19 / 30
20 Algoritmi e programmi Un programma è l espressione di un algoritmo in un linguaggio che l esecutore è in grado di comprendere direttamente. Un programma è un espressione concreta dell algoritmo che ne è l astrazione A seconda dell esecutore, lo stesso algoritmo può essere espresso in linguaggi differenti La scrittura del programma è la fase successiva all individuazione dell algoritmo per risolvere un determinato problema Marco Anisetti - 20 / 30
21 Computabilità e Complessità Teoria della computabilità: utilizza modelli di calcolo come ad esempio automi a stati, macchine di Turing ecc., per dimostrare l esistenza o meno di algoritmi per una data classe di problemi Teoria della complessità: ha lo scopo di determinare le risorse richieste dall esecuzione di un algoritmo per risolvere un dato problema. Quello che importa realmente non è la quantità precisa di risorse che esso richiede nel caso peggiore, ma il suo tasso di crescita, il suo ordine (logaritmico, lineare, quadratico, cubico, esponenziale, ecc.), al crescere delle dimensioni dell ingresso Marco Anisetti - 21 / 30
22 Modelli di computazione Per analizzare un algoritmo serve un modello della tecnologia utilizzata per realizzarlo: Descrive le risorse utilizzate Descrive il loro costo Deve essere sufficientemente realistico Deve astrarre da dettagli di processori specifici Marco Anisetti - 22 / 30
23 Modello di Macchina ad accesso casuale (RAM)(1) Il modello computazionale più comunemente usato Modella fedelmente la stragrande maggioranza dei processori Istruzioni eseguite in sequenza Ogni istruzione richiede un suo tempo costante per l esecuzione Esistono altri modelli come le macchine basate su rete neurale, macchine quantistiche o macchine chimiche astratte Marco Anisetti - 23 / 30
24 Modello di Macchina ad accesso casuale (RAM)(2) Costituita da 4 componenti: Memoria Programma File di input File di output La memoria è costituita da una sequenza di locazioni 0,1,... capace di salvare un unico valore intero alla volta L indirizzo è il numero della locazione di memoria l intero riferito da un indirizzo di una locazione di memoria è il contenuto della locazione stessa Il programma è dato da una sequenza di istruzioni (assegnamenti, input/output, cicli di controllo) Marco Anisetti - 24 / 30
25 Modello di Macchina ad accesso casuale (RAM) (3) assegnamento Mem[l] := Mem[j] + Mem[k]. Mette nella locazione l la somma dei valori nella locazione j e k il file di input è una sequenza di valori consumati uno alla volta da una istruzione di read il file di output è una sequenza di valori prodotti uno alla volta da una istruzione di write il flusso di controllo del programma va normalmente da una istruzione alla successiva ad eccezione di istruzioni di goto i o goto condizionati tipo if Mem[j] 0 then goto i Marco Anisetti - 25 / 30
26 Modello di Macchina ad accesso casuale (RAM): esempio (4) 1: Mem[0]:=0 2: read(mem[1]) 3: if Mem[1] 0 then goto 5 4: goto 7 5 Mem[3]:=Mem[0]-Mem[1] 6: if Mem[3] 0 then goto 16 7: write(mem[1]) 8: read(mem[2]) 9: Mem[3]:= Mem[2]-Mem[1] 10: if Mem[3] 0 then goto 12 11: goto 14 12: Mem[3]:=Mem[1]-Mem[2] 13: if Mem[3] 0 then goto 8 14: Mem[1]:=Mem[2] +Mem[0] 15: goto 3 16: halt Marco Anisetti - 26 / 30
27 Complessità (1) Trattata nel dettaglio nel corso di Algoritmi e Strutture Dati Si parla di complessità in termini di spazio e tempo Suddivisione in classi di complessità 1. Per analizzare un algoritmo serve un modello della tecnologia sulla quale verrà realizzato (modelli astratti come la Macchina di Turing e la Macchina di Turing non deterministica o con oracolo ecc.) 2. Riduzione di un problema in un altro, o di un algoritmo per risolvere un problema nell algoritmo per risolverne un altro Marco Anisetti - 27 / 30
28 Complessità (2) Riducibilità confrontare tra di loro le difficoltà di due problemi e a verificare se un algoritmo noto per risolverne uno possa essere sfruttato per risolvere anche l altro (riducibilità polinomiale) Intrattabilità Problemi facili complessità logaritmica o lineare; problemi considerati trattabili complessità polinomiale, problemi difficili o intrattabili, la classe dei problemi NP-completi, polinomialmente riducibili a un problema modello ; quantità esponenziale di tempo di calcolo Indecidibilità problemi che non possono essere risolti in un tempo finito da alcun algoritmo, e quindi da alcun programma Stabilire in modo algoritmico se, dato un programma ed i suoi dati di input, l esecuzione del programma con questi dati termina o no in un tempo finito non è calcolabile (cioè non ammette un algoritmo) problema cosiddetto dell arresto indecidibilità Marco Anisetti - 28 / 30
29 Problema dell arresto: dimostrazione Supponiamo per assurdo che sia possibile scrivere un programma T che accetti in ingresso la coppia < P,x >, formata da un qualsiasi programma P e dal suo ingresso x, e restituisca in uscita, se P(x) termina in un tempo finito, e altrimenti. Consideriamo il programma P che realizza il seguente algoritmo, per ogni ingresso x: 1. Esegui T sull ingresso < P,x >; 2. Se T restituisce, termina; 3. Vai al Passo 1. Dimostriamo l assurdo (dimostrazione tratta dalle dispense del prof. Tettamanzi) supponendo di eseguire T sull ingresso < P,x >. 1. T termina con valore di uscita ; ma allora P termina al Passo 2 e quindi il risultato restituito da T e scorretto; 2. T termina con valore di uscita ; ma allora P non terminerebbe mai al Passo 2 e continuerebbe a ciclare all infinito: anche in questo caso il risultato restituito da T e scorretto; 3. T non termina: anche in questo caso, ci o significherebbe che T non funziona come abbiamo supposto. Marco Anisetti - 29 / 30
30 Complessità (3) Ciò che importa veramente non è la quantità precisa di risorse, ma come questa cresce al crescere della dimensione dell ingresso O(logn) < O(n) < O(n 2 ) < O(n 3 ) < < O(2 n ) [*] Prof. Andrea G. B. Tettamanzi Marco Anisetti - 30 / 30
Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 006-007 Definizione di Algoritmo Def.: Per Algoritmo si intende un elenco di istruzioni che specificano una serie
DettagliScaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1
Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013
Dettagli! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !
Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 24 26 maggio 2015!
DettagliIntroduzione all informatica
Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)
DettagliTeoria dell Informazione
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
DettagliINFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliUnità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati
Obiettivi Unità E1 Dall analisi del problema alla definizione dell algoritmo Conoscere il concetto di algoritmo Conoscere le fasi di sviluppo di un algoritmo (analisi, progettazione, verifica) Conoscere
DettagliProgrammazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
DettagliINFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione
INFORmazione+autoMATICA Perché saperne di piu? Calcolatore: un supporto per la rappresentazione di informazione che può: I raccogliere impressionanti quantità di dati I eseguire velocemente e con precisione
DettagliELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso
DettagliCapitolo 9: Trattabilitá e intrattabilitá dei problemi
Capitolo 9: Trattabilitá e intrattabilitá dei problemi 1 La classe P : é considerata tradizionalmente come una caratterizzazione formale dei problemi trattabili. n = 2 n = 5 n = 10 n = 100 n = 1000 n 2
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo. L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliElementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Introduzione
DettagliCORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliL uomo come esecutore di algoritmi
L uomo come esecutore di algoritmi l L algoritmo è l insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato. l Un algoritmo
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliAlgoritmi. Andrea Passerini Informatica. Algoritmi
Andrea Passerini passerini@disi.unitn.it Informatica Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale
DettagliAlgoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
DettagliAlgoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile
Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,
DettagliProblemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Obiettivi: studio delle strutture dati fondamentali studio degli strumenti e metodi per lo sviluppo di programmi di tipo tecnico-scientifico su piccola/media scala Approccio
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliCaratteristiche di un calcolatore elettronico
Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,
DettagliComplessità degli algoritmi (cenni)
Complessità degli algoritmi (cenni) CORDA Informatica A. Ferrari Testo di riferimento Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo - Edoardo Bontà Università degli Studi di Urbino Carlo
DettagliTesto di riferimento. Problema delle 12 monete. Algoritmi. Complessità degli algoritmi (cenni) Dispense del Corso di Algoritmi e Strutture Dati
Testo di riferimento Complessità degli algoritmi (cenni) CORDA Informatica A. Ferrari Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo - Edoardo Bontà Università degli Studi di Urbino Carlo
DettagliISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.
ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S. 2018/2019 Materia Classe Informatica 3 IT Competenze (Linee guida+competenze
Dettagliliceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
DettagliL ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
Dettaglicomplessità degli algoritmi
complessità degli algoritmi progetto CORDA informatica algoritmo matematico persiano Muhammad al-khwarizmi (IX secolo) un algoritmo è una sequenza finita di passi interpretabili da un esecutore l esecuzione
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliLa Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema
La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione
DettagliCapitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved
Capitolo 11 Teoria della computazione 2007 Pearson Addison-Wesley. All rights reserved Capitolo 11: Teoria della computazione 11.1 Funzioni e loro calcolo 11.2 Macchine di Turing 11.3 Linguaggi gg di programmazione
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
Dettagli- Dispensa I ALGORITMI
Elementi di Informatica e Programmazione - Dispensa I ALGORITMI Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Introduzione al modulo didattico Elementi di Informatica
DettagliPROGRAMMAZIONE I A.A. 2018/2019
PROGRAMMAZIONE I A.A. 2018/2019 COMPUTATIONAL THINKING Formalizzato da una psicologa Americana Jeanette Wing in un articolo sulla rivista ACM nel 2008 ühttps://www.ncbi.nlm.nih.gov/pmc/articles/pmc2696102/
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 2 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliTeoria della Calcolabilità
Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliAlgoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo
Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente
DettagliInformatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati
Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliIntroduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di
DettagliMODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliModelli e complessità di calcolo
Modelli e complessità di calcolo Prof. Giorgio Ausiello Orario delle lezioni: Martedi, Mercoledi, Giovedi ore 8.30 10.00 Orario di ricevimento: Lunedi ore 17.00 19.00 Via Ariosto 25 II piano - Ufficio
DettagliFondamenti dell informatica
Fondamenti dell informatica Macchine a registri Rosario Culmone rosario.culmone@unicam.it 9/4/2008 UNICAM - p. 1/24 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access
Dettagli10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliLaboratorio di Informatica. Introduzione
Introduzione 1 Informatica: definizione Informatica: disciplina che cerca di dare un fondamento scientifico ad argomenti come la progettazione di computer, la programmazione, l elaborazione delle informazioni,
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliTeoria della Complessità Computazionale
Teoria della Complessità Computazionale Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 21 Ottobre 2014 Ricerca Operativa 2
DettagliIng. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
DettagliUniversità degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
DettagliElementi di Informatica e Programmazione
Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica
DettagliSistemi di Elaborazione delle Informazioni
Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione
DettagliTeoria della complessità
Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi
DettagliPag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione
DettagliScienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.
Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su dati in ingresso (input) per produrre uno
Dettagli3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura
DettagliFondamenti di Informatica per la Sicurezza a.a. 2008/09. Introduzione. Stefano Ferrari
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano Fondamenti
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliTEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso
DettagliRAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
DettagliIntroduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
DettagliAlgoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
DettagliLABORATORIO DI INFORMATICA
LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda 2 LEZIONE N.6 Algoritmi GLI ALGORITMI (1/5) Un algoritmo è una sequenza di
DettagliElaboratore Elettronico
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti
DettagliDal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione
Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
DettagliLA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliParte 1. Fondamenti di Informatica Modulo Fondamenti di programmazione Prof.ssa Elisa Tiezzi
Parte 1 Fondamenti di Informatica Modulo Fondamenti di programmazione Prof.ssa Elisa Tiezzi Dove mi trovate Mercoledì dalle 9 alle 11 Venrdì dalle 9 alle 11 Piano 2 Stanza 231 Dipartimento di Ingegneria
DettagliFondamenti Informatica A.A. 2010/'11. (I parte)
Problemi e algoritmi Macchina di Turing Fondamenti di informatica Proff. De Nitto e D Ambrogio A.A. 2010/2011 (I parte) Architettura e visione funzionale Rappresentazione dei numeri Modello computazionale
DettagliITI M. FARADAY. Programmazione a. s
ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:
DettagliISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s.
ISTITUTO SUPERIORE ENRICO FERMI PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. 2016/2017 ARTICOLAZIONE: INFORMATICA DISCIPLINA: INFORMATICA ORE SETTIMANALI:
Dettagli