Che cos’e’ l’Informatica Informatica generale Scienza dell’elaborazione dell’informazione • non si riduce all’utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); • si occupa del trattamento dell’informazione in termini di rappresentazione e algoritmica; • fondamentale e’ il concetto di algoritmo Esempi di algoritmi • somma di due numeri (in rappresentazione decimale o altro); • calcolo della distanza di due nodi in un grafo; • ricerca di un articolo in una banca dati; • ecc. Introduzione Caratteristiche fondamentali degli algoritmi • Correttezza e completezza (induzione) • Complessita’ (analisi asintotica del caso pessimo) ... Teoria degli algoritmi Linguaggi di programmazione • servono per fare eseguire algoritmi; • ce ne sono tanti suddivisi in paradigmi: imperativo, logico, funzionale, objectoriented; • esempi: Fortran (formula translator), Cobol (Common Business Oriented Language), Pascal (didattico), C (Unix), Java (Internet), Prolog (dichiarativo), Lisp (funzionale), ... Hardware: le componenti • Unita’ di elaborazione, processore, CPU (Central Processing Unit) • Memoria centrale, RAM (Random Access Memory) • Memoria secondaria, memoria di massa • Bus di sistema • Periferiche di I/O (mouse, tastiera, terminali, stampanti, ecc.) Architettura dei sistemi informatici: introduzione Molte componenti eterogenee, prima suddivisione: hardware/software La memoria in un calcolatore • contiene sia i dati che i programmi che operano su di essi (alla base della differenza tra i moderni calcolatori e le antiche macchine per eseguire calcoli) • problema tecnologico: deve essere stabile Termini usati: disco rigido (fisso), CD-ROM (Compact Disk-Read Only Memory) ... FILE ... idee molto belle: chi le ha avute? • von Neumann • Turing • … Sistemi informatici dal punto di vista hardware PC reti di calcolatori Personal Computer Reti di calcolatori • Piccoli, tutte le componenti nello “stesso posto”, si suppone vengano utilizzati da una singola persona • Molti elaboratori (magari PC) collegati tra loro (spesso si usa il termine workstation) • Tra i calcolatori collegati ce ne possono essere di particolarmente grandi (si usa il termine mainframe) al quale vengono collegati i terminali (coppia di dispositivi di I/O) • I sistemi operativi (software di base per l’utilizzo dell’elaboratore) per PC sono spesso disegnati per un singolo utente Reti di calcolatori LAN Due principali categorie di reti: • LAN (Local Area Network) e Servono, essenzialmente, a condividere risorse e a comunicare in un stesso edificio (o poco piu’) • WAN (Wide Area Network) Ex. Ethernet WAN pc stampante pc pc PC del capo pc bus stampante lettore dat cd-drive • Collegano elaboratori molto distanti fra loro; • funzionano usando reti locali come sottoreti e collegamenti tramite rete telefonica (o altro) • permettono la computazione distribuita • ... sono piu’ complesse e problematiche delle LAN rete locale router terminali remoti Host Host rete geografica Host terminali locali terminali locali teminali remoti I sistemi informatici dal punto di vista sw • E’ la parte modificabile dei sistemi informatici • Ci interessa di piu’ perche’ abbiamo modo di scriverlo (oltre che di usarlo) • Spesso e’ molto costoso e nasconde vari tipi di trappole Classificazione del sw SW di base • Software di base: opera al di sopra dell’hw e di solito si compra Ex. Sistema operativo • permette di usare il sistema fisico (esecuzione di programmi, memorie, periferiche, ...) • permette di utilizzare il sistema da parte di uno o piu’ utenti (mono-utente, multi-utente) • garantisce la sicurezza Windows, MacOS, Unix, Linux, ... • Software applicativo: anche questo si compra ma e’ pensato per rispondere ad esigenze specifiche. Si puo’ anche implementare o personalizzare SW applicativo ... tantissimo software Ex. Sistema di gestione di basi di dati (database) • consente l’organizzazione dei dati per l’accesso in modo condiviso • e’ una delle classi di programmi piu’ importanti per le moderne biotecnologie • • • • Programmazione • ambienti per l’utilizzo dei linguaggi di programmazione: – editor – compilatori – interpreti – linker – debugger software per la comunicazione videoscrittura agende elettroniche ipertesti (e linguaggi per la loro gestione) • fogli elettronici • ... Le applicazioni dell’Informatica • applicazioni numeriche: i computer come “number cruncher” • le applicazioni gestionali: office and lab automation • i servizi telematici distribuiti (e.g. Bancomat) • l’automazione industriale CAD (Computer Aided Design), CAM (Computer Aided Manufacturing) • applicazioni embedded (sistemi real time) Le aree disciplinari dell’Infomatica • • • • • • • • • • Algoritmi e strutture dati Architettura degli elaboratori Intelligenza artificiale Teoria della computazione Basi di dati Grafica Interazione uomo-macchina sistemi operativi e reti linguaggi di programmazione ...