Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento

Pagina creata da Sofia Morelli
 
CONTINUA A LEGGERE
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Fondamenti di Informatica II
     a.a. 2020-2021

 Introduzione al linguaggio Java
       Prof. Luca Mainetti
     Università del Salento
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Obiettivi della lezione

! Richiamare (elencare) i concetti principali dei calcolatori e il
    significato della programmazione
! Scrivere, compilare ed eseguire il primo programma Java
! Riconoscere gli errori di compilazione e di esecuzione
! Richiamare la descrizione degli algoritmi in pseudocodice

Introduzione al linguaggio Java             2               Luca Mainetti
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Calcolatori e programmi

! Hardware
! Software
! Dispositivo
! Cloud
! Servizio
! Programmazione = Progettazione + Sviluppo + Verifica +
    Evoluzione
! Operazione = Rilascio + Esercizio
! In questo corso ci focalizziamo soprattutto sulla conoscenza
    del linguaggio Java per lo sviluppo di programmi

Introduzione al linguaggio Java        3               Luca Mainetti
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Anatomia di un calcolatore

Introduzione al linguaggio Java      4                 Luca Mainetti
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Architettura dell’ambiente di esecuzione (cloud)

Introduzione al linguaggio Java   5     Luca Mainetti
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Cloud HPC (esempio in Docker)

Introduzione al linguaggio Java   6             Luca Mainetti
Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Architettura futura (quantum computing)

Introduzione al linguaggio Java   7        Luca Mainetti
Linguaggio di programmazione Java

! Linguaggio di programmazione di alto livello
! Fa uso di astrazioni
! Servono strumenti di sviluppo per tradurre il codice di alto
    livello in codice macchina (sequenza di istruzioni eseguibili
    dalla CPU)
! 1991 James Gosling e Patrick Naughton dipendenti di Sum
    Microsystems progettano il linguaggio Green pensato per
    set-top-box di differenti marche: sicuro, portabile
! Non ebbe successo
! 1995 al SunWorld presentano un browser scritto in Java in
    grado di eseguire applet

Introduzione al linguaggio Java   8                 Luca Mainetti
Versioni di Java
      Versione                    Anno      Principali novità
          1.0                     1996
          1.1                     1997      Classi interne
          1.2                     1998      Swing, Collections
          1.3                     2000      Miglioramento delle prestazioni
          1.4                     2002      Asserzioni, XML
           5                      2004      Classi generiche, ciclo for generico, auto-
                                            incapsulamento, enumerazioni, annotazioni
           6                      2006      Miglioramento della libreria
           7                      2011      Piccole modifiche al linguaggio e miglioramento della
                                            libreria
           8                      2014      Espressioni lambda, flussi, nuovi oggetti per il tempo e
                                            le date
           9                      2017      Moduli
         10,11                    2018      Ogni sei mesi una nuova versione con alcune
                                            modifiche

Introduzione al linguaggio Java                   9                             Luca Mainetti
Ambiente di programmazione Java e primo
                       programma

! Mettere in esecuzione IntelliJ IDEA
! Scrivere un primo semplice programma: attenzione, Java
    come molti altri linguaggi di programmazione è case
    sensitive
! Eseguire il programma e riconoscere la sequenza di
    operazione che l’ambiente di sviluppo esegue
! Organizzare il lavoro in cartelle

Introduzione al linguaggio Java   10               Luca Mainetti
La sequenza di operazioni eseguite dall’ambiente
                   di sviluppo

Introduzione al linguaggio Java   11   Luca Mainetti
Analisi del primo programma Java

! In Java ciascun file sorgente può contenere al massimo una classe pubblica
! Le stringhe di testo sono racchiuse tra doppie virgolette (perché?)

Introduzione al linguaggio Java        12                        Luca Mainetti
Alcune prove: numeri, stringhe, print

! Facciamo alcune prove per familiarizzare con println e
    con print
! Proviamo a stampare valori numerici
! Proviamo a eliminare le doppie virgolette
! Priviamo a mettere in sequenza enunciati che contengono
    println oppure print
! Verifichiamo sempre i risultati nella console del nostro
    ambiente di sviluppo
! Ricordiamoci che ogni enunciato deve terminare con un
    punto e virgola. Non tutte le righe del programma, solo gli
    enunciati

Introduzione al linguaggio Java   13                Luca Mainetti
Altre prove: errori sintattici, errori run-time

! Facciamo altre prove per familiarizzare con gli errori che
    possiamo commettere durante la scrittura del programma
! Errori sintattici: errori derivanti dal fatto che non abbiamo
    seguito le regole lessicali oppure le regole di composizione
    delle «frasi» Java
! Gli errori sintattici sono evidenziati dal compilatore, ma
    prima ancora gli ambienti di sviluppo ci aiutano avvisandoci
    in vario modo
! Errori in esecuzione: errori logici (dovuti alla «business
    logic») oppure eccezioni

Introduzione al linguaggio Java   14                Luca Mainetti
Progettare algoritmi

! Java ci serve per implementare applicazioni oppure servizi
    che sono in grado di eseguire algoritmi
! Qual è la differenza tra applicazione e servizio?
! Un algoritmo è una sequenza di passi
      – Non ambigua
      – Eseguibile
      – Che termini in un tempo finito
! Si distingue tra dominio del problema e dominio della
    soluzione
! Nel dominio della soluzione si distingue tra specifica e
    implementazione

Introduzione al linguaggio Java           15             Luca Mainetti
Esempio di algoritmo finanziario

! Vogliamo progettare un algoritmo che risponda alla
    seguente domanda
          Vengono depositato 10.000 dollari in un conto bancario
          che fornisce il 5 per cento di interesse annuo. Quanti
          anni occorrono perché il saldo del conto arrivi al doppio
          dell’importo inziale?
! Diciamo che questa è la descrizione funzionale del compito
    nello spazio del problema
! In altri termini è una descrizione in linguaggio naturale dei
    requisiti, che utilizza il linguaggio del dominio finanziario
! Come procediamo per spostarci dallo spazio del problema
    allo spazio della soluzione?
Introduzione al linguaggio Java   16                   Luca Mainetti
Analisi

                                        ! Ragioniamo sui dati
                                          che abbiamo nei
                                          requisiti

E’ una
                                        ! Iniziamo con un saldo
rappresentazione                          di 10.000 all’anno 0
intermedia
ancora non
descritta in un
linguaggio                              ! Ripetiamo i passi
comprensibile dal                         finché il saldo è minore
calcolatore
                                          di 20.000
Introduzione al linguaggio Java    17                 Luca Mainetti
Pseudocodice

! Lo pseudocodice è una
    descrizione informale                  1. Iniziare con anno = 0 e
                                              saldo = 10.000
    di una sequenza di
                                           2. Ripetere i passi seguenti
    passi che risolvono il                    finché il saldo è < 20.000
    problema                                 2.1 Aggiungere 1 all’anno
                                             2.2 Calcolare l’interesse
! E’ già parte dello                            come saldo * 0.05
    spazio della soluzione                   2.3 Aggiungere l’interesse
                                                al saldo
! Utilizza il linguaggio                   3. Riportare il valore finale
    dello spazio del                          dell’anno come risposta

    problema

Introduzione al linguaggio Java       18                   Luca Mainetti
Procedimento di sviluppo

! Sul testo troviamo uno
    schema di procedimento come
    quello riportato in figura
! Per ora prendiamolo per
    buono
! Nel corso di Principi di
    Ingegneria del Software
    avremo la possibilità di fare
    passi avanti e ingegnerizzare
    ciò che è noto come
    «processo di sviluppo del
    software»

Introduzione al linguaggio Java       19               Luca Mainetti
Puoi anche leggere