Presentazione del docente Mario Ferraro • E-mail: [email protected] • Webpage:http://personalpages.to.infn.it/~ferraro/ • Ricevimento: –dopo le lezioni –il martedì mattina tra le 9 e le 11 al Dip. di Fisica Sperimentale in via Giuria 1, I piano Vecchio Istituto; appuntamento via mail o via telefono. • Telefono ufficio: 011 6707376 Per arrivare alla pagine Web del corso Cliccando su informatica... Un altra pagina utile Piattaforma di E-Learning Obiettivi del corso Introdurre all' Informatica Fornire strumenti metodologici e pratici per l' uso del computer Non è un corso ECDL (patente europea del computer) “Sì, ma perché proprio a noi?” Perché un ISF dovrebbe interessarsi di informatica? • Il computer è uno strumento di lavoro quotidiano. • Perché è utile indipendentemente dal tipo di studi che fate (per redigere la tesi di laurea, per reperire informazioni su internet, per comunicare con collaboratori ed amici, etc.). Perché l’enfasi sulla teoria? Per non essere legati indissolubilmente a un tipo di computer (es. PC con Windows) Per non essere legati a un tipo di programma (es. versione 2000 di Microsoft Word) Se non si conoscono gli strumenti tecnologici, non se ne possono sfruttare le potenzialità Il computer è versatile: non si possono prevedere gli usi futuri Parte teorica (1) Introduzione i concetti di base le applicazioni dell’informatica Rappresentazione delle informazioni numeri, testo, immagini, suoni Architettura dell’elaboratore la la le la CPU memoria unità periferiche memoria secondaria Parte teorica (2) Il software caratteristiche programmi applicativi il sistema operativo (software di base) programmi di videoscrittura fogli elettronici basi di dati Parte teorica Comunicazione tra elaboratori le reti di calcolatori il World Wide Web La multimedialità gli strumenti e i dispositivi (3) Laboratorio Informatico Il laboratorio di informatica è aperto tutti i mercoledì dalle 12 alle 17. Nel caso abbiate dubbi non esitate a contattare il docente via e-mail o a venire a ricevimento. Esame 1. Prova scritta su tutto il programma (foglio per correzione ottica) • E’ possibile sostenere due appelli su tre • valida per la sessione corrente • NECESSARIA l’iscrizione 2. Prova orale/pratica in laboratorio (un esercizio su excel) • ammissione subordinata al superamento prova scritta Esame 3. Il voto di Informatica fa media con l'esame di Statistica 4. Il voto di Informatica vale un anno solare Esame Se siete in possesso di un diploma come perito informatico o della patente europea del computer (ECDL) oppure di un attestato di partecipazone al PIN non è necessario che sosteniate la parte pratica dell’esame. Una volta superata la prova teorica potete venire all prova pratica muniti di statino e di uno dei documenti sopracitati. Il superamento dell’esame sarà registrato immediatamente. Esame È un’esame facile? Alcune statistiche: numero studenti: 580 95 (~16%) non hanno passato l’esame: 16 (~3%) hanno provato teoria e pratica 39 (~7%) non hanno provato ne’ teoria ne’ pratica 34 (~6%) hanno provato solo la teoria 6 (~1%) hanno provato solo la pratica 485 hanno superato l’esame 59 (~10%) ECDL 80 (~14%) hanno superato direttamente la pratica 346 (~59%) hanno superato l’esame completo Esame È un’esame facile? Prova di teoria Numero tentativi Numero studenti Percentuale 6 1 0.3% 5 2 0.5% 4 5 1.3% 3 21 5.3% 2 75 18.9% 1 292 73.7% Esame È un’esame facile? Prova pratica Numero tentativi Numero studenti Percentuale 4 1 0.2% 3 1 0.2% 2 60 13.4% 1 386 86.2% Testi consigliati Entrambi i testi: • D.P. Curtin, K. Foley, K. Sen, C. Morin, Informatica di base, McGraw-Hill • Introduzione all’informatica, UTET Disponibile in due edizioni, equivalenti: – L. Console, M. Ribaudo, Introduzione all’informatica, 1997 – L. Console, M. Ribaudo, U. Avalle, Introduzione all’informatica, 2005 Le parti dei libri da studiare seguono gli argomenti presentati a lezione e verranno indicate sulla pagina web Altro materiale didattico • Slide mostrate a lezione • Esercizi simili a quelli richiesti per il superamento della prova pratica appariranno sulla pagina web del corso • Approfondimenti su argomenti specifici (facoltativi) ATTENZIONE! Queste slide sono solo una traccia delle lezioni Sono utili per fissare le idee e integrare i testi, ma sono incomplete e NON sostituiscono né il materiale consigliato, né le lezioni! Frequently Asked Questions • “E’ necessario frequentare? Il programma è diverso?” Frequenza vivamente consigliata Stesso programma per frequentanti e non • “Posso fare una domanda sugli argomenti della lezione?” Sì! Strumenti Informatici Istituzionali Il punto di accesso alle infrastrutture informatiche di Facoltà riservate agli studenti è: URL: https://gate-edu.unito.it Username: numero matricola Password: data di nascita (es. 10/10/1988) Importante: la mail istituzionale è lo strumento principale di contatto con l’università. È vostro dovere consultarla regolarmente (tramite essa verrete informati di eventuali cambi d’orario, dell’avvenuta iscrizione ad un esame, ecc.). Di cosa parliamo quando parliamo di Informatica • Informatica in inglese: – Information and Communication Technology: Informatica come tecnologia risvolti fisico-matematici e ingegneristici del calcolo automatico; teorie e tecniche di comunicazione – Computer Science: Informatica come scienza basata su modellizzazione, formalizzazione e verifica sperimentale (teoria degli automi, logica formale, teorie del linguaggio) “Computer Science is no more about computers than astronomy is about telescopes.” (E. Dijkstra) Breve Storia del calcolo automatico Il calcolo automatico Effettuare calcoli a mente o a “mano” è un’attività “costosa” (in termini di tempo e fatica) e incline all’errore. Per secoli l’uomo ha cercato di porre rimedio a questo fatto “automatizzando” il processo di calcolo. L’abaco È la prima “macchina” di calcolo nota. I primi abaci risalgono al V millennio a.C. L’abaco La Pascalina Bisogna aspettare fino al XVII secolo d.C. per avere la prima vera innovazione rispetto all’abaco. La Pascalina La pascalina é il primo grande passo avanti: la logica dell’operazione é controllata dalla macchina. Problema La pascalina permetteva di effettuare “solo” addizioni e sottrazioni. Moltiplicazioni, divisioni potevano essere effettuate mediante ripetizioni di addizioni e sottrazioni, ma era di nuovo l’utente a dovere controllare il processo. Come aggiungere nuove operazioni? Si può pensare di affrontare il problema modificando la macchina in modo da introdurre la divisione e la moltiplicazione. Nuovi problemi: radice quadrata? logaritmo? Quante sono le funzioni matematicamente definibili? In effetti non si sta risolvendo il problema, lo si “rimanda” Come aggiungere nuove operazioni? Il problema vero è che la logica che governa le operazioni è “cablata” nella macchina calcolatrice. La soluzione è di trattare tale logica come parte dell’input della macchina. Logica delle operazioni come parte dell’input? • Il prodotto, la divisione, …, possono venire “descritti” tramite operazioni piu’ semplici • Individuiamo un insieme “base” di operazioni e combiniamole per rappresentare quelle piu’ complesse • L’ordine delle operazioni base e i loro argomenti possono essere specificati usando solo numeri • Siamo quindi in grado di descrivere la logica di operazioni complesse usando il linguaggio (i numeri) usato per l’input delle macchine di calcolo Facoltà di Farmacia - Corso di Informatica 39 Difference Engine (Babbage) La “Macchina Analitica” Introdotta da Charles Babbage intorno al 1840, è il primo esempio di macchina di calcolo “programmabile” La logica dell’operazione è “confusa” con i dati Dati Programma Da Babbage ai giorni nostri Le idee di Babbage erano troppo avanzate per la sua epoca storica. Da un lato la tecnologia non era ancora sviluppata a sufficienza da supportare le sue idee (la macchina analitica era progettata per funzionare a vapore!), dall’altro non era ancora sentita così forte l’esigenza del calcolo automatico. Per questi motivi le sue idee non ebbero il successo che meritavano e furono dimenticate per quasi un secolo. Da Babbage ai giorni nostri Le idee di Babbage vennero “riscoperte” nella prima metà del ‘900 da Alan Turing e da John von Neumann. Alan Turing Uno dei padri dell’informatica. Moltissime sue idee/congetture sono attuali oggigiorno. Introduce il concetto di macchina universale (i computer moderni sono “implementazioni di questo concetto”) La macchina di Turing È un modello astratto di calcolatore. Turing la descrive e la usa al fine di analizzare l’insieme delle funzioni che possono essere calcolate in modo automatico. Nasce uno dei pilastri dell’informatica teorica: la teoria della calcolabilità. È universale perché può calcolare tutte le funzioni “calcolabili”. Alla base del suo funzionamento c’è la stessa idea che c’è alla base della macchina analitica. La macchina di Turing Perché si parla di funzioni “calcolabili”? Si può dimostrare che non tutte le funzioni definibili in matematica sono calcolabili mediante una macchina di Turing. Non è un problema specifico della macchina di Turing: esistono problemi che “semplicemente” non possono essere risolti in modo automatico (es. Halting problem). John Von Neumann Crea il modello di calcolatore a cui si ispirano i calcolatori moderni. Un po’ di storia (tecnologica)… • 1600: macchine calcolatrici a ingranaggi (Pascal, Leibniz) • 1800: macchine con schede perforate e primi programmi (Babbage, Lovelace (figlia di Byron)) • 1920: erano chiamati computer “impiegati” (spesso donne) che eseguivano calcoli numerici • 1940: macchine a relay meccanici – Bell Laboratories – Mark I presso Harvard University e IBM • 1950: macchine di von Neumann – Schede perforate, nastri magnetici – Transistor, circuiti stampati • 1980: microcomputer – Home computer, personal computer Nastro perforato Scheda Perforata Macchina perforatrice Lettore di schede Un po’ di storia (scientifica)… • 300 a.C.: algoritmo di Euclide per MCD • 1800: Boole metodi puramente simbolici per modellare il ragionamento • 1930: Church, Turing – modello formale astratto di computer – computer come macchina universale: “We are trying to build a machine to do all kinds of different things simply by programming rather than by the addition of extra apparatus” (Turing) – esistono problemi che un computer non può risolvere • 1940: Shannon teoria dell’informazione • 1950/60: Dijkstra, Kruskal, Hoare, ecc. • algoritmi fondamentali, linguaggi di programmazione, teoria dei linguaggi formali, ecc. 1970: Codd, Rivest et al., McCarthy et al., Cook et al. database relazionali, crittografia a chiave pubblica, intelligenza artificiale, complessità computazionale Prova d'esame! • • • • • • • • • • • • • • • Temi dell’Informatica Calcolabilità Complessità Teoria dei linguaggi formali Algoritmi e strutture dati Linguaggi di programmazione Compilatori e interpreti Architettura dei calcolatori Sistemi operativi Ingegneria del software Reti di calcolatori Interazione uomo-macchina Sicurezza Intelligenza artificiale Basi di dati … Temi dell’Informatica Ciascuno di questi temi è un “edificio” più o meno complesso; ad es. Intelligenza artificiale: • Risoluzione dei problemi – … • Rappresentazione della conoscenza – … • Meccanismi di ragionamento – … • Apprendimento automatico – … • Pianificazione, scheduling, diagnosi, configurazione, soddisfacimento di vincoli,… – … Introduzione all’Informatica • Informatica: infor(mazione) (auto)matica insieme dei processi e delle tecnologie che consentono – la creazione, – la raccolta, – l’elaborazione, – l’immagazzinamento, – la diffusione dell’informazione Il ciclo di elaborazione Dati e informazioni Terminologia • Hardware – componente fisica del sistema informatico • computer, stampanti, monitor, tastiere, mouse, modem, cavi telefonici • Computer – elaboratore: dispositivo in grado di eseguire automaticamente una serie di istruzioni – elettronico: usa componenti elettronici – digitale: elabora segnali numerici Terminologia • Sistema – insieme di parti correlate che operano e interagiscono per svolgere una funzione specifica – è costituito da componenti e da sottosistemi (sistemi a loro volta) Terminologia • Algoritmo (aritmetica elementare formulata dal matematico arabo medioevale al-Khuwarizmi) – insieme delle operazioni necessarie a risolvere un problema (es. ricetta, istruzioni di montaggio LEGO®) – n.b.: piu’ algoritmi possono risolvere lo stesso problema • Programma – implementazione di un algoritmo in un linguaggio formale – n.b.: piu’ programmi possono implementare lo stesso algoritmo Un esempio banale • Determinare se un numero e' pari o dispari • Almeno due diversi algoritmi danno la risposta 15/10/10 Facoltà di Farmacia - Corso di Informatica Un semplice programma • • • • • • • • • • • • • program pari implicit real * 4 (a-h,o-z) do n=121,130 anm=float(n)/2. kn=int(anm) if (anm.eq.kn) then print*, n, "pari" else print*, n, "dispari" end if end do stop end 15/10/10 Facoltà di Farmacia - Corso di Informatica Il risultato e' • • • • • • • • • • 15/10/10 121 122 123 124 125 126 127 128 129 130 dispari pari dispari pari dispari pari dispari pari dispari pari Facoltà di Farmacia - Corso di Informatica Complicando un po' le cose ..... • Numeri di Fibonacci: • f(n)=f(n-1)+f(n-2) f(0)=0, f(1)=1 • Calcoliamo i primi 10 numeri di Fibonacci 15/10/10 Facoltà di Farmacia - Corso di Informatica Programma.... program fibonacci • dimension nf(100) • nf(1)=0 • nf(2)=1 • open(10,file='fib.dat') • write(10, 100) 0, nf(1) • write(10, 100) 1, nf(2) • do k=3, 11 • nf(k)=nf(k-1)+nf(k-2) • write(10, 100) k-1, nf(k) • end do • close(10) • 100 format(1x,I5,2x,I5) • stop • end • 15/10/10 Facoltà di Farmacia - Corso di Informatica e risultato • • • • • • • • • • • 0 1 2 3 4 5 6 7 8 9 10 15/10/10 0 1 1 2 3 5 8 13 21 34 55 Facoltà di Farmacia - Corso di Informatica Verifica! 15/10/10 Facoltà di Farmacia - Corso di Informatica Un esempio illustre 15/10/10 Facoltà di Farmacia - Corso di Informatica 15/10/10 Facoltà di Farmacia - Corso di Informatica E come era inserito... 15/10/10 Facoltà di Farmacia - Corso di Informatica Terminologia • Software – insieme dei programmi che fanno funzionare l’hardware • Due categorie principali di software – sistemi operativi: permettono all’elaboratore di svolgere le proprie funzioni (software di base) – programmi applicativi: svolgono i compiti più vari, in funzione delle esigenze dell’utenza Software • Svariate decine di sistemi operativi – MS-DOS, Windows 2000/XP/Vista – MacOS X, VMS – Unix (BSD, Linux, Solaris, Irix, Ultrix, HP-UX…) • Centinaia di migliaia di programmi applicativi, ad esempio: – browser, videoscrittura, fogli elettronici – gestione di basi di dati – grafica avanzata – controllo di centraline Dati • Materia prima del trattamento dell’informazione • Hardware e software hanno lo scopo di elaborare e rappresentare dati • Un computer può elaborare dati di ogni genere – dati semplici: lettere e numeri – dati complessi: suoni, immagini, filmati, grafici Tipi di Dato • Evoluzione temporale (storica) dei dati elaborabili Tipi di dati Applicazioni in campo industriale • Progettazione (CAD) • Fabbricazione (CAM) • Progettazione di modelli architettonici valutare la funzionalità e la sicurezza di edifici o strutture) • Editoria elettronica (Desktop publishing), produzione di lettere, opuscoli, libri • Analisi finanziarie (nelle aziende vengono analizzati dati numerici e grafici) Applicazioni ‘home’ • Cataloghi per la vendita in Rete • Attività locali (siti di comuni, regioni, ...) • Giochi educativi Applicazioni in campo didattico • Enciclopedie multimediali • Musei virtuali • Corsi di autoapprendimento (CBT: computer based training), simulatori di volo • Teledidattica (teleconferenze) • Virtual Reality Applicazioni in campo artistico e dello spettacolo • • • • Cinema Musica Animazione Sport Applicazioni in campo scientifico • Chimica: simulazione di reazioni chimiche, modelli 3D di molecole, proteine • Medicina: analisi del corpo umano, RMN, TAC, creazione di data base clinici, monitoring di parametri dei pazienti, esami oculistici, sequenzializzazione del DNA • Trasmissione satellitare • Topografia: i dati di rilevamenti topografici sono utilizzati per costruire una carta topografica Applicazioni in campo scientifico • Matematica: es. ricerca di soluzioni di equazioni, analisi numerica, rappresentazione grafica Dove utilizziamo i computer • Nei grandi sistemi informativi informatici – Prenotazioni aeree – Previsioni del tempo – Casse automatiche (Bancomat, Carte di credito) – Stampati pubblicitari (lettere personalizzate) – ……. Dove utilizziamo i computer • Nei piccoli sistemi elettronici – Orologi – Centraline auto (ABS, ASR, ESP, airbag, ...) – Ricevitori digitali (es. di segnali da satellite) – Videogiochi (home e portatili) – Telefoni cellulari (e carte SIM) – Schede telefoniche – …… Esempio: il sistema GPS • GPS: Global Positioning System – costellazione di 24 satelliti – stazioni a terra che ne controllano il funzionamento – ricevitori portatili e fissi, ognuno dei quali è un piccolo elaboratore Esempio: il sistema GPS • GPS: Global Positioning System – costellazione di 24 satelliti – stazioni a terra che ne controllano il funzionamento – ricevitori portatili e fissi, ognuno dei quali è un piccolo elaboratore