Minicorso tematico elementi di programmazione con java dal computer al web al cellulare
Download
1 / 48

Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare - PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on

Minicorso tematico: “Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare”. Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria [email protected] Presentiamoci. Mi chiamo Francesco Ricca Ricercatore presso il Dip. Di Matematica Mi occupo di:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare ' - miyoko


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Minicorso tematico elementi di programmazione con java dal computer al web al cellulare

Minicorso tematico: “Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare”

Dott. Francesco Ricca

Dipartimento Di Matematica

Università della Calabria

[email protected]


Presentiamoci
Presentiamoci

  • Mi chiamo Francesco Ricca

  • Ricercatore presso il Dip. Di Matematica

  • Mi occupo di:

    • Intelligenza Artificiale

    • Programmazione Logica

  • Insegno:

    • Introduzione all’Informatica

    • Ingegneria del Software

    • Programmazione ad Oggetti


Programma del corso
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


Materiale didattico
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


Orario ed esame
Orario ed Esame

  • Esame Finale giorno 9 Maggio:

    • Facoltativo

    • Chi lo supera consegue un attestato per riscattare 1CFU

    • L’attestato di frequenza valido per l’esame di stato non è connesso all’esame



Cosa l informatica
Cosa è l’Informatica?

  • Scienza degli elaboratori elettronici

    • Computer Science

  • Scienza dell’informazione

    • rappresentazione

    • memorizzazione

    • elaborazione e trasmissione dell’informazione

  • Parente stretta della Matematica

    • 2 anime: teorica, tecnico-pratica


Il computer
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.




Utilizzo di un elaboratore
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 esistente

      • Nuovi programmi applicativi

      • Nuovi programmi di sistema (cioè che fanno funzionare il calcolatore)


Cosa possiamo fare con un calcolatore2
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.


Parole chiave
Parole chiave:

  • Hardware

  • Software


Hardware
Hardware

  • Contenitore con

    • CPU, RAM

    • Memoria Centrale

      • Fisso

      • Unità per Dischi - CD/DVD

  • Monitor

  • Tastiera

  • Ecc.


Hardware1
Hardware

  • Unità di Elaborazione (Processore o CPU):

    • Svolge le elaborazioni

    • Coordina il trasferimento dei dati

    • Cioè ‘esegue’ i programmi

  • Memoria Centrale

    • Memorizza dati e programmi per l’elaborazione

    • Volatile

    • Accesso rapido

    • Capacità limitata


Hardware2
Hardware

  • Memoria Secondaria (es. Harddisk,floppy)

    • Grande capacità

    • Persistente

    • Accesso piu lento della RAM

  • Unità Periferiche

    • Interfaccia verso l’esterno

    • Terminali (tastiera, video)

    • Stampanti


Software
Software

  • Software di base:

    • Dedicato alla gestione dell’elaboratore

    • Esempio: Sistema Operativo (Windows, Linux, etc)

  • Software applicativo:

    • Dedicato alla realizzazione di specifiche applicative

    • Esempio: programmi per scrittura, gestione aziendale, navigazione su internet, ecc


Problemi algoritmi e programmi

Problemi, Algoritmi e Programmi

I concetti fondamentali dell’Informatica


Il problema
Il problema

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

Strategia

Problema

Obiettivo


Esempi di problemi
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


Risolvere un problema
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?


Risolvere un problema1

Verifica dei risultati

Problema

Interpretazione

Esecuzione

Procedimento risolutivo

Modello

Risolvere un problema


Algoritmo
Algoritmo

  • Un algoritmo è una sequenza finita di operazioni elementari che porta alla risoluzionein un tempo finitouna classe di problemi.

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

Algoritmo

Dati(INPUT)

X

Risultati(OUTPUT)

f(X)


Algoritmi propriet fondamentali
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.


Algoritmi equivalenti
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 2

12x

12=

24

12=

144



Algoritmi e programmi

PROBLEMA

ALGORITMO

PROGRAMMA

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.


Linguaggi di programmazione
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


Esempio potenza
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


Esempio in java
Esempio …in Java

int potenza(int a, int n)

{ int ris = 1;

while ( n > 0 ) {

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

}

return ris;

}


Riassumendo
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


Esistono problemi che un elaboratore non pu risolvere
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



Linguaggi di programmazione1
Linguaggi di Programmazione

  • Linguaggi per esprimere in maniera rigorosa un algoritmo

  • La “lingua del Computer”

  • Diversi tipi di linguaggi:

    • Imperativi

    • Dichiarativi

    • Ad Oggetti


Linguaggi imperativi
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


Linguaggi dichiarativi
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


Linguaggi ad oggetti
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.


  • Ma davvero questa la lingua del computer
    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


    Dal programma all esecuzione
    Dal programma all’esecuzione…

    Il compilatore lo traduce

    Scrivo il programma

    In JAVA

    Il Computer lo ESEGUE

    Se è scritto male,

    saranno segnalati gli errori

    (attenti, è molto pignolo!)


    Concetti di base della poo

    Concetti di base della POO

    POO = Programmazione Orientata agli Oggetti


    Il concetto di classe
    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.


    Esempio la classe dei libri
    Esempio: la classe dei libri

    • Ogni libro ha:

      • un titolo

      • un numero di pagine

      • un 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

    Caratteristiche:

    Dati

    Un’altra classe!!!

    Comportamento: Operazioni o Metodi


    La visibilit
    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’assistente

      • Mostrereste 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


    La classe libro in java
    La classe libro in Java

    Diamo il nome

    Indichiamo la classe ed il nome della proprietà

    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 il nome del metodo e il tipo di oggetti che calcola


    Il concetto di variabile
    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 + 3

      • X è 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


    Manipolazione di oggetti
    Manipolazione di oggetti

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

      Supponiamo che la variabile lriferisca un libro

      Titolo t = l.dammiLibro();

    • Si usa la notazione col punto (dot notation)

      VARIABILE . PROPRIETÀ

      VARIABILE . METODO( PARAMETRI )

      Pagina p = l.dammiPagina( 33 );


    Il mio primo programma
    Il mio primo programma

    Il sistema si aspetta un metodo così fatto:

    Main = Principale

    • Stampiamo “ciao” sullo schermo.

      class StampaCiao {

      public static void main(String args []) {

      System.out.println(“Ciao”);

      }

      }

    Oggetto sistema

    Ha la proprietà out che è lo schermo

    Chiamiamo il metodo

    Println = stampa linea


    Scriviamo davvero i programmi

    Scriviamo davvero i Programmi

    L’ambiente di sviluppo Eclipse

    Tanti, tanti esempi


    ad