Schema della sezione

    • Fatte salve eventuali modifiche normative e in accordo con le indicazioni fornite dall'Università degli Studi di Trieste, gli esami della sessione estiva 2020-2021 del corso di Elaborazione Automatica dei Dati si svolgeranno in presenza. L'esame si svolgerà con l'impiego di un personal computer e con la possibilità di proiettare quanto svolto su una lavagna, per consentire un adeguato distanziamento tra esaminando e membri della commissione. A seconda del numero di studenti iscritti all'appello, gli stessi potranno essere convocati a gruppetti ad orari scaglionati, al fine di evitare assembramenti.


      Le linee guida emesse dall'Università fissano delle eccezioni, in base alle quali gli studenti che soddisfano certi requisiti possono chiedere di svolgere l'esame a distanza. In tal caso, gli studenti interessati sono tenuti a rispettare le procedura indicata nelle linee guida, inviando in particolare al docente presidente della commissione d'esame (Renato Pelessoni - renato.pelessoni@deams.units.it) e, in copia, alla segreteria didattica del dipartimento un'email di richiesta contenente le motivazioni, anche al fine di eventuali controlli. Per consentire il regolare svolgimento dell'esame, tale richiesta andrà inviata entro la data di chiusura delle iscrizioni all'appello. Non saranno ammessi a svolgere l'esame a distanza studenti che non soddisfino i requisiti previsti dalla normativa o che non abbiano adempiuto alla relativa procedura.  Gli studenti ammessi a svolgere l'esame in modalità a distanza verranno contattati via email per ricevere le necessarie indicazioni per lo svolgimento dell'esame.

      Si invitano tutti gli studenti che si presenteranno a sostenere l'esame ad esaminare le indicazioni emesse dall'Università per lo svolgimento degli esami sia in presenza sia a distanza.




  • INIZIO CORSO 

    LUNEDI' 1 MARZO 2021

    • LE LEZIONI SI SVOLGERANNO IN MODALITA' ONLINE SULLA PIATTAFORMA MICROSOFT TEAMS DALL'1 MARZO 2021

      PRIMA LEZIONE ONLINE TRAMITE LINK REPERIBILE NELLA PAGINA WEB DELLA DIDATTICA A DISTANZA DI UNITS - LEZIONI ONLINE SUCCESSIVE IN GRUPPO TEAMS ACCESSIBILE CON CODICE:

      CODICE: t6n0jsl

      DENOMINAZIONE: 053EC - 2021 - Elaborazione Automatica dei Dati

      LE LEZIONI SI SVOLGERANNO PROBABILMENTE IN PRESENZA DAL 31/03/2021, PREVIA DISPONIBILITA' DI UN'AULA PRESSO L'EDIFICIO D DI PIAZZALE EUROPA (SEGUIRA' COMUNICAZIONE).

    • Orario delle lezioni

      Lun 11.00 - 13.00

      Mar 11.00 - 13.00


      Mer 11.00 - 12.00

    • Per la parte relativa a Java si utilizzerà l'ambiente di programmazione NetBeans. Di seguito le indicazioni per scaricare il software o per utilizzare in alternativa la copia disponibile tramite desktop remoto.

      1) Intallazione personale di Apache NetBeans

      La versione più recente è reperibile presso la pagina di download di Apache NetBeans

      PRIMA dell'installazione di NetBeans può essere tuttavia necessario installare Java SE (JDK - Java Development Kit), reperibile nella pagina di download e, qualora dopo o nel corso dell'installazione di NetBeans non venisse riconosciuta automaticamente la posizione di Java SE, navigare nell'apposita finestra di selezione per farla riconoscere a NetBeans. 

      2) Installazione personale di NetBeans.

      Si tratta di una versione meno recente, non più supportata, dell'ambiente di programmazione NetBeans, tuttavia ancora disponibile e ampiamente sufficiente per gli scopi del corso. Si può scaricare dall'apposita pagina di download.

      Anche in questo caso è necessario installare PRIMA Java SE (JDK - Java Development Kit). Si consiglia la versione 8 reperibile nella propria pagina di download, individuando quella adeguata al proprio sistema operativo. Qualora dopo o nel corso dell'installazione di NetBeans non venisse riconosciuta automaticamente la posizione di Java SE, navigare nell'apposita finestra di selezione per farla riconoscere a NetBeans.

      3) Utilizzo di NetBeans tramite Desktop Remoto.

      Prima del collegamento tramite Desktop Remoto al terminal server di dipartimento dove è installata una copia di NetBeans, è necessario connettersi alla rete universitaria tramite client VPN. Si utilizzi FortiClient (Fortinet), scaricabile dall'apposita pagina del sito web universitario. Alla richiesta di connessione indicare, se non già presente, vpn.units.it ed usare le proprie credenziali universitarie. Una volta connessi, è possibile utilizzare la propria app Desktop Remoto per connettersi al terminal server di dipartimento, dove è installata una versione di NetBeans. Il terminal server è denominato deams-ts2016.ds.units.it e per l'accesso si utilizzino le proprie credenziali universitarie.


      Per la parte relativa a SageMath, il software si può scaricare alla pagina web di download, dalla quale è possibile anche accedere ad una versione online di SageMath denominata Cocalc.


    • Codice di accesso alle lezioni su Microsoft Teams: t6n0jsl

      Denominazione del team: 053EC - 2021 - Elaborazione Automatica dei Dati


  • Argomenti in via di svolgimento (soggetti a modifiche)

    Introduzione a SageMath; modalità di accesso a SageMath; operatori aritmetici; funzioni numeriche di base; funzioni matematiche fondamentali; risultati esatti ed approssimazioni; operatori di confronto; variabili simboliche; solve; funzioni max e min simboliche; limiti; derivazione; integrazione indefinita e definita; espressioni simboliche; funzioni simboliche; conversione di espressioni simboliche in funzioni simboliche; assumptions; semplificazioni; funzioni statistiche elementari; disegno di grafici.

    Per il dettaglio sugli argomenti svolti si faccia riferimento al materiale fornito (slide usate nel corso).

    Per eventuali approfondimenti si può fare riferimento in generale al Capitolo 1 del testo di Paul Zimmermann et al. - Computational Mathematics with SageMath sopra indicato.

  • Argomenti in via di svolgimento (soggetti a modifiche)

    Universi e coercizione; variabili Python e variabili simboliche; reset/restore/del di variabili; esempio di studio di una funzione in una variabile; esempio di ricerca degli estremi di una funzione in due variabili; liste; indicizzazione e slicing di liste; creazione e modifica di liste; operazioni su liste; insiemi; stringhe; istruzioni if elif if, while e for; list comprehension; sum; diversi tipi di range; definizione di funzioni; principi di base della programmazione funzionale; map; filter; espressione lambda; dizionari; la ricorsione; la successione di Fibonacci ricorsiva ed iterativa; ricerca degli zeri di una funzione: l'algoritmo di bisezione e la sua convergenza.

    Oltre al materiale fornito si può fare riferimento in generale al Capitolo 2 del testo di Paul Zimmermann et al. - Computational Mathematics with SageMath sopra indicato.

  • Argomenti svolti

    Le classi in Java; tipi di dati ed operatori in Java; conversioni tra tipi di dati; costanti; costanti statiche; classe Math; metodi statici; stringhe; sottostringhe; input con Scanner e con box di dialogo; output con box di dialogo; esempio di costruzione di una classe; costruttori; campi di esemplare e variabili locali (definizione, visibilità e durata di vita); definizione di metodi; il garbage collector; l'uso di JComponent per il disegno in un JFrame; l'uso di un JPanel per il disegno in un JFrame in NetBeans; analisi di un esempio di documentazione di una classe Java; alcune classi con interfaccia Shape e strumenti di disegno; la classe Color e il suo uso; uso di JList da solo e in abbinamento con un pulsante; passaggio di dati tra classi tramite interfaccia pubblica; metodi di accesso; metodi di tipo get e set; ripasso: strutture if e if else, strutture di ciclo while, do while, for; metodi predicativi; uso di variabili booleane come flag; JColorChooser.


  • Argomenti svolti

    Interfacce e loro impiego; la classe AffineTransform e l'interfaccia Shape; interfacce di smistamento; gestione degli eventi in Java; sorgente, ascoltatore di evento ed uso delle interfacce; interfaccia ActionListener; classi interne e loro uso; esempi di gestione di eventi; modalità di gestione eventi in NetBeans; esempio di classe interna anonima; esempio di oggetto e classe interna anonima; classe javax.swing.Timer e gestione eventi; eventi del mouse ed interfaccia MouseListener.

  • Argomenti svolti

    Ereditarietà e sua caratteristiche; variabili di istanza ereditate e non ereditate; metodi ereditati; ridefinizione di metodi; sovraccaricamento di metodi; uso di super per la chiamata di metodi della superclasse; uso di super per chiamare un costruttore della superclasse; conversioni tra sottoclasse e superclasse, polimorfismo; ereditarietà dalla classe Object; i metodi ereditati da Object toString, equals e clone.
  • Argomenti svolti

    Array ed ArrayList in Java; principali metodi degli ArrayList; classi involucro; auto-impacchettamento e auto-spacchettamento; ciclo for generalizzato (for each); conteggio di elementi, ricerca e determinazione di massimo e minimo in un ArrayList; array 2-dimensionali; clonazione di array; copiatura di array (system.arraycopy); inserire e rimuovere un elemento in un array; incremento di dimensione di un array; array paralleli ed oggetti; array parzialmente riempiti.
    • Un poligono è una curva chiusa formata da segmenti che ne congiungono i vertici.

      Si realizzi una classe Poligono i cui metodi public double perimetro() e public double area() calcolino, rispettivamente, il perimetro e l'area di un poligono.

      Per calcolare il perimetro, si sommi la distanza fra punti adiacenti.

      L'area di un poligono con vertici (x0,y0),...,(xn-1,yn-1) è data dal valore assoluto di

      (1/2)*(x0y1+x1y2+...xn-1y0-y0x1-y1x2-...-yn-1x0)

      I vertici del poligono saranno memorizzati in un array list di oggetti Point2D.Double, che costituirà la variabile di istanza della classe Poligono.

      La classe Poligono dovrà contenere inoltre i metodi public void add(Point2D.Double aPoint) e public void draw(Graphics2D g2), che consentono rispettivamente di aggiungere un punto ad un poligono e di disegnare il poligono stesso.

      Si rifaccia poi l'esercizio precedente, senza creare una classe Poligono ma utilizzando invece la classe Polygon già esistente nel package java.awt, che definisce i vertici del poligono per mezzo di coppie di punti. In questo  caso si usi dunque l'ereditarietà.

  • Argomenti svolti

    Lettura e scrittura di file di testo (FileReader, Scanner, PrintWriter); ciclo di lettura di un file di testo; finestra di dialogo file (JFileChooser); eccezioni; distinzione tra eccezioni verificata e non verificate; throw; throws; try catch finally, serializzazione; il passaggio dei parametri nei metodi per valore e per riferimento.