Fondamenti di Informatica - lepillole.it · Automatica: capacità di eseguire una successione di...

44
Fondamenti di Informatica Introduzione

Transcript of Fondamenti di Informatica - lepillole.it · Automatica: capacità di eseguire una successione di...

Fondamenti di Informatica        Introduzione

Fondamenti di Informatica Corso di Laurea in Ingegneria Industriale

(Elettrica, Meccanica, Energetica) Anno 2012- 2013

[email protected]

Laura Pedrinazzi

Sommario      

 Aspetti organizzativi del corso  

 Introduzione all’informatica  

   Informazione  

   Macchina  

Fondamenti di Informatica      

   

 Programma del corso  

 Calendario (esercitazioni, lezioni, laboratorio,  prove)

 

 Modalita’ d’esame  

 

•  Archite)ura  di  un  elaboratore  e  principi  logici  del  suo  funzionamento;  

•  Metodi  di  codifica  delle  informazioni  e  operatori  per  manipolarle;  

•  Sistemi  opera;vi  e  linguaggi  di  programmazione;    •  Principi  di  base  della  programmazione  stru)urata;  •  Definizione  di  algoritmi  e  rappresentazione  mediante  

diagrammi  di  flusso;  •  Stru)ure  da;  e  algoritmi  per  ges;rle;  •  Linguaggio  C  e  suo  u;lizzo  per  la  implementazione  

applicazioni  di  media  difficolta’.  •  Ciclo  di  vita  del  so-ware  

UNIVAC (1951)

Sommario (teoria)

Algoritmi e strutture dati: •  Stile di programmazione •  Ricorsione •  Strutture informative •  Strutture concrete •  Algortimi comuni •  (ricerca e ordinamento)

UNIVAC (1951)

Sommario ( pratica)

•  ConceE  di  base  •  Tipi  di  da;,    operatori  e    istruzioni  •  Funzioni    •  Puntatori    •   Ges;one  della  memoria    •  Classi  di  memorizzazione    •  Preprocessore    •  File

UNIVAC (1951)

Sommario (pratica)

•  ConceE  base  di  HTML  •  Archite)ura  client/server  e  web  •  Database  •  Cenni  di  programmazione  a  oggeE  •  Programmare  per  iPad,iPhone  e  Android  

UNIVAC (1951)

Se sarete bravi…

Modalita’ d’Esame        

    Prova  scri*a  sulla  parte  teorica  in  cui  vengono  propos4  argomen4  tra6a4  nel  corso  delle  lezioni  che  devono  essere  approfondi4  dal  candidato    Prova  pra0ca  di  programmazione  in  cui  il  candidato  dovrà  sviluppare  un  programma  in  linguaggio  C  che  risolva  il  problema  proposto    La  valutazione  globale  è  la  media  aritme4ca  delle  valutazioni  (entrambe  in  trentesimi)  conseguite  nelle  due  prove  

Modalita’ d’Esame        

    Prova  in  i0nere  a  dicembre/gennaio  sulla  parte  teorica  (sos0tuisce  la  prova  teorica  nelle  sessioni  d’esame).    Sessione  d’esame  a  febbraio,  luglio  e  se*embre.  (  2  appelli  per  ogni  sessione  di  prova  pra0ca  e  teorica).    Potete  sostenere  la  prova  pra0ca  e  la  prova  teorica  nell’ordine  che  preferite  e  anche  in  diversi  appelli.    Ogni  prova  e’  ritenuta  valida  fino  a  o*obre  2013.    

 Materiale  dida*co  consigliato    J.  Glenn  Brookshear,  INFORMATICA  una  panoramica  generale.  Pearson  Addison  Wesley.  9^  edizione,  11/2006.    Buon  riferimento  per  la  preparazione  della  maggior  parte  degli  argomen;  teorici.    P.  Tosora*,  Introduzione  all’Informa0ca.    Casa  Editrice  Ambrosiana,  1998,  Milano.    Buon  riferimento  per  la  preparazione  della  maggior  parte  degli  argomen;  teorici.

 Materiale  dida*co  consigliato        Harvey  M.  Deitel,  Paul  J.  Deitel,    C  Corso  completo  di  programmazione  -­‐  Terza  Edizione.  Apogeo,  2007.    Un  testo  chiaro  e  ben  scri6o,  oBmo  per  la  didaBca.    Brian  W.  Kernighan,  Dennis  M.  Ritchie,    Linguaggio  C.  Seconda  Edizione.  Jackson  Libri,  1989.    E'  sicuramente  il  testo  di  riferimento  per  il  linguaggio  C,  ideale  come  manuale  di  riferimento.    Dispensa  di  T.  Facchine*,  C.  Larizza  e  A.  Rubini,  reperibile  al  sito:  hOp://www.dispenseonline.net/  (Pavia  University  Press,  casa  editrice  dell'Università  degli  Studi  di  Pavia)

Perché studiare informatica CULTURALI

Conoscere la logica del computer per capire e progettare nuove devices Un ingegnere non può ignorarla

INGEGNERISTICI Un ingegnere non può progettare senza

PRATICI Un tecnico non può trovare lavoro senza

Dove è l’informatica  

 Applicazioni scientifiche Calcolo numerico Simulazione Grafica Trattamento immagini

Applicazioni industriali CAD (Computer Assisted Design) CAM (Computer Assisted Manufacturing) Controllo di processo Robotica Cim (Computer Integrated Manufacturing)

Applicazioni gestionali Basi di dati (paghe, contabilità, finanza...) Gestione magazzino Contabilita`

Lavoro di ufficio Elaborazione testi (Word Processors) Fogli elettronici (SpreadSheets) Archivi Posta elettronica

Sistemi Embedded Processi informatici inglobati completamente in un processo produttivo o calcolatori inglobati in una apparecchiatura. L’ utente non ne percepisce direttamente la presenza. Automobili (ABS, controllo iniezione elettronica). Elettrodomestici.

Domotica Sistemi di intrattenimento

Videogiochi. Realta’ virtuale.

Telematica e INTERNET e-mail (posta elettronica) Accesso a informazioni sul Word Wide Web (Documenti ipertestuali, ...) Accesso a servizi (Consultazione di orari, prenotazioni, servizi bancari) e-commerce (sistemi di vendite in rete) e-learning (sistemi di apprendimento in rete) e-government (pubblica amministrazione, certificati, bandi, firma elettronica) e-science (laborati virtuali, etc)  virtuale

•  Informatica ⎯ fusione delle parole informazione e automatica ⎯ l’insieme delle discipline che studiano gli strumenti per l’elaborazione automatica dell’informazione e i metodi per un loro uso corretto ed efficace

•  L’ informatica è la scienza della rappresentazione e dell’elaborazione dell’informazione §  L’accento sull’ “informazione” fornisce una spiegazione del perché

l’informatica sia ormai parte integrante di molte attività umane: laddove deve essere gestita dell’informazione, l’informatica è un valido strumento di supporto

§  Il termine “scienza” sottolinea il fatto che, nell’informatica, l’elaborazione dell’informazione avviene in maniera sistematica e rigorosa, e pertanto può essere automatizzata

Che cos’è l’informatica - 1

•  L’informatica non è la scienza dei calcolatori elettronici: il calcolatore è lo strumento che la rende “operativa”

•  L’elaboratore (computer, calcolatore) è un’apparecchiatura digitale, elettronica ed automatica capace di effettuare trasformazioni sui dati: §  Digitale: i dati sono rappresentati mediante un alfabeto finito,

costituito da cifre, digit, che ne permette il trattamento mediante regole matematiche

§  Elettronica: realizzazione tramite tecnologie di tipo elettronico

§  Automatica: capacità di eseguire una successione di operazioni senza interventi esterni

•  “La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.” (Isaac Asimov)

Che cos’è l’informatica - 2

/8

… Informatica …Calcolatore

L’oggetto è l’ informazione (e il modo per gestirla automaticamente)  Studia il ragionamento  E’ universale

L’oggetto è un dispositivo complesso  Usa tecnologie in evoluzione  Può cambiare nel tempo

Che cosa è l’informatica      

 “è ciò che esce dall’attività del computer, così  come il pensare è ciò che esce dall’attività  della mente”

 

 È la meccanizzazione dell’informazione  

 È un modello dei processi cognitivi  

 È una branca della matematica  

 …..

LE ORIGINI Per l’elaborazione delle informazioni, l’uomo ha bisogno di strumenti che possono essere:

formali materiali (dita, sassi - calculi…)

per automatizzare l’elaborazione, fu necessario memorizzare non solo i dati ma anche le operazioni.

Il nascere della disciplina risale alla prima meta’ del secolo scorso - teoria della computabilita’.

una caratterizzazione del concetto di algoritmo ed una definizione delle sue proprieta’ sviluppata su modelli astratti di macchine.

Che cosa significa computare?    

 Eseguiamo la somma di due numeri (naturali), ad esempio 2 + 3      01 2 3456789          3 456789            4 56789              5 6789

     Visualizzando i numeri ordinati in successione, partiamo da 2 e ripetiamo  3 volte l'operazione “passaggio al numero successivo”: da 2 a 3, da 3 a 4,  da 4 a 5.  Per ottenere il risultato dobbiamo seguire questi passaggi:    individuare un numero (quello di partenza)    ripetere le seguenti operazioni:        passare al numero successivo        controllare se si è raggiunto il numero di ripetizioni previste

.. altro caso per eseguire moltiplicazioni, per esempio 2 x 3, si tratta di addizionare 3 volte il numero 2:

2+2+2

Per ottenere il risultato della moltiplicazione dobbiamo seguire questi passaggi:

individuare un numero (quello di partenza) Ripetere l’addizione (che ha un contatore interno)  controllare se si è raggiunto il numero di ripetizioni previste

ancora      

 l'elevazione a potenza, per esempio  

 2 3 = 2 x 2 x 2.  

 In questo caso, si dovrà aggiungere un terzo  contatore per contare il numero di  moltiplicazioni da eseguire….

 Si può costruire una macchina che aiuta a  fare questi conti?

     

strumenti    

 occorre definire i simboli con i quali rappresentiamo i numeri,  le operazioni e la sequenza di operazioni impostate.    La scrittura dei numeri è molto semplice usando due simboli: 0 e 1

   occorre anche un supporto sul quale riportare i simboli:    adotteremo un nastro di carta diviso in celle, ognuna delle quali    contiene un solo simbolo: per scrivere il numero 3, occorreranno    quindi tre celle.

   il nastro deve essere collegato ad un meccanismo che gli  permetta di scorrere per esaminare il contenuto di ogni cella,  e per portarsi in una zona di celle nella quale annoteremo i  risultati parziali ottenuti, o altri simboli eventualmente  necessari.

•  Programma: sequenza di operazioni atte a predisporre l’elaboratore alla soluzione di una determinata classe di problemi §  Il programma è la descrizione di un algoritmo in una forma

comprensibile all’elaboratore

•  Algoritmo: sequenza finita di istruzioni attraverso le quali un operatore umano è capace di risolvere ogni problema di una data classe; non è direttamente eseguibile dall’elaboratore

•  L’elaboratore è una macchina universale: cambiando il programma residente in memoria, è in grado di risolvere problemi di natura diversa (una classe di problemi per ogni programma)

La macchina universale

•  La capacità dell’elaboratore di eseguire successioni di operazioni in modo automatico è determinata dalla presenza di un dispositivo di memoria §  Nella memoria sono registrati i dati e... §  ...le operazioni da eseguire su di essi (nell’ordine secondo cui

devono essere eseguite): il programma, la “ricetta” usata dall’elaboratore per svolgere il proprio compito

•  Il programma viene interpretato dall’unità di controllo

ò Modello di Von Neumann

L’architettura di Von Neumann

Architettura di Von Neuman

   Unità  di Controllo          

 Unità Aritmetica

Memoria

B U S

Dati

Indirizzi Istruzioni

 Stato  Istruzioni

•  L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione (ACM, Association for Computing Machinery)

•  Nota È possibile svolgere concettualmente un’attività di tipo informatico senza l’ausilio del calcolatore, per esempio nel progettare ed applicare regole precise per svolgere operazioni aritmetiche con carta e penna; l’elaboratore, tuttavia, è uno strumento di calcolo potente, che permette la gestione di quantità di informazione altrimenti intrattabili

Ancora sull’informatica…

•  Nel sistema geroglifico vengono riservati ai numeri sette simboli diversi per rappresentare le potenze del 10, da 1 a 106

•  I geroglifici utilizzati erano:

Rotolo di fune

Uomo a braccia levate, simbolo del dio Heh

Bastoncino

Girino o rana Dito

Pastoia per bestiame o giogo

Ninfea o fiore di loto

I numeri nell’antico Egitto

L’algebra di Boole

Sistemi di numerazione

La codifica binaria Come si scrivono i dati e le istruzioni nella memoria?

Occorre un sistema analogico, che permette di codificare informazioni attraverso un’analogia fra il sistema e il dato. In un sistema di codifica c’è bisogno di un alfabeto (un insieme di simboli) per costruire frasi, ma anche di regole (come comporre cioè in modo corretto i simboli)

dispositivo bistabile (due stati), codifica due dati (BIT, cifra binaria).

non basta memorizzare due dati: si prende una successione di “bit” ordinati con cui è possibile memorizzare più informazioni

BYTE (ASCII) = 8 bit in fila

•  La base 2 è la più piccola per un sistema di numerazione

Cifre: 0 1 - bit (binary digit)

Esempi:

(101101)2 = 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10

(0,0101)2 = 0⋅2-1 + 1⋅2-2 + 0⋅2-3 + 1⋅2-4 = 0 + 0,25 + 0 + 0,0625 = (0,3125)10

(11,101)2 = 1⋅21 + 1⋅20 + 1⋅2-1 + 0⋅2-2 + 1⋅2-3 = 2 + 1 + 0,5 + 0 + 0,125 = (3,625)10

Forma polinomia

Il sistema binario (B=2)

La rappresentazione dei dati e l’aritmetica degli elaboratori

=131.200

I numeri nell’antico Egitto

Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr 32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ̀112 70 p 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q 34 22 ” 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v 39 27 ’ 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B { 44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C | 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D } 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~ 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL

Nota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. ‘5’-‘0’ = 53- 48 = 5)

Caratteri stampabili

INIZI DEGLI ELABORATORI  1890 - Hollerith introdusse le schede perforate per  registrare i dati.

   1919 - Hollerith fondò la IBM.  1941 - fu realizzato in Germania Z3, prototipo di  calcolatore elettro-meccanico studiato a Harvard. Alla  fine della seconda guerra mondiale fu terminato negli  USA ENIAC, il primo calcolatore elettronico. Poco  dopo in Inghilterra fu completato EDSAC, il primo  elaboratore con programma memorizzato (realizzazione  di quanto proposto dal matematico Von Neumann).

   1951 - gli uffici del censimento americano installarono il  primo elaboratore commerciale, l'UNIVAC 1.

Tecnologia - le generazioni Prima generazione - dal 1946 alla fine degli anni 50; valvole termoioniche, memorie a tamburo. Si programma in linguaggio macchina. Seconda generazione - fino al 1965, introduzione di dispositivi a semiconduttore e memorie a nuclei magnetici. Compaiono COBOL e FORTRAN, ed i primi sistemi operativi. Terza generazione – fino alla fine degli anni 70, tecnologia dei circuiti integrati Viene introdotto il minicomputer, nasce l’automazione industriale. La quarta generazione, dalla fine degli anni 70, e' caratterizzata dall'integrazione a larga scala e dai microprocessori. Prende importanza il Personal computer. Emerge la progettazione RISC. Quinta generazione - nome proposto dai Giapponesi nel 1980 per una nuova generazione di calcolatori basati sull'utilizzo del parallelismo nell'hardware e della logica come linguaggio di programmazione.

CPU + HD, CD, Floppy

Unità di controllo ed elaborazione e memoria

Periferiche per l’output

Periferiche per l’input

Tastiera e mouse

Organizzazione fisica PC

Architettura di Von Neuman

   Unità  di Controllo          

 Unità Aritmetica

Memoria

B U S

Dati

Indirizzi Istruzioni

 Stato  Istruzioni

ConceE  Base  Conce*  base    •  •    Informa[ca  -­‐  INFORmazione  autoMATICA:  insieme  di  

quelle  discipline  e  tecniche  per  la  rappresentazione,  il  traOamento  e  la  trasmissione  automa[ca  delle  informazioni  

•  •    Computer  -­‐  Elaboratore  eleOronico:  è  una  macchina  concepita  per  l’elaborazione  automa[ca  dei  da[  

•  •    Hardware  -­‐  ciò  che  si  può  “toccare”  o  “vedere”  di  un  calcolatore  

•  •    Socware  -­‐  la  componente  “immateriale”,  l’insieme  dei  programmi  che  permeOano  l’uso  effe*vo  del  calcolatore  

Architettura di Von Neuman

   Unità  di Controllo          

 Unità Aritmetica

Memoria

B U S

Dati

Indirizzi Istruzioni

 Stato  Istruzioni