seconda università degli studi di napoli facoltà di economia corso di informatica prof.ssa zahora...
TRANSCRIPT
Seconda Università degli Studi di NapoliFacoltà di Economia
Corso di Informatica
Prof.ssa Zahora Pina
Introduzione(Cap. 1 – pagg. 1-32) Che cos’è l’informatica
risposte vaghe e contraddittorie
L’informatica abbraccia campi disparati
perchè
Calcoloscientifico-ingegneristico
GestioneAziendale
IntelligenzaArtificiale
Elaborazione di datigeografici e ambientali
IntroduzioneChe cos’è l’informatica
La scienza e la tecnologia dei calcolatori elettronici
Nessuna delle molteplici applicazioni dei calcolatori
Definizione
L’informatica è la scienza della rappresentazione e dell’elaborazione dell’informazione
tecnologia dei calcolatori strutturazione ed elaborazionedelle informazioni
l’elaborazione dell’informazione avviene in maniera sistematica e rigorosa e può essere
automatizzata
IntroduzioneChe cos’è l’informatica
L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione
ACM: Association for Computing Machinery
IntroduzioneAlgoritmi
Algoritmo
Diagramma a blocchi
Programma
Problema
Pseudocodifica
codifica
IntroduzioneAlgoritmi
Es: somma di due numeri con un pallottoliere
Passo1: spostare 1 pallina della 1a riga da sx a dxPasso2: spostare 1 pallina della 3a riga da dx a sxPasso3: spostare 1 pallina della 2a riga da sx a dxPasso4: spostare 1 pallina della 3a riga da dx a sx
ripeti fino a quando
ci sono palline nella 1a riga ripeti fino a quando
ci sono palline nella 2a riga
123
IntroduzioneAlgoritmi
Un problema è un quesito che attende una risposta detta soluzione
Un processo risolutivo è un insieme di passi da compiere per giungere allaSoluzione di un problema
La soluzione o risultato finale è l’obiettivo che vogliamo raggiungere partendodai dati iniziali
Il criterio di verifica è un controllo sui risultati finali per verificare chequesti siano rispondenti agli obiettivi iniziali
IntroduzioneAlgoritmi
Ottenere un biglietto
•Passo 1•Passo 2
•.•.•.
•Passo n
biglietto
•Da Roma•a Milano•X 2 persone•Il 20 marzo
Problema: ottenere un biglietto treno per 2 persone da Roma a Milano il 20 marzoProblema: ottenere un biglietto treno per 2 persone da Roma a Milano il 20 marzo
Algoritmo
Risultai finali
Verifica dei risultati
Dati iniziali
Problema
IntroduzioneAlgoritmi
Formulare correttamente un problema vuol dire: Chiarire gli obiettivi finali Possedere le informazioni iniziali Individuare il criterio di verifica
IntroduzioneAlgoritmi
Per descrivere il processo risolutivo bisogna: Conoscere il tema oggetto del problema Utilizzare metodi risolutivi già sperimentati Scindere il problema in sottoproblemi Ripercorrere il cammino all’indietro
Introduzione
Introduzione
IntroduzioneAlgoritmi
Un algoritmo deve essere: Finito Univoco o non ambiguo o preciso Generale Completo Osservabile nei risultati Deterministico
IntroduzioneAlgoritmi
Prendere una pentola adeguata Aggiungere dell’acqua nella pentola Accendere il fuoco e mettere la pentola sul fornello Attendere che l’acqua bolla Aggiungere il sale Versare la pasta nella pentola Attendere che sia cotta Scolare la pasta togliendo l’acqua
Problema: cucinare la pasta per la propria famigliaProblema: cucinare la pasta per la propria famiglia
Dati iniziali:N: numero di persone di cui è composta la famigliaDati iniziali:N: numero di persone di cui è composta la famiglia
Algoritmo
IntroduzioneAlgoritmi
Prendere una pentola adeguata Aggiungere dell’acqua nella pentola Accendere il fuoco e mettere la pentola
sul fornello Attendere che l’acqua bolla Aggiungere il sale Versare la pasta nella pentola Attendere che sia cotta Scolare la pasta togliendo l’acqua
Problema: cucinare la pasta per la propria famigliaProblema: cucinare la pasta per la propria famiglia
Dati iniziali:N: numero di persone di cui è composta la famigliaL: litri di acqua per personaG: quantità di pasta per personaS: grammi di sale per personaM: tempo medio di cottura
Dati iniziali:N: numero di persone di cui è composta la famigliaL: litri di acqua per personaG: quantità di pasta per personaS: grammi di sale per personaM: tempo medio di cottura
Algoritmo
Prendere una pentola da N*L litri Aggiungere N*L litri di acqua nella pentola Accendere il fuoco e mettere la pentola sul
fornello Attendere finchè la temperatura raggiunga 100 ° Aggiungere N*S grammi di sale Versare N*G grammi di pastanella pentola Attendere che sia cotta Scolare la pasta togliendo l’acqua
Algoritmo corretto
Introduzione
Introduzione
blocco iniziale/finale
blocco di azione
blocco di controllo
blocco dilettura/scrittura
Blocchi elementari
Introduzione
Introduzione
Introduzione
IntroduzioneAlgoritmi: Calcolo del MCD
Il Massimo Comune Divisore di due numeri è il più grande dei divisori comuni ai due numeri
MCD
Divisori di 20: 1-2-4-5-10-20Divisori di 40: 1-2-4-5-10-20-40MCD=20
Es1 - MCD tra 20 e 40:
Divisori di 25: 1-5-25Divisori di 40: 1-2-4-5-10-20-40MCD=5
Es2 - MCD tra 25 e 40:
Scomposizione di 20: 20=5*22
Divisori di 40: 40=5*23
MCD=5*22=20
Scomposizione di 25: 25=52
Divisori di 40: 40=5*23
MCD=5
Si moltiplicano i fattori comuni presiuna sola volta con l’esponente minore
ALGORITMO 1 ALGORITMO 2
ALGORITMO 1 ALGORITMO 2
Si elencano tutti i divisori dei numeri e si selezione il maggiore tra quelli
comuni
non soddisfanoproprietàalgoritmi
Introduzione
IntroduzioneEs: Algoritmo di Euclide
a=20b=40(test1 falso)a=40b=20resto=a mod b = 0a=b=20b=resto=0(test2 vero)
MCD = a = 20
Es1 - MCD tra 20 e 40: Es2 - MCD tra 25 e 40:
scambio a e b}
a=25b=40(test1 falso)a=40b=25resto=a mod b = 15a=b=25b=resto=15(test2 falso)resto=25 mod 15 = 10a=b=15b=resto=10(test2 falso)resto= 15 mod 10 = 5a=b=10b=resto=5(test2 falso)resto = 10 mod 5 = 0a=b=5b=0
MCD = a = 5
scambio a e b}
Introduzione
3 5
a b
5 ?
3 5
5 3
a b
3
c
a=bb=?
N.B.
c=a=3a=b=5b=c=3
Scambio di a e b:
IntroduzioneAlgoritmi
IntroduzioneDiagrammi di flusso (flow chart)
IntroduzioneDiagrammi di flusso (flow chart)
IntroduzioneDiagrammi di flusso (flow chart)
Condizioni di validità
IntroduzioneDiagrammi di flusso (flow chart) – Analisi strutturata
IntroduzioneDiagrammi di flusso (flow chart) – Schema sequenziale
IntroduzioneDiagrammi di flusso (flow chart) – Schema di selezione
IntroduzioneDiagrammi di flusso (flow chart) – Schema di iterazione
IntroduzioneDiagrammi di flusso (flow chart) – Es. Schema di iterazione
IntroduzioneI linguaggi per la programmazione di algoritmi
linguaggio macchina
linguaggi ad alto livello: applicazioni matematiche e gestionali
•FORTRAN (FORmula TRANSlator)•COBOL (Common Business Oriented Language
linguaggi ad alto livello: basati sullo studio di principi della programmazione
ALGOL (Algorithmic Language)Anni ’60)
Anni ’50)
•PASCAL •C•ADA
linguaggi ad alto livello: Object-Oriented
•C++•Java•Delphi
linguaggi ad alto livello: non convenzionali
•LISP•PROLOG
CPU Memoria Centrale (RAM) Memoria di massa BUS di sistema Unità periferiche
IntroduzioneHardware
Introduzione Personal Computer
I personal computer del tipo esemplificato in figura sono tipicamente "calcolatori da ufficio", e per questo sono anche detti "desktop computer".
case di tipo tower
Introduzione Personal Computer Da tempo sono disponibili
calcolatori portatili, esplicitamente disegnati per essere facilmente trasportabili, anche durante l'uso.
Ne esistono attualmente diverse categorie: portatile classico, dotato di
schermo sufficientemente ampio e relativamente ingombrante
"tablet-pc", più leggeri e di dimensioni ridotte
palmari che, come suggerisce il termine, possono essere tenuti in una mano
Introduzione Altri sistemi informatici (Workstation-Mainframe)
Workstation (stazioni di lavoro): video di grandi dimensioni processore di elevate prestazioni sono in grado di servire alcune decine di utenti utilizzate da professionisti per il lavoro su disegno tecnico (CAD),
ricerca scientifica, o produzioni audio/video Mainframe:
sistemi di grandi dimensioni capaci di gestire centinaia di utenti molti processori gigantesche memorie di massa centinaia o addirittura migliaia di terminali ES: sistemi di prenotazione dei viaggi aerei, sistemi informativi
per la gestione dei conti correnti di una banca.
Complessità, prestazioni e prezzo aumentano passando dai personal computer alle workstation e ai mainframe
Introduzione Altri sistemi informatici - Reti
Una rete di calcolatori e costituita dalla connessione di più elaboratori per mezzo di dispositivi dedicati al trasferimento dei dati.
Si distinguono due categorie principali: Ie reti locali (LAN, Local Area Network) Ie reti geografiche (WAN, Wide Area Network)
Le reti locali collegano fra loro calcolatori e terminali che sono fisicamente vicini fra loro Sono molto veloci (consentono cioè di trasmettere
grandi quantità di dati in poco tempo). In una rete locale alcuni "servizi" vengono messi
a disposizione dei calcolatori collegati in rete: stampanti di qualità calcolatori con ampie memorie di massa per la
memorizzazione di grandi quantità di dati
Introduzione Altri sistemi informatici - Reti
Introduzione Altri sistemi informatici - Reti
workstation workstation workstationworkstation
bus
stampantealta risoluzione
stampantebassa risoluzione
diskserver
RETE LAN
Introduzione Altri sistemi informatici - Reti
host
host host
RETE GEOGRAFICA
retegeografica
retegeografica
retegeografica
terminali locali
terminali remoti
collegamento direttoo tramite telefono
rete LAN
IntroduzioneSoftware
Firmware Ambienti di programmazione Software di produttività pesonale
Introduzione Ambiente di programmazione
Ambiente di programmazione: insieme di strumenti che facilitano la scrittura dei programmi e la verifica della loro correttezza.
Hanno molti aspetti in comune: Editor (creazione programma sorgente) Compilatore (traduzione programma sorgente-
programma oggetto Linker (collega insieme vari programmi oggettoin un
unico programma eseguibile Controllore dell' esecuzione (debugger)
Software di produttività personale Si adattano a funzioni tipiche della vita quotidiana (scrivere e
comunicare Comprendono:
sistemi di videoscrittura (elaboratori di testi o word processor),
agende elettroniche, che consentono di memorizzare un programma di lavoro o un indirizzario personale
ipertesti, che consentono di costruire strutture reticolari complesse, al cui interno trovano posto "pezzi" di testo (elenchi di vocaboli, paragrafi, riferimenti)
posta elettronica (e-mail), che consente lo scambio di messaggi fra due qualsiasi utenti di sistemi informatici che siano collegati tramite una o più reti di calcolatori
fogli elettronici (spreadsheet), che permettono di effettuare efficientemente l'analisi, la gestione e la rappresentazione di dati soprattutto numerici
sistemi per la gestione di basi di dati (o database system)
Introduzione Software di produttività personale
Introduzione Applicazioni dell’informatica
l'informatica si occupa della rappresentazione e la elaborazione delle informazioni
le sue applicazioni si estendano potenzialmente a ogni attività umana
calcolo numerico
giochi
sport attività giudiziaria
Fino a qualche decennio fa
Oggi
Sviluppi tecnologici•Aumento prestazioni•Aumento velocitàdi trasmissione•Tecnologia multimediale
Riduzione dei costi
Incremento qualitativo e quantitativodelle applicazioni informatiche
Applicazioni numeriche Applicazioni gestionali I servizi telematici Automazione industriale Controllo di impianti industriali Realtà virtuale
Introduzione Applicazioni dell’informatica
Le applicazioni gestionali Le classiche applicazioni gestionali operano su grandi
basi di dati realizzando sistemi informativi integrati Tipici ambienti applicativi:
banche società finanziarie o assicurative in genere compagnie di trasporto (con i sistemi di prenotazione) società telefoniche enti pubblici (anagrafe, immatricolazione veicoli,
intendenza di finanza) funzioni aziendali di contabilità gestione personale, clienti e magazzino
Automazione d'ufficio (office automation): servizi finalizzati a migliorare la qualità del lavoro e I'interazione interpersonale fra gli impiegati
svolgono funzioni specializzate e ripetitive (calcolo di paghe e contributi, gestione di operazioni di sportello) applicate a quantità notevoli di dati
tende soprattutto a fornire servizi di alta qualità e facili da usare
1 Algoritmi e strutture dati: Studia la rappresentazione e la manipolazione
dell'informazione Si occupa:
della teoria degli algoritmi e delle loro proprietà formali (tra cui lo studio della loro complessità)
dell'organizzazione dei dati più adatta a rappresentare l'informazione
2 Architettura dei calcolatori: Studia la realizzazione delle varie parti hardware che
caratterizzano un sistema informatico Si pone come obiettivo la costruzione di elementi
funzionali sempre più affidabili ed efficienti e la costruzione di sistemi e impianti sempre più complessi
Dieci aree disciplinari (Association for Computing Machinery);
Introduzione Le aree disciplinari dell’informatica
3 Intelligenza artificiale e robotica: Studia l'automazione di compiti normalmente
affidati a esseri umani, simulando la loro intelligenza
4 Scienze computazionali: Studia la soluzione di problemi numerici,
ponendo I'accento sull'efficienza delle tecniche risolutive e sulla precisione dei risultati
Introduzione Le aree disciplinari dell’informatica
5 Basi di dati e sistemi per il ritrovamento dell'informazione
Studia la gestione di grandi quantità di dati, essenziale nelle applicazioni gestionali
6 Grafica computerizzata Studia Ie tecniche per rappresentare e
manipolare immagini bidimensionali e tridimensionali sullo schermo del calcolatore
Introduzione Le aree disciplinari dell’informatica
7 Interazione uomo-calcolatore Studia I'efficienza del trasferimento di
informazione fra uomo ed elaboratore, non solo tramite le interfacce classiche (monitor e tastiera), ma anche attraverso vari sensori e attuatori.
8 Sistemi operativi e software di rete Studia la costruzione e la gestione dei sistemi
operativi e del software dedicato al controllo delle reti di calcolatori
Introduzione Le aree disciplinari dell’informatica
9 Linguaggi di programmazione Studia i linguaggi e le tecniche di programmazione,
individuando caratteristiche comuni ai vari linguaggi e definendo in modo preciso le loro proprietà
Studia le problematiche legate alla traduzione dei linguaggi di alto livello in linguaggi operativi, cioè eseguibili direttamente dall'elaboratore
10 Ingegneria del software Studia le metodologie e gli strumenti che possono aiutare
nella costruzione di programmi e sistemi software, ponendosi per obiettivo l'aumento della produttività dei programmatori e la realizzazione di applicazioni più efficienti, affidabili e facili da usare per l'utente finale.
Introduzione Le aree disciplinari dell’informatica