+ All Categories
Home > Documents > Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott....

Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott....

Date post: 01-May-2015
Category:
Upload: concetto-bruno
View: 213 times
Download: 0 times
Share this document with a friend
48
Minicorso tematico: “Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare” Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria [email protected]
Transcript
Page 1: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Minicorso tematico:

“Elementi di Programmazione: con Java dal Computer,

al Web, al Cellulare”

Dott. Francesco Ricca

Dipartimento Di MatematicaUniversità della Calabria

[email protected]

Page 2: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Presentiamoci

Mi chiamo Francesco Ricca

Ricercatore presso il Dip. Di Matematica

Mi occupo di: Intelligenza Artificiale Programmazione Logica

Insegno: Introduzione all’Informatica Ingegneria del SoftwareProgrammazione ad Oggetti

Page 3: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Programma del Corso

Introduzione all’Informatica

Problemi, Algoritmi e Programmi

Fondamenti di Programmazione… con il linguaggio Java

Siti dinamici con Java

J2ME: Java per i cellulari

Page 4: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Materiale Didattico

Lucidi delle Lezioni

Guide rapide http://www.html.it http://java.sun.com

Libri L. Nigro, “Introduzione alla programmazione orientata

agli oggetti in Java”, Edizioni Luim L.Cabibbo, “Fondamenti di Informatica: Oggetti e

Java”, McGraw-Hill C.S. Horstmann – G. Cornell, “Core Java 2”, Prentice

Hall

Page 5: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Orario ed Esame

Esame Finale giorno 9 Maggio:FacoltativoChi lo supera consegue un attestato per riscattare

1CFUL’attestato di frequenza valido per l’esame di stato

non è connesso all’esame

Page 6: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Introduzione All’Informatica

Nozioni di base

Page 7: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Cosa è l’Informatica?

Scienza degli elaboratori elettronici Computer Science

Scienza dell’informazionerappresentazionememorizzazioneelaborazione e trasmissione dell’informazione

Parente stretta della Matematica2 anime: teorica, tecnico-pratica

Page 8: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Il Computer

Elaboratore elettronico (o “calcolatore”)

E’ uno strumento per la rappresentazione, la memorizzazione e l’elaborazione delle informazioni.

E’ programmabile: può essere predisposto per eseguire un particolare insieme di azioni, allo scopo di risolvere un problema.

Page 9: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Cosa possiamo fare con un calcolatore?

Page 10: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Cosa possiamo fare con un calcolatore?

Page 11: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Utilizzo di un elaboratore

Come utente:Uso software applicativo esistente per

creare documenti e interfacce grafiche, effettuare calcoli, navigare in rete

Come sviluppatore:Creo nuovi programmi sullo strato del

software esistenteNuovi programmi applicativiNuovi programmi di sistema (cioè che fanno

funzionare il calcolatore)

Page 12: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Cosa possiamo fare con un calcolatore?

Word Processing. Memorizzare, elaborare testi.

Basi di Dati. Memorizzare grossi archivi di dati, recupero veloce, produrre informazioni globali.

Accesso Remoto. Trasmissione e recupero di informazioni.

Calcolo. Risolvere problemi matematici.

Simulazioni. Rappresentare e elaborare informazioni che simulano l’ambiente reale.

Page 13: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Parole chiave:

Hardware

Software

Page 14: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Hardware

Contenitore conCPU, RAMMemoria Centrale

Fisso Unità per Dischi - CD/DVD

Monitor

Tastiera

Ecc.

Page 15: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Hardware

Unità di Elaborazione (Processore o CPU):Svolge le elaborazioniCoordina il trasferimento dei datiCioè ‘esegue’ i programmi

Memoria Centrale Memorizza dati e programmi per l’elaborazioneVolatileAccesso rapidoCapacità limitata

Page 16: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Hardware

Memoria Secondaria (es. Harddisk,floppy)Grande capacitàPersistenteAccesso piu lento della RAM

Unità Periferiche Interfaccia verso l’esternoTerminali (tastiera, video)Stampanti

Page 17: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Software

Software di base: Dedicato alla gestione dell’elaboratore Esempio: Sistema Operativo (Windows, Linux,

etc)

Software applicativo:Dedicato alla realizzazione di specifiche

applicativeEsempio: programmi per scrittura, gestione

aziendale, navigazione su internet, ecc

Page 18: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Problemi, Algoritmi e Programmi

I concetti fondamentali dell’Informatica

Page 19: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Il problema

Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia

Problema Strategia Obiettivo

Page 20: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esempi di problemi

Trovare il numero di telefono di una persona

Individuare il numero più piccolo di una sequenza

Stabilire se una parola precede alfabeticamente un’altra

Calcolare il costo totale di un certo numero di prodotti

Trovare perimetro e area di una figura geometria

Page 21: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Risolvere un problema

Come si costruisce la soluzione a un problema?

Qual è il giusto “punto di partenza” per pensare la soluzione a un problema?

Quali metodologie e tecniche usare?

Page 22: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Risolvere un problema

Problema

Interpretazione

Modello Procedimento risolutivo

Esecuzione

Verifica dei risultati

Page 23: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Algoritmo

Un algoritmo è una sequenza finita di operazioni elementari che porta alla risoluzione in un tempo finito una classe di problemi.

In generale un algoritmo può essere visto come una funzione da un dominio d’ingresso ad uno d’uscita

AlgoritmoDati(INPUT)

X

Risultati(OUTPUT)

f(X)

Page 24: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Algoritmi: proprietà fondamentali

Eseguibilità: ogni azione deve essere eseguibile da parte dell’esecutore dell’algoritmo in un tempo finito

Non-ambiguità: ogni azione deve essere univocamente interpretabile dall'esecutore

Finitezza: il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, deve essere finito.

Page 25: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Algoritmi equivalenti

forniscono lo stesso risultato

ma possono avere diversa efficienza

e possono essere profondamente diversi !

Esempio: moltiplicare tra loro due numeri

Algoritmo 1: Somme successive:12x12 = 12+12+…+12=144

Algoritmo 212x12=24

12= 144

Page 26: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esecuzione

Page 27: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Algoritmi e programmi

Algoritmo Sequenza finita di passi che risolve in tempo finito un

problema.

Codifica Fase di scrittura di un algoritmo in un qualche

linguaggio di programmazione, che specificano le azioni da compiere.

Programma Testo scritto in accordo con la sintassi e la semantica di

un linguaggio di programmazione.PROBLEMA ALGORITMO PROGRAMMA

Page 28: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Linguaggi di Programmazione

Linguaggi per esprimere in maniera rigorosa un algoritmo

Linguaggio macchina (seq. Istruzioni)

Linguaggi ad alto livello (vicini al ling. naturale)Pascal, C e C++, Basic, Cobol

Java

Page 29: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esempio: potenza

Problema: Calcolare an

Algoritmo:

Fino a che N>0

Calcola Ris*a e memorizzalo in Ris

Decrementa N

Nota che:Al termine Ris=an

Page 30: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esempio …in Java

int potenza(int a, int n)

{ int ris = 1;

while ( n > 0 ) {

ris = ris * a; n = n-1;

}

return ris;

}

Page 31: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Riassumendo…

Un algoritmo è il processo risolutivo di un problema

Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati dette istruzioni

Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione

Un programma è la formulazione testuale di un algoritmo in un linguaggio di programmazione

Page 32: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esistono problemi che un elaboratore non può risolvere?

Sì. Ci sono problemi non calcolabili da nessun modello di calcolo reale o astratto

Esempio: data una funzione f : N N, stabilire se f(x) è costante per ogni valore di x

Page 33: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Fondamenti di Programmazione

…con Java

Page 34: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Linguaggi di Programmazione

Linguaggi per esprimere in maniera rigorosa un algoritmo

La “lingua del Computer”

Diversi tipi di linguaggi:ImperativiDichiarativiAd Oggetti

Page 35: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Linguaggi Imperativi

“Comandano” il computer indicando le azioni da compiere

Si specificano le azioni da fare per ottenere il risultato

Algoritmo = “insieme di operazioni da compiere sui dati”

Algoritmo = DATI + Controllo

Page 36: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Linguaggi Dichiarativi

“Chiedono” al computer di trovare una soluzione

Si specifica quello che si vuole e non come deve essere calcolato

Linguaggi Funzionali: Lisp

Linguaggi Logici: Prolog

Questo è stato espresso da Robert Kowalski con la formula:

Algoritmo = Logica + Controllo

Page 37: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Linguaggi ad Oggetti

Sono basati sul concetto di oggetto software

Un oggetto software rappresenta un oggetto del mondo reale

un numero, un archivio, un testo, una matrice, una persona...

I dati sono rappresentati come oggetti

Le azioni da compiere come operazioni da effettuare sugli oggetti.

Di solito sono realizzati come estensione dei linguaggi imperativi.

Un programma modella un problema reale come una collezione di oggetti software che interagiscono.

Page 38: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Ma è davvero questa la lingua del computer?

Questi sono linguaggi ad alto livello Più simili al nostro modo di esprimerci

Il computer “conosce” solo i bit e le operazioni elementari su questi (linguaggio a basso livello)

C’è bisogno di un traduttore!!!

Il Compilatore traduce un programma scritto in un linguaggio di programmazione ad alto livello in bit e operazioni elementari

Si trovano negli ambienti di sviluppo: e.s. JDK e/o Eclipse

Page 39: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Dal programma all’esecuzione…

Scrivo il programma

In JAVA

Il compilator

e lo traduce

Il Computer lo ESEGUE

Se è scritto male, saranno segnalati gli errori(attenti, è molto pignolo!)

Page 40: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Concetti di base della POO

POO = Programmazione Orientata agli Oggetti

Page 41: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Il concetto di Classe

Una classe è un insieme di oggetti che hanno le stesse caratteristiche e lo stesso comportamento

Definire una classe =Elencarne le caratteristiche (~ definire i dati)Specificarne il comportamento (~ definire le

operazioni)

Una classe definisce il “progetto” di un oggetto software

Quando un oggetto software appartiene ad una classe ha tutte le caratteristiche ed il comportamento specificate per questa.

Page 42: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Esempio: la classe dei libri

Ogni libro ha:un titoloun numero di pagineun elenco numerato di pagine…

Su ogni libro possiamo operare Leggiamo il titolo Vediamo quante pagine ha Cerchiamo una pagina Stampiamo una pagina o tutto il libro …

Comportamento: Operazioni o

Metodi

Caratteristiche:Dati

Un’altra classe!!!

Page 43: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

La visibilità

Un po di “privacy”Non tutti possono vedere tutte le caratteristiche di

un oggetto: Information Hiding Il mago Silvan non rivela a tutti il trucco con cui ha

fatto comparire un coniglio o sparire l’assistenteMostrereste dove si trova la cassaforte a casa

vostra?Dareste a tutti il PIN del vostro cellulare?

Tre parole chiave per proteggere o meno le caratteristiche e i metodi di una classe:public, private, protected

Page 44: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

La classe libro in Java

class Libro {

// Caratteristiche

private Titolo nomeLibro;

private Numero numeroDiPagine;

private Lista<Pagine> pagine;

// Metodi

public Titolo dammiTitolo();

public Numero dammiNumeroDiPagine();

}

class Libro {

// Caratteristiche

private Titolo nomeLibro;

private Numero numeroDiPagine;

private Lista<Pagine> pagine;

// Metodi

public Titolo dammiTitolo();

public Numero dammiNumeroDiPagine();

}

Indichiamo la classe ed il nome della

proprietà

Indichiamo il nome del

metodo e il tipo di oggetti che

calcola

Diamo il nome

Page 45: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Il concetto di variabile

Come manipoliamo un oggetto software?Gli oggetti software “vivono” nella memoria del

computer

Abbiamo bisogno di nomi che riferiscono direttamente gli oggetti per “manipolarli”

Es. somma 3 al numero X X = X + 3X è una variabile, che consente di manipolare un

certo tipo di oggetti (in questo caso dei numeri)

Le variabili associano nome e tipo ad un oggetto nella memoria

Page 46: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Manipolazione di oggetti

Se vogliamo ottenere il titolo di un libro dobbiamo chiamare il metodo dammiTitolo()

Supponiamo che la variabile l riferisca un libro

Titolo t = l.dammiLibro();Si usa la notazione col punto (dot notation)

VARIABILE . PROPRIETÀ

VARIABILE . METODO( PARAMETRI )

Pagina p = l.dammiPagina( 33 );

Page 47: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Il mio primo programma

Stampiamo “ciao” sullo schermo.

class StampaCiao {

public static void main(String args []) {

System.out.println(“Ciao”);

}

}

Il sistema si aspetta un metodo così

fatto:Main = Principale

Oggetto sistema

Ha la proprietà

out che è lo schermo

Chiamiamo il metodo

Println = stampa linea

Page 48: Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università

Scriviamo davvero i ProgrammiL’ambiente di sviluppo Eclipse

Tanti, tanti esempi


Recommended