530 likes | 684 Views
Seconda Università degli Studi di Napoli Facoltà di Economia. Corso di Informatica. Prof.ssa Zahora Pina. Introduzione (Cap. 1 – pagg. 1-32) Che cos’è l’informatica. ?. risposte vaghe e contraddittorie. perchè. L’informatica abbraccia campi disparati. Intelligenza Artificiale. Calcolo
E N D
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 perchè L’informatica abbraccia campi disparati Intelligenza Artificiale Calcolo scientifico-ingegneristico Gestione Aziendale Elaborazione di dati geografici e ambientali
IntroduzioneChe cos’è l’informatica Non è 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 elaborazione delle 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 Problema Algoritmo Diagramma a blocchi Pseudocodifica codifica Programma
IntroduzioneAlgoritmi Es: somma di due numeri con un pallottoliere 1 2 3 Passo1: spostare 1 pallina della 1a riga da sx a dx Passo2: spostare 1 pallina della 3a riga da dx a sx Passo3: spostare 1 pallina della 2a riga da sx a dx Passo4: spostare 1 pallina della 3a riga da dx a sx ripeti fino a quandoci sono palline nella 1a riga ripeti fino a quandoci sono palline nella 2a riga
IntroduzioneAlgoritmi Un problema è un quesito che attende una risposta detta soluzione Un processo risolutivo è un insieme di passi da compiere per giungere alla Soluzione di un problema La soluzione o risultato finale è l’obiettivo che vogliamo raggiungere partendo dai dati iniziali Il criterio di verifica è un controllo sui risultati finali per verificare che questi siano rispondenti agli obiettivi iniziali
IntroduzioneAlgoritmi Problema: ottenere un biglietto treno per 2 persone da Roma a Milano il 20 marzo • Passo 1 • Passo 2 • . • . • . • Passo n biglietto Ottenere un biglietto Problema Risultai finali Algoritmo • Da Roma • a Milano • X 2 persone • Il 20 marzo Dati iniziali Verifica dei risultati
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
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 famiglia Dati iniziali: N: numero di persone di cui è composta la famiglia Algoritmo
IntroduzioneAlgoritmi Problema: cucinare la pasta per la propria famiglia • 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 Dati iniziali: N: numero di persone di cui è composta la famiglia L: litri di acqua per persona G: quantità di pasta per persona S: grammi di sale per persona M: tempo medio di cottura Algoritmo Algoritmo corretto • Prendere una pentola da N*L litri • Aggiungere N*L litri di acqua nella pentola • Accendere il fuoco e mettere la pentola sulfornello • 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
Introduzione Blocchi elementari blocco iniziale/finale blocco di azione blocco di controllo blocco di lettura/scrittura
IntroduzioneAlgoritmi: Calcolo del MCD MCD Il Massimo Comune Divisore di due numeri è il più grande dei divisori comuni ai due numeri Es1 - MCD tra 20 e 40: ALGORITMO 1 ALGORITMO 2 Divisori di 20: 1-2-4-5-10-20 Divisori di 40: 1-2-4-5-10-20-40 MCD=20 Scomposizione di 20: 20=5*22 Divisori di 40: 40=5*23 MCD=5*22=20 Si elencano tutti i divisori dei numeri e si selezione il maggiore tra quelli comuni Si moltiplicano i fattori comuni presi una sola volta con l’esponente minore non soddisfano proprietà algoritmi Es2 - MCD tra 25 e 40: ALGORITMO 1 ALGORITMO 2 Divisori di 25: 1-5-25 Divisori di 40: 1-2-4-5-10-20-40 MCD=5 Scomposizione di 25: 25=52 Divisori di 40: 40=5*23 MCD=5
IntroduzioneEs: Algoritmo di Euclide Es1 - MCD tra 20 e 40: Es2 - MCD tra 25 e 40: a=20 b=40 (test1 falso) a=40 b=20 resto=a mod b = 0 a=b=20 b=resto=0 (test2 vero) MCD = a = 20 a=25 b=40 (test1 falso) a=40 b=25 resto=a mod b = 15 a=b=25 b=resto=15 (test2 falso) resto=25 mod 15 = 10 a=b=15 b=resto=10 (test2 falso) resto= 15 mod 10 = 5 a=b=10 b=resto=5 (test2 falso) resto = 10 mod 5 = 0 a=b=5 b=0 MCD = a = 5 } } scambio a e b scambio a e b
Introduzione N.B. Scambio di a e b: a b a b c 3 5 3 5 3 c=a=3 a=b=5 b=c=3 a=b b=? 5 ? 5 3
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 Anni ’50) 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 Anni ’60) ALGOL (Algorithmic Language) • PASCAL • C • ADA linguaggi ad alto livello: Object-Oriented linguaggi ad alto livello: non convenzionali • C++ • Java • Delphi • LISP • PROLOG
IntroduzioneHardware • CPU • Memoria Centrale (RAM) • Memoria di massa • BUS di sistema • Unità periferiche
IntroduzionePersonal 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
IntroduzionePersonal 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
IntroduzioneAltri sistemi informatici (Workstation-Mainframe) • Workstation (stazioni di lavoro): • video di grandi dimensioni • processore dielevate 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
IntroduzioneAltri 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)
Introduzione Altri sistemi informatici - Reti • 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 RETE LAN stampante alta risoluzione diskserver stampante bassa risoluzione bus workstation workstation workstation workstation
Introduzione Altri sistemi informatici - Reti terminali remoti RETE GEOGRAFICA collegamento diretto o tramite telefono rete geografica host host terminali locali rete geografica rete geografica rete LAN host
IntroduzioneSoftware • Firmware • Ambienti di programmazione • Software di produttività pesonale
IntroduzioneAmbiente 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)
IntroduzioneSoftware di produttività personale 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)
IntroduzioneApplicazioni 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 sport attività giudiziaria giochi Fino a qualche decennio fa Oggi • Aumento prestazioni • Aumento velocitàdi trasmissione • Tecnologia multimediale Sviluppi tecnologici Riduzione dei costi Incremento qualitativo e quantitativo delle applicazioni informatiche
Introduzione Applicazioni dell’informatica • Applicazioni numeriche • Applicazioni gestionali • I servizi telematici • Automazione industriale • Controllo di impianti industriali • Realtà virtuale
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
IntroduzioneLe aree disciplinari dell’informatica Dieci aree disciplinari (Association for Computing Machinery); 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
IntroduzioneLe 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