Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso
Presentazioni Dora Giammarresi Info: http://www.mat.uniroma2.it/~giammarr Orario ricevimento: giovedì 13:00 14:00 (su appuntamento) Potete anche scrivermi email a giammarr@mat.uniroma2.it, ma non dimenticate nome, cognome e corso cui vi riferite Il mio studio è al piano terra del dente 2.
Informazioni generali Numero crediti: 10 crediti (5 per ogni modulo = 40-50 ore lezioni e laboratorio) Durata dell intero corso: 2 semestri I modulo da ottobre a gennaio Pausa a febbraio (verifica intermedia) II modulo da marzo a inizio giugno
Orario lezioni e laboratorio QUANDO: Lunedì e Giovedì 9:15-11:00 (giovedì 14:00-16:00 a novembre) DOVE: aula 25 (laboratorio) (eventualmente portare un proprio computer) Ogni lezione si compone di (circa) un'ora di spiegazioni e un'ora (circa) di pratica sui computer.
Pagina web del corso http://www.mat.uniroma2.it/~giammarr/teaching /Java/index.html Troverete: orario lezioni, ricevimento, programma, avvisi generali, syllabus, diario delle lezioni, esercizi assegnati a lezione, avvisi vari Consultatela spesso!
Libro di testo W.Savitch Programmazione con Java Pearson Education
Libro di testo W.Savitch Programmazione di base e avanzata con Java Pearson Education Nota: Ha qualche capitolo in più rispetto al precedente sulla parte grafica.
Finalità del I modulo del corso Principi fondamentali della programmazione ad oggetti Soluzione di problemi con metodologie objectoriented Implementazione di semplici (ma non troppo! ) programmi Java
Finalità del II modulo del corso (docente dott. Zuliani) Tecniche avanzate di programmazione (classi astratte e interfacce, gestione delle eccezioni, gestione dei file) Librerie grafiche in Java
Esami (di già???) Quando? PREAPPELLO I modulo (febbraio) ESONERO II modulo (maggio) Sessione estiva (giugno/luglio) Sessione autunnale (settembre) Sessione invernale (febbraio)
Esami (di già???) Prova unica per i due moduli Prova pratica (sui computer del laboratorio): esercizi di programmazione in Java Orale: NO computer personale NO accesso a internet SI consultazione libro di testo/appunti SI consultazione si file personali su pennetta USB discussione dei progetti domande sul programma svolto
Esami (di già???) Cosa fare per passare l esame? (studiare) programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare, programmare,programmare,programmare,
Il corso di laurea in STM Esami di settori disciplinari diversi: Matematica Fisica Informatica Fotografia Cinema Linguistica Musica
Cos è veramente l informatica Evitare compiti noiosi e ripetitivi
Minor fatica??? L informatica è una Scienza, in inglese Computer Science. I pionieri degli anni 30 erano matematici e fisici (Turing, Goedel,.) L informatica non consiste nello scrivere programmi per un computer! I computer sono uno strumento: l informatico può lavorare anche solo con carta e penna! Ci vuole rigore, metodologia, tecnica, matematica etc. Bisogna studiare e si sa: lo studio è fatica! (anche giocare a calcio, però.)
Come studiare Prerequisiti: Solo tanta voglia di conoscere e imparare! (o quasi ). Allo studente non è richiesta nessuna particolare conoscenza informatica. Una buona conoscenza da utente di personal computer può aiutare nell'inquadramento di alcune parti del corso. Lo svolgimento delle esercitazioni e la frequenza del corso sono fortemente consigliate. Gli studenti devono essere preparati a trascorrere una congrua quantità di tempo nello studio al di fuori delle lezioni. 1CFU = 25 ore di lavoro = 8 ore di lezione frontale + 17ore di studio individuale. Seguire e studiare tutti i corsi Studiare in maniera attiva (???)
Studiare attivamente Lezioni: non accettate niente per buono (nemmeno/soprattutto se lo dico io ;); domande «stupide» non esistono Slides, appunti, ma LIBRI! Esercizi (da soli, a gruppi, ) Ricevimento Organizzare gli esami dei vari corsi (e prenotarsi in tempo)
Non siamo più a scuola Libertà nella organizzazione e nel metodo di studio Attenzione: arma a doppio taglio! Maggiore responsabilità da parte vostra Studiare per voi, per la vostra preparazione, per il vostro avvenire Cominciare a studiare: subito!
vediamo qualche esempio di cosa dovreste essere in grado di programmare alla fine del corso
Una breve introduzione
Computer Eseguono calcoli e prendono decisioni basate sulla logica milioni o miliardi di volte più velocemente degli uomini. Programmi Insiemi di istruzioni tramite le quali i computer elaborano i dati Hardware Struttura fisica del computer Software Computer Programmi che vengono eseguiti sui computer
Componenti di un computer (Unità logiche) Unità di Input Mouse, tastiera Unità di Output Stampante, monitor, speakers audio Unità di Memoria Conserva input and elabora le informazioni Unità Aritmetico-Logica (ALU) Esegue i calcoli Unità centrale di calcolo (Central processing unit ) (CPU) Organizza e controlla tutte le operazioni Unità di Memoria secondaria Hard disks, floppy drives 26
Computer e programmazione Un computer è una macchina per eseguire programmi qualcuno ha già fatto per noi alcuni programmi che possiamo eseguire così come facciamo con ogni applicazione Un computer è anche una macchina programmabile, ossia una macchina le cui potenzialità possono essere aumentate da noi con la scrittura di nuovi programmi per far questo dobbiamo far uso di opportuni linguaggi di programmazione che ci permettono di esprimere nel modo più naturale le nostre esigenze di calcolo
Esecuzione di un programma
Computer e programmazione Ogni computer ha un proprio linguaggio macchina ogni istruzione coincide con un istruzione di macchina e pertanto è un linguaggio binario o anche linguaggio di basso livello
Computer e programmazione Esistono linguaggi di programmazione che consentono di scrivere i programmi in termini di istruzioni vicine alla logica delle tecniche di risoluzione di problemi le istruzioni sono espresse mediante simboli e pertanto tali linguaggi sono anche detti linguaggi simbolici o linguaggi ad alto livello sono linguaggi simbolici anche i linguaggi assemblativi, in cui ad ogni istruzione del linguaggio corrispondono una o più(poche) istruzioni di macchina
Esecuzione dei programmi Il Computer, in particolare il suo hardware, esegue solo programmi in linguaggio macchina Se un programma è in linguaggio macchina può essere quindi direttamente eseguibile tutte le applicazioni sono immediatamente eseguibili proprio per questo motivo
Esecuzione dei programmi Se un programma è in linguaggio simbolico non può essere eseguito immediatamente c è bisogno di un processo di traduzione che viene realizzato tramite opportune applicazioni già disponibili, e che sono quindi evidentemente in linguaggio macchina
Compilazione e interpretazione Esistono due approcci alla traduzione ed esecuzione dei programmi Compilazione un programma scritto in un linguaggio di programmazione di alto livello viene trasformato in un programma in linguaggio macchina e poi eseguito interpretazione ciascuna istruzione del programma scritto in un linguaggio di programmazione di alto livello viene trasformata in istruzioni del linguaggio macchina ed eseguita
Compilazione e interpretazione I traduttori del primo tipo sono chiamati effettivamente compilatori, quelli del secondo tipo sono chiamati interpreti Una analogia con la traduzione tra linguaggi diversi la compilazione è analoga alla traduzione di un libro l interpretazione è analoga alla traduzione simultanea
Compilazione Il computer con un programma compilatore, ricevendo un programma sorgente in linguaggio simbolico esegue la traduzione producendo in uscita il corrispondente programma eseguibile in linguaggio macchina Programma sorgente Compilatore Programma eseguibile
Interpretazione Il calcolatore con un programma interprete, ricevendo un programma sorgente in linguaggio simbolico e i relativi dati in ingresso lo interpreta e lo esegue, istruzione dopo istruzione, producendo direttamente i dati in uscita Dati in ingresso (input) Programma sorgente Interprete Dati in uscita (output)
Confronto tra compilazione e interpretazione I linguaggi compilati prevedono la distribuzione di un file eseguibile (in linguaggio macchina) specifico per ogni piattaforma il file sorgente, che consentirebbe di modificare il programma, rimane di esclusiva pertinenza del programmatore
Confronto tra compilazione e interpretazione I linguaggi interpretati prevedono la distribuzione diretta del file sorgente (che è il medesimo per tutte le piattaforme) su ogni piattaforma deve essere disponibile il programma interprete
Il linguaggio Java Java adotta una strategia mista il file sorgente contenente un programma Java viene prima compilato, generando un file in ByteCode il file in ByteCode è un file in linguaggio macchina per una macchina non esistente, detta macchina virtuale o Java Virtual Machine
Il linguaggio Java per essere eseguito il ByteCode viene interpretato su ogni piattaforma esistono programmi interpreti, che realizzano una Java VirtualMachine, per ogni piattaforma in questo modo il file sorgente non viene distribuito, mentre il file ByteCode distribuito è il medesimo per tutte le piattaforme
Compilazione di programmi Java Il calcolatore con un programma compilatore Java, ricevendo un programma sorgente in linguaggio lo traduce producendo in uscita il corrispondente programma in un linguaggio intermedio ByteCode Programma sorgente in Java Compilatore Java Programma ByteCode
Interpretazione di programmi in ByteCode Il calcolatore con un programma interprete Java VirtualMachine(JVM), ricevendo un programma in ByteCode e i relativi dati in ingresso lo interpreta e lo esegue, istruzione dopo istruzione, producendo direttamente i dati in uscita Dati in ingresso (input) Programma ByteCode Java Virtual Machine Dati in uscita (output)
Compilare ed eseguire un programma