Laboratorio di Programmazione 2



Похожие документы
Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

PIANO DI LAVORO DEI DOCENTI

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

INFORMATICA 1 L. Mezzalira

Fasi di creazione di un programma

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Linguaggi di programmazione

Database. Si ringrazia Marco Bertini per le slides

FONDAMENTI di INFORMATICA L. Mezzalira

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Sistema operativo: Gestione della memoria

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Architettura hardware

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

LINGUAGGI DI PROGRAMMAZIONE

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Linguaggi e Paradigmi di Programmazione

Corso Programmazione

Corso di Informatica

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Architettura del calcolatore

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Informatica Generale

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

INFORMATICA APPLICATA AL TESSILE - I

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Strutturazione logica dei dati: i file

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

LICEO DELLE SCIENZE APPLICATE

Dispensa di Informatica I.1

PROGRAMMA DI LABORATORIO TRATTAMENTO TESTI

Introduzione. Informatica B. Daniele Loiacono

CORSI DI FORMAZIONE DEAL PRESSO LE ISTITUZIONI SCOLASTICHE

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Istituto Comprensivo Statale Villanova d Asti (AT) Scuola dell Infanzia, Primaria, Secondaria di 1

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche

GUIDA ALLA PREPARAZIONE DEGLI ESAMI

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Approccio stratificato

Architetture Applicative

Linguaggi di programmazione

Cos è ND Rifiuti 2008?

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

PROGETTAZIONE DISCIPLINARE DI DIPARTIMENTO

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Fondamenti di Informatica T-1

CORSI DI FORMAZIONE DEAL PRESSO LE ISTITUZIONI SCOLASTICHE

Programmi e Oggetti Software

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Syllabus C310 - Insegnamenti disciplinari

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Informazione analogica e digitale

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Il Sistema Operativo

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Architettura di un calcolatore

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Protezione. Protezione. Protezione. Obiettivi della protezione

Fondamenti di Informatica II Corso (HA-ZZ) Introduzione al corso

Introduzione alla Virtualizzazione

Format per la progettazione (di un unità formativa di xx ore per apprendere per competenze)

Introduzione alla Progettazione per Componenti

Java: Compilatore e Interprete

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Corso di Fondamenti di Informatica L-A

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Ing. Paolo Domenici PREFAZIONE

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

ISTITUTO TECNICO ECONOMICO AMBROGIO FUSINIERI VICENZA PROGRAMMAZIONE ATTIVITA' DIDATTICA A.S MATERIA: TECNOLOGIE DELLA COMUNICAZIONE

Il corso di italiano on-line: presentazione

Corso di Informatica

Base di dati e sistemi informativi

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Origini e caratteristiche dei calcolatori elettronici

Транскрипт:

Laboratorio di Programmazione 2 Docente: Luca Forlizzi Orario: lun. 15:00-17:00, mar. 17:00-19:00, gio. 17:00-19:00 Ricevimento: lun. 17:00-18:00, mar. 16:00-17:00 Contatti: ricevimento (Coppito 2, stanza A-1-11) forum del corso (http://informatica.univaq.it/forum/) 20/04/2005 LP2-04/05 - Intro 1

Obiettivi di apprendimento Conoscenze: nozioni di base della programmazione in linguaggio C. Capacità: essere in grado di implementare semplici algoritmi in linguaggio C; essere in grado di progettare e sviluppare programmi di complessità non banale Comportamenti attesi: interesse per l'attività di formalizzazione di problemi, dati e soluzioni in un linguaggio di programmazione, ed una costante attività di programmazione al calcolatore. 20/04/2005 LP2-04/05 - Intro 2

Prerequisiti del Corso Conoscenze: nozioni di base della programmazione imperativa in linguaggio Java e della architetture dei sistemi di elaborazione, lettura e comprensione in lingua inglese, rudimenti di sistemi operativi Capacità: essere in grado di risolvere problemi semplici, saper implementare i relativi algoritmi correttamente in linguaggio Java, essere in grado di utilizzare il calcolatore per eseguire semplici programmi. 20/04/2005 LP2-04/05 - Intro 3

Modalità di esame 1. Prova intermedia: scritta 2. Prova finale: scritta e/o al calcolatore 3. Prova finale: Sviluppo progetto (per chi ha superato l esame di Laboratorio di Programmazione 1) Orale (per gli altri) 20/04/2005 LP2-04/05 - Intro 4

LP2 e gli Altri Lab. Algoritmi Sist. Operativi LP2 Lab. Prog. 1 Fond. Prog. Architetture 1 Lab. Arch. 1 20/04/2005 LP2-04/05 - Intro 5

Libri di testo Testi di riferimento 1. H.M.Deitel, P.J.Deitel, C Corso Completo di Programmazione, Apogeo, seconda edizione, ISBN 88-503-2254-2 2. B.W.Kernighan, D.M.Ritchie, Il Linguaggio C, Pearson Education Italia, seconda edizione, ISBN 88-7192-200- X Testi consigliati per approfondimenti 3. A.Bellini, A.Guidi, Linguaggio C, McGraw-Hill, seconda edizione, ISBN 88-386-6103-0 4. A.Kelley, I.Pohl, C Didattica e Programmazione, Pearson Education Italia, quarta edizione, ISBN 88-7192-219-0 5. H.Schildt, C la Guida Completa, McGraw-Hill, terza edizione, ISBN 88-386-4152-8 20/04/2005 LP2-04/05 - Intro 6

Libri di testo 1. La presentazione è un'introduzione alla programmazione attraverso il C. Particolarmente indicato per il programmatore inesperto in quanto introduce alla programmazione strutturata. I punti di forza sono la trattazione della gestione dei files, dello standard C99, degli strumenti di sviluppo, delle tecniche di programmazione strutturata e di elementi di ingegneria del software. Ha molti esercizi, parecchi dei quali con soluzione. 2. La presentazione del linguaggio è eccellente e opta per un approccio sistematico. Molto completo e allo stesso tempo sintetico ed elegante, è più adatta per chi già conosca i fondamenti della programmazione in altri linguaggi. Punti di forza sono la descrizione completa della Libreria Standard, e dell'interazione dei programmi con il sistema operativo. 20/04/2005 LP2-04/05 - Intro 7

Libri di testo 3. La presentazione è un'introduzione alla programmazione attraverso il C. Particolarmente indicato per il programmatore inesperto in quanto introduce alla programmazione strutturata. Rispetto agli altri testi, è leggermente più portato ad approfondimenti teorici. In generale tratta con meno dettaglio aspetti tecnologici, ma presenta in dettaglio un'applicazione avanzata, ovvero la programmazione di un Web Server. Ha molti esercizi, parecchi dei quali con soluzione. 4. La presentazione è un compromesso tra introduzione alla programmazione e esposizione sistematica, rivolgendosi sia al principiante che all'esperto. Alcuni approfondimenti teorici. I punti di forza sono l'esauriente descrizione degli strumenti di sviluppo e dell'interazione dei programmi con il sistema operativo. Propone moltissimi esercizi ma senza soluzione. 20/04/2005 LP2-04/05 - Intro 8

Libri di testo 5. Il testo fa un esposizione sistematica e molto esauriente, che lo rende adatto al programmatore esperto e al professionista che vuole essere in grado di programmare applicazioni reali velocemente. I punti di forza sono la trattazione di elementi di ingegneria del software, della Libreria Standard, la descrizione dello standard C99 chiaramente differenziata da quella del C89, la trattazione della gestione dei files, della programmazione in ambiente Windows e la costruzione di un Interprete C. Aspetti negativi sono lo scarso approfondimento della programmazione in ambiente Unix e la mancanza di esercizi. 20/04/2005 LP2-04/05 - Intro 9

Libri di testo Consigli: Principiante: 1,3,4 Esperto:2,4,5 Interessi teorici: 3,4 Presentazione sintetica ( il succo del discorso ): 1,2,3 Presentazione completa: 2,4,5 Enciclopedia del C: 5 Aspetti applicativi: 1,4,5 20/04/2005 LP2-04/05 - Intro 10

Perché il C? (C vs. all) è piccolo,poche parole chiave (ma non meno potente di altri), facile da imparare è il linguaggio nativo di Unix, è lo standard in molti ambienti operativi è abbastanza portatile (libreria standard, supporto al codice dipendente) 20/04/2005 LP2-04/05 - Intro 11

Perché il C? (C vs. all) combina eleganza e potenza, produttività supporta la programmazione struttrata è efficiente in molte architetture è alla base di C++ e Java 20/04/2005 LP2-04/05 - Intro 12

Caratteristiche del linguaggio stile imperativo non creato da specifica formale ma in modo pragmatico, per risolvere problemi reali (programmazione di Unix) si è diffuso con Unix 20/04/2005 LP2-04/05 - Intro 13

Caratteristiche è semplice e piccolo, dunque può essere compilato con poche risorse di calcolo operazioni e tipi vicine a quelle dei calcolatori reali, dunque favorisce la creazione di programmi efficienti allo stesso tempo è sufficientemente astratto da garantire un buon grado di portabilità 20/04/2005 LP2-04/05 - Intro 14

Caratteristiche C e la sua libreria di supporto sono bene integrati in un ambiente operativo reale è stato realizzato cercando di coprire i bisogni essenziali per ogni programmatore senza aggiungere troppo (perdendo efficienza) nonostante la diffusione in molti ambienti operativi, è rimasto stabile e unificato (penso grazie alla diffusione di molte varianti Unix) 20/04/2005 LP2-04/05 - Intro 15

Caratteristiche del C sintassi complicata, non usuale di non facile apprendimento poco leggibile molto compatta, elegante vicina alle operazioni dei calcolatori reali favorisce produzione codice efficiente manca controllo sui limiti degli array manca gestione automatica della memoria non abbastanza modulare per grandi progetti 20/04/2005 LP2-04/05 - Intro 16

Stili di programmazione assembly imperativo ad oggetti funzionale logico 20/04/2005 LP2-04/05 - Intro 17

Funzionamento di un Elaboratore CPU e memoria La memoria è una sequenza finita di bit, suddivisi in gruppi di lunghezza finita (tipicamente 8, 16, 32, 64, 128) chiamati genericamente parole Ogni parola ha un indirizzo, costituito da un numero 20/04/2005 LP2-04/05 - Intro 18

Funzionamento di un Elaboratore Parole consecutive hanno indirizzi consecutivi La memoria può essere vista come una sequenza di parole aventi indirizzi compresi tra 0 e Max Tipicamente Max=2^K, K=16,32,64 20/04/2005 LP2-04/05 - Intro 19

Funzionamento di un Elaboratore L indirizzo di una parola funge da chiave di accesso per la CPU la CPU può accedere con un unica operazione ad una qualunque parola, immettendo l indirizzo della parola richiesta nel bus indirizzi che collega CPU e memoria 20/04/2005 LP2-04/05 - Intro 20

Funzionamento di un Elaboratore La CPU legge bit dalla memoria e li utilizza in vari modi: codifica di istruzioni numeri (vari formati, es. interi/floating point, con/senza segno, binari/decimali) caratteri campi di bit 20/04/2005 LP2-04/05 - Intro 21

Linguaggio Macchina/Assembly Ogni istruzione è un numero (stringa binaria) lunga un numero finito di bit e memorizzata nella RAM Le istruzioni vengono prelevate dalla memoria ed eseguite una alla volta Dopo l esecuzione di un istruzione la CPU automaticamente legge la prossima istruzione 20/04/2005 LP2-04/05 - Intro 22

Linguaggio Macchina/Assembly Normalmente dopo un istruzione viene eseguita quella che la segue immediatamente nella memoria Le istruzioni di salto inducono la CPU a proseguire l esecuzione con un istruzione memorizzata in una cella non consecutiva Rif. materiale corsi Arch. e Lab. Arch. 20/04/2005 LP2-04/05 - Intro 23

Linguaggi imperativi a medio/alto livello Astrazione della memoria (da organizzazione reale a organizzazione logica dei dati e delle istruzioni) variabili (e altre strutture dati) astraggono sequenze di bit che rappresentano dati istruzioni astraggono istruzioni strutture controllo astraggono istruzioni di salto 20/04/2005 LP2-04/05 - Intro 24

Ling. imperativi vs. assembly Variabile vs. locazioni di memoria Label invece che indirizzo Maschera struttura loc. memoria: comodo e portatile Struttura vs. insiemi di locazioni Una struttura identifica una correlazione tra parole Tipo di dato: assembly vs. ling. Imperativo In asm èmassociato all istruzione In ling. è associato alla variabile: controllo 20/04/2005 LP2-04/05 - Intro 25

Ling. imperativi vs. assembly Le operazioni di un linguaggio: sono più comode da usare (sintassi matematica) sono più simili alle operazioni matematiche (es. arrotondamento) non dipendono da caratteristiche dell hardware (es. overflow nella divisione) sono più potenti (es. elevamento a potenza) 20/04/2005 LP2-04/05 - Intro 26

Ling. imperativi vs. assembly le strutture di controllo e il concetto di funzione astraggono gli usi più frequenti/più logici delle istruzioni di salto, incoraggiando a limitarsi solo tali usi 20/04/2005 LP2-04/05 - Intro 27

Linguaggi ad oggetti Astraggono la differenza tra dati e istruzioni e il concetto di sequenza di istruzioni attraverso il concetto di oggetti in comunicazione reciproca 20/04/2005 LP2-04/05 - Intro 28

C vs. Java Java ha studiato la lezione del C (ed anche altre) adotta sintassi e strutture di controllo del C oggetti vs. strutture oggetti vs. flusso di esecuzione sequenziale macchina virtuale vs. portatilità del C macchina virtuale vs. efficienza 20/04/2005 LP2-04/05 - Intro 29