Capitolo 1 (Deitel) Introduzione ai Computer

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Il Software.
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
STRUTTURA DEL PERSONAL COMPUTER
I linguaggi di programmazione
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Il Sistema Operativo.
Introduzione allo studio dell’informatica
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2000/2001.
ECDL MODULO 1.1 Conoscere i sistemi di elaborazione
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Architettura Three Tier
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
IDUL 2010 RETI E PROTOCOLLI. INTERNET.. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto logico della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
IDUL 2012 RETI E PROTOCOLLI. INTERNET.. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto logico della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
IDUL 2009 RETI E PROTOCOLLI. INTERNET. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto logico della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
Linguaggi di programmazione
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Primi Elementi di Programmazione in C++
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2001/2002.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
I SISTEMI OPERATIVI.
Informatica per medici
Corso di abilità informatiche
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
...dal bit al linguaggio R. In principio era il bit… …Per intenderci 0 e 1, il linguaggio macchina. Tra gli anni '40 e gli anni '50, la programmazione.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Laboratorio di informatica 1
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
PRESENTAZIONE di RICCARDO
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il Sistema Operativo (1)
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Programma di Informatica Classi Prime
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
STRUTTURA DI UN COMPUTER
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie dell’Informazione e della Comunicazione
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
IDUL 2013 RETI E PROTOCOLLI. INTERNET.. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto ‘logico’ della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
Concetti Fondamentali sulla Programmazione
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Elementi di Informatica SciGeo a.a. 2002/2003. Docente Giorgio Delzanno Ufficio 104 – I piano Dipartimento di Informatica e Sc. Inf. Tel
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Tecnologie dell'informazione e della comunicazione - Stacey S. Sawyer, Brian K. Williams Copyright © The McGraw-Hill Companies srl Introduzione.
Concetti di base Computer, HW e SW
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Capitolo 1 (Deitel) Introduzione ai Computer Indice degli argomenti 1.1 - Introduzione 1.2 - Che cosa è un Computer? 1.3 - Organizzazione di un calcolatore 1.4 - Evoluzione dei sistemi operativi 1.5 - Personal computer, calcolo distribuito ed elaborazione client/server 1.6 - Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello 1.7 - Breve storia del C 1.8 - La libreria standard del C 1.9 - La dinamica chiave del software: tecnologia dei linguaggi ad oggetti 1.10 - Programmare in C++ 1.11 - Programmare in Java 1.12 - Altri linguaggi di alto livello 1.13 - Concetti importanti di programmazioni 1.14 - Fondamenti di un tipico ambiente di sviluppo per programmi C 1.15 - La dinamica del hardware 1.16 - Breve storia di Internet 1.17 - Breve storia del World Wide Web 1.18 - Note generali sul C e su questo libro

1.1 - Introduzione In questo corso studieremo il linguaggio C Analizzeremo la struttura di un programma, con riferimento al C, e in particolare le principale tecniche di programmazione Nel Capitolo 15 del Deitel viene presentata un’introduzione al C++, un’evoluzione del C Questo corso è adatto per: Le persone tecnicamente orientate alla programmazione ma con poca o nessuna esperienza nella programmazione I programmatori con esperienza che vogliono una profonda e rigorosa trattazione “teorica” del linguaggio C

1.2 - Che cosa è un Computer? Computer Hardware Software E’ un dispositivo capace di eseguire calcoli e prendere decisioni logiche Elabora dati sotto il controllo di una serie di istruzioni, che nel loro insieme sono chiamate programmi Hardware Comprende le varie unità/dispositivi che compongono il calcolatore Tastiera, schermo, mouse, dischi, memoria, CD-ROM e unità di elaborazione (CPU) sono le principali componenti hardware Software Comprende i programmi che sono eseguiti dal calcolatore fanno funzionare il computer stesso

1.3 - Organizzazione di un calcolatore Ogni computer è composto da 6 unità logiche: Unità di Input Riceve informazioni/dati dall’unità di input (tastiera, mouse) Unità di Output Dà informazioni (a schermo, stampante, controllori di altre unità) Unità di Memoria Memorizza temporaneamente le informazioni in input e i programmi attivi Accesso rapido, bassa capacità, costosa Unità Aritmetico-Logica (ALU) Esegue calcoli aritmetici e prende decisioni logiche Unità di Processo centrale (CPU) Supervisiona e coordina il lavoro altre unità del computer Unità di Memoria secondaria Memorizza in modo permanente (lungo termine) dati e programmi inattivi Accesso meno rapido, alta capacità, economica

1.4 - Evoluzione dei sistemi operativi (1/2) Sistema operativo Costituisce l’interfaccia tra la macchina e l’utente Serve a gestire le risorse del sistema di elaborazione ed a coordinare gli eventi che discendono dal suo uso I più noti attualmente sono Windows, Linux, Unix, OS2 Primi calcolatori (prima generazione, anni ’40) Programmazione fatta solo in linguaggio macchina, con schede forate Nessun linguaggio di programmazione né sistema operativo Sistemi Batch (seconda generazione, anni ’50) Il sistema legge in sequenza i vari job (compiti) e li esegue uno alla volta Un job contiene una serie di calcoli e può essere costituito da un singolo programma o da un insieme di programmi Sistemi programmati coi primi linguaggi (Fortran e Assembler) e con pseudo-sistemi operativi per gestire il caricamento in serie dei vari job

1.4 - Evoluzione dei sistemi operativi (2/2) Multi-programmazione (terza generazione, anni ‘60) Per ridurre i tempi in cui la CPU resta inattiva, un job può occupare il processore mentre un altro è in attesa di finire un’operazione di I/O Per fare ciò, la memoria principale viene divisa in partizioni, una dedicata al sistema operativo e le rimanenti assegnate a vari job Vari job condividono le risorse del computer (multi-programmazione) Aumenta il throughput, la quantità di processi che i computer svolgono Nascono i primi sistemi operativi per gestire la multi-programmazione Time-sharing (condivisione del tempo) Variante della multi-programmazione che permette a più utenti di avere un terminale ciascuno Migliora l’interattività e riduce il tempo di risposta del calcolatore La CPU è assegnata a turno ai vari utenti e svolge ad ogni turno solo una piccola parte del loro lavoro di ognuno, poi passa un altro l’utente I sistemi operativi che gestiscono il time-sharing pongono le premesse per la creazione del primo sistema operativo efficiente (Unix)

1.5 - Personal computer, calcolo distribuito ed elaborazione client/server Calcolatori abbastanza economici per essere acquistati da privati I/O, calcoli e ogni altra operazione è eseguita in locale sfruttando le sole risorse del proprio calcolatore Calcolo distribuito Fa uso di più computer interconnessi in rete per svolgere calcoli complessi L’elaborazione globale è distribuita tra le CPU dei vari calcolatori Elaborazione client/server Condivisione di informazioni/risorse attraverso una rete di calcolatori La condivisione avviene tra file server e client (personal computer) I server mettono a disposizione le informazioni e le risorse per di calcolo I client visualizzano le informazioni e/o inviano dati su cui effettuare calcoli, ricevendo in risposta dal server i risultati desiderati Possibilità di gestire contemporaneamente un numero elevato di utenti

Esistono 3 tipi di linguaggi per programmare 1.6 - Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello (1/2) Esistono 3 tipi di linguaggi per programmare Linguaggio macchina Le istruzioni sono date da sequenze di numeri che danno alle macchine specifiche istruzioni in modo diretto (in binario) Esempio di istruzione: +1300042774 +1400593419 +1200274027 Linguaggi Assembly Le istruzioni sono abbreviazioni di parole inglesi che rappresentano operazioni elementari per il computer (poi tradotte da assemblatori) Forte dipendenza dalla CPU su cui sono eseguite, per cui ce ne sono tanti LOAD BASEPAY ADD OVERPAY STORE GROSSPAY

1.6 - Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello (2/2) Le istruzioni sono simili all’inglese odierno e fanno anche uso di notazioni matematiche (poi tradotte da compilatori) Indipendenti dalla piattaforma su cui sono eseguite, ma ne esistono comunque tanti Esempio di tali linguaggi sono C, Java, Basic, ecc.. Esempio di istruzione: grossPay = basePay + overTimePay

1.7 – Breve storia del C Note storiche sul C Standardizzazione del C Fu sviluppato da Ritchie come evoluzione di due precedenti linguaggi di programmazione (BCPL e B) E’ stato usato per sviluppare il sistema operativo UNIX Oggi la maggior parte dei sistemi operativi sono scritti con C o C++ E’ un linguaggio indipendente dalla piattaforma hardware (portabile) Dalla fine degli anni ’70, il C è evoluto nel "C Tradizionale“, il nostro Standardizzazione del C Inizialmente esistevano molte piccole varianti incompatibili del C Perciò venne formato un comitato per creare una sola definizione del C che fosse “chiara, indipendente dalla macchina" Lo standard è stato creato nel 1989 e poi aggiornato nel 1999

1.8 - La libreria standard del C Un programma in C consiste di vari pezzi/moduli, che sono chiamati “funzioni” Un programmatore può creare tutte le funzioni che intende usare Vantaggio: il programmatore sa esattamente come lavora il programma Svantaggio: si perde tempo prezioso Perciò i programmatori useranno spesso la libreria delle funzioni del C Usano le funzioni generiche di base contenute nella libreria come blocchi fondamentali per creare proprie funzioni più complesse e specifiche E’ bene evitare di re-inventare nuove funzioni, se non è necessario Se una funzione esiste già e funziona, generalmente è sempre meglio usare quella piuttosto che scriverne una propria nuova versione da zero Le funzioni di libreria sono scritte accuratamente, sono efficienti, e portabili

1.9 - La dinamica chiave del software: tecnologia dei linguaggi ad oggetti Sono componenti software riusabili che modellano le entità presenti nel mondo reale Sono unità software aventi un significato proprio: Possono rappresentare dati, tempi, oggetti, conti bancari, fatture, audio, video, file, documenti, ecc.. Qualsiasi cosa può essere rappresentata come un oggetto Sono componenti altamente riutilizzabili I programmi generati sono più comprensibili, meglio organizzati e più facile da mantenere che i programma scritti in modo procedurale Usare gli oggetti favorisce la modularità nella struttura dei programmi Il C però non è un linguaggio a oggetti, ma procedurale C++ e Java invece sono linguaggi ad oggetti

1.10 - Programmare in C++ C++ Imparare il C++ Evoluzione del C sviluppata da Bjarne Stroustrup presso i laboratori Bell E’ un C “più elegante” ed è orientato agli oggetti La progettazione orientata agli oggetti è molto potente E’ noto che accresce la produttività da 10 a 100 volte Linguaggio dominante sia in azienda che nelle università Imparare il C++ Dato che C++ comprende il C, molti credono sia prima meglio diventare esperti del C e poi passare al C++, piuttosto che imparare C++ da zero L’introduzione al C++ inizia dal Capitolo 15 del Deitel

1.11 – Programmare in Java Java è usato per: Programmazione in Java Creare pagine Web con contenuti dinamici ed interattivi Sviluppare applicazioni su larga scala per le imprese Accrescere la funzionalità dei Web server Fornire applicazioni per dispositivi portatili di uso comune (come i cellulari, i PDA e gli altri dispositivi mobile) Programmazione in Java Java è stato sviluppato della Sun I corsi di base che insegnano il Java in genere presentano le nozioni essenziali della grafica, del disegno, dell’animazione, dell’audio, del video, dei database, delle reti, dell’elaborazione con multi-threading e collaborativa

1.12 - Altri linguaggi di alto livello Oltre ai due citati, famosissimi, pochi altri linguaggi di alto livello hanno ottenuto una largo consenso FORTRAN Si usa nelle applicazioni scientifiche ed ingegneristiche (calcoli fisici) COBOL Usato per manipolare grandi quantità di dati (sistemi gestionali) Pascal Utilizzato per scopi accademici (spesso insegnato alle superiori)

1.13 – Concetti importanti di programmazione Programmazione strutturata Approccio “disciplinato” alla scrittura dei programmi Programmi chiari, facili da testare e rimuovere, e facili da modificare Multi-tasking Termine con cui si specifica che molteplici attività sono eseguite in parallelo

1.14 – Fondamenti di un tipico ambiente di sviluppo per programmi C Il codice è scritto con un editor (testuale o per il C) e memorizzato su disco Loader Memoria principale Compilatore Editor Preprocessore Linker   CPU . Disk Fasi di un Programma C : Editare Preprocessare Compilare Unire (linkare) Caricare Eseguire Il preprocessore (sw) elabora le direttive nel codice sorgente Il compilatore crea il codice oggetto binario e lo salva su disco Il Linker collega il codice alle librerie, crea un file .out e lo memorizza su disco (l’eseguibile finale) Il Loader carica il programma nella memoria principale La CPU prende ogni istruzione e la esegue, spesso memorizzando nuovi valori dei dati durante l’esecuzione del programma

1.15 - Dinamica del hardware Ogni anno o due approssimativamente raddoppiano: La quantità di memoria disponibile in cui eseguire i programmi La quantità di memoria secondaria (come hard disk) per mantenere salvati programmi e dati a lungo termine La velocità del processore con cui il computer esegue i suoi programmi

1.16 - Breve storia di Internet Internet permette Veloci e semplici comunicazioni via e-mail L’interconnessione internazionale di computer via rete Molte altre applicazioni innovative Packet switching I dati digitali sono trasferiti in rete per mezzo di piccoli pachetti Permette a più utenti di mandare e ricevere dati simultaneamente Controllo non centralizzato Se una parte di Internet si danneggia, le altre parti possono ancora operare Larghezza di banda Lo velocità trasmissione delle informazioni dipende dalla capacità delle linee di comunicazione

1.17 - Breve storia del World Wide Web Il World Wide Web (WWW) Contiene e permette di visualizzare documenti multimediali più o meno su qualsiasi argomento Rende le informazioni accessibili a livello mondiale istantaneamente e in modo conveniente Permette anche a privati e piccole aziende di interfacciarsi al pubblico del mondo intero Ha cambiato il modo di fare affari e commercio

1.18 - Note generali sul C e su questo libro Chiarezza nello scrivere i programmi I programmi aventi codice “confuso e disordinato” sono difficili da leggere, capire e modificare Il C è un linguaggio portabile I programmi possono funzionare su molti differenti computer Tuttavia la totale portabilità è una obiettivo illusorio Verrà seguito un percorso accurato attraverso il C Tuttavia certi dettagli e altre sottigliezze non verranno descritte Se fossero necessari ulteriori dettagli tecnici Leggere il documento “standard C” Leggere il libro su C scritto da Kernigan & Ritchie