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

Programmazione in Java e gestione della grafica (I modulo)giammarr/Teaching/Java/Lezioni/Java_01.pdf · Informazioni generali • Numero crediti: 10 crediti (5 per ogni modulo = 40

Embed Size (px)

Citation preview

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 [email protected] , 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 object-

oriented

• 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

NO computer personale

NO accesso a internet

SI consultazione libro di testo/appunti

SI consultazione si file personali su pennetta USB

• Orale:– 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,

• Esami di settori disciplinari diversi:

– Matematica

– Fisica

– Informatica

– Fotografia

– Cinema

– Linguistica

– Musica

Il corso di laurea in STM

Cos’è veramente l’informaticaEvitare 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

– Programmi che vengono eseguiti sui computer

Computer

26

• 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

Componenti di un computer

(Unità logiche)

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

Programma

eseguibileCompilatore

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)

Dati in uscita

(output)Interprete

Programma

sorgente

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

ByteCode

Compilatore

Java

Programma

sorgente in Java

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)

Dati in uscita

(output)

Java Virtual

MachineProgramma

ByteCode

Compilare ed eseguire un programma