A.A. 2023/24

Materiale didattico

Esami

RICEVIMENTO STUDENTI

LEZIONI

Discussione stati di avanzamento TESINE

Chi vuole seguire il corso si iscriva attraverso questo link di invito: Iscrizione Classroom LWEB 23/24

Testi consigliabili

N.B. In generale ci si deve abituare ad usare la documentazione del W3C su specifica XHTML, specifica CSS e specifica XML: sul sito www.w3c.org è reperibile tutta la documentazione aggiornata (ci sono anche pagine dalle quali si puo` sottrarre qualche soluzione per fare le proprie pagine e i propri stili - riusare coscientemente non e` reato!).

Una sorgente di informazione saranno le slide presentate a lezione (e` per questo che sono cosi` verbose ...) In fondo alle slide di ogni lezione sono poi forniti riferimenti a materiale di approfondimento disponibile in rete.

PERo` non bastano: a parte le risorse web, di seguito sono indicati alcuni testi che possono essere utili (niente di obbligatorio: vi do` numerosi titoli, vecchi e nuovi, che forniscono delle alternative)


Torna all'indice

Programma del corso

N.B. Qui sotto ci sono gli argomenti trattati nel corso; per ognuno, piu` o meno c'e` un modulo di corso, comprensivo di una lezione e una seduta di esercitazione. Le slide delle lezioni sono QUI. (Vanno integrate con l'attivita` di studio sui testi adottati).

introduzione: linguaggi di markup

programmazione di applicazioni per il web

Introduzione all'eXtensible Markup Language


Torna all'indice

Materiale/Modalità per le sessioni di laboratorio

lweb-materiale: software che puo` essere utile (editor, terminal).
Altro software utile viene indicato nella sezione "RISORSE" di ogni raccolta di slide.

La pagina Calendario delle lezioni contiene il piano dei nostri appuntamenti, aggiornato durante il corso.
A parte date ed argomenti delle lezioni, li` trovate le slide delle lezioni.

Le lezioni vanno riguardate e approfondite a casa (da soli o in gruppo); gli esercizi vanno intrapresi per proprio conto, in modo che la loro discussione durante le sessioni di esercitazione sia piu` utile.

Ci manca il laboratorio.
Proviamo a fare le sessioni di laboratorio in aula 6, dove ci sono prese di corrente disponibili.
Se lo chiedete possiamo aggiungere un meet, durante le sessioni di esercitazione, per discutere online.

Durante una sessione di laboratorio lo studente (da solo o in piccolo gruppo ... ma meglio se principalmente da solo ... sviluppa le soluzioni agli esercizi proposti alla fine di ogni raccolta di slide (una per ogni lezione).
Lo studente avra` visto e considerato, e anche risolto in qualche caso, gli esercizi, per proprio conto a casa.
In laboratorio l'attivita` de docente consiste nel discutere con lo studente, riguardo agli esercizi che lo studente sta facendo, e dare consigli e supporto.
Modificare gi esercizi propoosti, per farseli piacere di piu`, e` non solo accettabile, ,ma anche incoraggiato.


Torna all'indice

(Homework) Compiti

  1. Gli Homework appaiono durante il corso, nella pagina classroom dell'anno in corso (zona "Lavori del corso").
  2. Sono esercizi su cui si lavora durante il corso, consegnando quanto richiesto attraverso la pagina classroom di propria competenza.
  3. Vanno consegnati tipicamente entro due settimane da quando sono stati pubblicati.
    Si possono consegnare anche dopo, ma ad almeno una settimana di distanza l'uno dall'altro.
  4. Si tratta di lavori che testimoniano l'attivita` svolta personalmente dallo studente:
    • L'homework puo` essere sviluppato individualmente, oppure in gruppo (di due persone).
    • L'homework viene sviluppato mantenendo un repository aggiornato su Github.
    • Mentre si sviluppa la soluzione, questa puo` essere discussa con il docente durante le attivita` di laboratorio.
    • I dettagli della soluzione consegnata possono essere discussi anche durante la parte orale dell'esame o in incontri ad hoc.
  5. Ci sono tre tipologie di homework: 1) XHTML/CSS, 2) PHP con MySQL, 3)XML. Dopo la consegna di tre homework di tipologia diversa (e la relativa accettazione) si puo` discutere con il docente l'assegnazione della tesina.
  6. Per ogni homework si consegna una cartella compressa (denominata nome.cognome-1.zip, o 2, o 3 ...), contenente
    • i file di interesse (eventualmente suddivisi in sottocartelle)
    • un file readme.txt che descrive il contenuto della cartella, spiegando l'esercizio risolto, la sua struttura e il contenuto dei file
    • nel file readme deve essere anche indicato il repo github in cui si e` sviluppato il progetto relativo a questo esercizio
    • Nel caso di esercizi che coinvolgono l'uso di un database mysql, l'esercizio dovra` essere corredato di uno script apposito, da usare durante l'istallazione del sistema, per la costruzione delle tabelle necessarie. Assumendo che si stia risolvendo l'homework 2, il database creato avra` nome cognome2

Torna all'indice

Esami

Per poter partecipare all'esame finale bisogna aver consegnato una tesina. (VEDI operazione tesina)

L'esame consiste in una prova scritta di 75 minuti, successivamente completata da una discussione orale.
Se possibile l'esame orale viene svolto subito dopo la prova scritta; se questo non e` possibile viene decisa insieme una data successiva.

L'esame tipicamente e` verbalizzato in una delle slot predisposte su INFOSTUD, ma la data effettiva in cui ci vediamo per l'esame scritto oe per il seguente orale dipende da quando la tesina viene consegnata.
Il docente prepara l'esame basandosi sulla tesina, dopo averla controllata a fondo. Ci vogliono un po' di giorni.

La prova scritta consiste in una serie di 3/4 domande, alle quali si risponde attingendo alle nozioni generali studiate durante il corso. Le domande, ove sensato, fanno riferimento alla tesina, cosi` la risposta puo` essere data in riferimento a quanto sviluppato nella tesina.
Gli esami possono essere svolti in presenza o a distanza (con exam.net). Per la prova a distanza si viene invitati in un meet e istruzioni vengono inviate via email ai partecipanti, nel periodo precedente la prova.
Durante la prova, si puo` consutare il codice (privo di commenti) dell'applicazione tesina: questo sara` stampato (se la prova e` in presenza) o via exam.net.
Durante l'esame non e` possibile usare il PC, ne' consultare altra documentazione.

Il voto proviene dalla valutazione della tesina (circa 2 terzi) e dello scritto/discussione d'esame (circa un terzo).
La valutazione della tesina dipende da quanto essa e` (o e` risultata) impegnativa, soddisfacente, aderente alle specifiche, anche rispetto al fatto di averla sviluppata individualmente o in coppia.


Torna all'indice

Tesina

What's TESINA?

La tesina consiste nella definizione e implementazione di un progetto software, in cui vengano usati in modo consistente gli argomenti affrontati a lezione e approfonditi sui testi.

E` incoraggiato lo svolgimento di una tesina in gruppo (max 2 persone): in tal caso ciascun componente del gruppo deve conoscere tutto il progetto, in modo da poterne illustrare, su richiesta, tutti gli aspetti. Si collabora su tutto. Non ci si divide il lavoro in compartimenti stagni.

La tesina viene assegnata dopo che i Compiti sono stati consegnati ed accettati dal docente.

La gestione della tesina avviene usando la pagina classroom del proprio corso di appartenenza (gli studenti di anni precedenti, che non sono in uno dei classroom esistenti ... rivolgersi al docente ...).
Nella zona "Lavori del Corso - TESINA" ci sono alcune proposte di tesina.
Si tratta di file text che spiegano a grandi linee

Alcune tesine proposte dal docente sono "parametriche", nel senso che uno studente (o un gruppo) possono usare la loro definizione per definire un'altra proposta che piaccia loro di piu` (altro argomento, altri dati gestiti con conseguenti altri servizi.

Per avere una tesina assegnata (una tra quelle proposte su classroom, o una di propria concezione, bisogna scrivere al docente, via email. Nel secondo caso includere il file testuale con la proposta ...
Quando una tesina viene assegnata, un "compito-classroom", riservato a chi lavora su quella tesina, appare nella zona "Lavori del corso - TESINE ASSEGNATE"

La tesina e` sviluppata attraverso degli "stati di avanzamento", corrispondenti ad incontri con il docente. Ad ogni stato di avanzamento completato, vengono assegnati dei punti, fino al completamento del terzo stato con conseguente consegna del lavoro. Gli stati di avanzamento sono risportati nel "compito" menzionato sopra.

Tesina = Applicazione Web + Report

I prodotti della tesina sono, alla fine, due: il software e il report. Entrambi vengono consegnati attraverso classroom.

  1. Il software ...
    Un'applicazione web, basata su istallazioni standard del web server e dei linguaggi coinvolti.
    Lo sviluppo dell'applicazione deve essere tracciato su github. Ogni persona si suppone abbia un proprio repository github, in cui gestira` le versioni dell'appllicazione.
    Se il lavoro e` di gruppo, ogni membro del gruppo avra` il suo repo: avremo due repo paralleli ... non e` bellissimo, ma pazienza ...
    Durante la fase di consegna, il docente installa l'applicazione su un proprio calcolatore, quindi deve essere incluso uno script di istallazione, opportunamente modificabile con i dati di un altro account mysql.
  2. Il report ...
    si tratta di un documento, scritto con un word processor, con un titolo e diviso in CAPITOLI ...
    1. capitolo 1 - introduzione e descrizione dei dati

      Cinque Sezioni in questo capitolo.

      • Introduzione
        Qui si esplode la definizione data nel file testuale di proposta. Cosa fa l'applicazione web? A che serve? Quali tipologie di utenti serve? Per ogni tipologia quali funzionalita` vengono fornite? (E di conseguenza, quali voci appariranno nel menu` utente?) Utenti e servizi vengono descritti brevemente in modo da dare l'idea di cosa siano.
        L'implementazione non e` ancora iniziata! Questo capitolo fornisce la specifica testuale in base alla quale l'applicazione web verra` implementata (realizzata, sviluppata).
      • Note Tutte le informazioni aggiuntive che servano a spiegare bene eventuali cose accennate nella sezione precedente. Due esempi:
        In alcune tesine si parla di sconti ... cosa e` uno sconto? QUali caratteristiche Ha uno sconto? Ci sono diverse tipologie di sconto con caratteristiche diverse? Come viene applicato uno sconto? Come vine definito da chi ha la responsabilita` (e funzionalita` tra i servizi) di definirlo?
        Analogamente, a volte si parla di reputazione ... che significa? A partire da cosa e come viene calcolata? ...
      • Casi d'uso
        Per ogni servizio offerto dal sistema viene data una descrizione operazionale, cioe` si spiega cosa accade quando l'utente lo usa ... 10 15 righe ciascuno.
        (Questo si fa per spiegare, ad esempio, a chi a commissionato il sistema, quel che verra` realizzato).
        Tutto questo amplia il testo disponibile per descrivere l'applicazione web in sviluppo ed e` utile per ideare le strutture di dati necessarie.
      • Strutture dati dell'applicazione
        Basandosi sulla specifica testuale precedente, vengono definite le strutture dati da usare nell'applicazione.
        --- Una tabella di base di dati, per gestire l'anagrafica degli utenti e poco altro;
        --- Una serie di file XML in cui tutti gli altri dati verranno gestiti (aggiunti, cancellati, modificati, consultati ...)
        Viene spiegata la definizione della tabella e spiegati i suoi campi: si mostra la struttura della tabella, e un breve esempio dei dati contenuti.
        Poi per ogni file XML che si progetta, si mostra UN ESEMPIO (per far vedere come e` fatto quel file) e POI si mostra la GRAMMATICA del relativo linguaggio di markup.
        La sintassi puo` essere data come DTD o come SCHEMA: scegliete voi ... ma per l'esame dovete essere capaci di usare entrambi questi formalismi.
      • Analisi di alcuni elementi/attributi
        Infine, l'ultima sezione del primo capitolo contiene un esame a campione dei linguaggi xml definiti.
        Per ogni linguaggio scegliere a campione due o tre tra attributi ed elemnti.
        Per ognuno scrivere una sottosezione in cui l'esistenza dell'elemento (o attributo) viene giustificata facendo riferimento alla parte di specifica testuale (pagina, riga ... riferimento chiero) dalla quale si evince l'importanza e necessita` dell'elemento (o attributo).
    2. capitolo 2 - Manuale utente: esemplificazione, ad uso degli utenti del sistema, di come i vari utenti usano le loro funzionalita`; fate esempi e screenshot.
    3. capitolo 3 - Programmazione: un elenco degli script definiti nel sistema, per ciascuno dei quali viene data una breve descrizione, in cui vengono spiegate le soluzioni tecniche adottate (per gestire i dati, per realizzare una sessione di lavoro, per ottenere un certo effetto di presentazione, per ordinare il flusso di esecuzione della funzionalita`, etc ...).
      Se la tecnica usata in uno script e` la stessa gia` descritta in un altro script, si puo` evitare di ridescriverla: indicativamente ci si aspettano 3 script per pagina in media. Si possono riportare brevi estratti del codice. Brevi ...
    4. capitolo 4 - Elenco di utenti/password che popolano il sistema dopo l'istallazione.

Cosa si fa negli Stati di Avanzamento

Si presenta al docente lo stato del lavoro svolto sulla tesina. Gli incontri vanno prenotati nella pagina di discussione delle tesine indicata in questa pagina web.
Se la tesina e` svolta in gruppo, tutto il gruppo partecipa all'incontro.

  1. Nel primo stato di avanzamento viene presentato al docente il primo capitolo della tesina, vedi sopra. QUINDI non si e` ancora iniziata la programmazione del sistema.
  2. Nel Secondo stato di avanzamento viene presentata al docente una versione intermedia dell'applicazione, che sara` stata istallata sul server lweb e sul portatile del gruppo: il layout e` in stato quasi finale, le voci dei menu` ci sono tutte, ma non tutte sono implementate.
  3. Nel Terzo stato di avanzamento viene presentata la versione finale del sistema, che sara` stata istallata e testata sul server lweb.
    Il sistema viene anche dato al docente, per permettergli di istallarlo su una sua macchina, in modo da iniziare a controllarlo durante la riunione. Il pacchetto dato al docente contiene uno script di istallazione e popolamento del sistema (infatti il sistema, per essere collaudabile, deve essere popolato con una quantita` congrua di dati, in modo da velocizzare le operazioni di test).
    Il docente dovra` probabilmente modificare il file install.php ed eventualmente quello di connessione al db, per inserire il corretto utente mysql: queste sono le uniche due modifiche accettabili durante la consegna della tesina.
    Contestualmente, o successivamente, a questo stato di avanzamento viene consegnata la relazione.

Dopo la consegna della tesina viene organizzato l'esame finale, secondo le date specificate nella zona degli esami di questa pagina web.


Torna all'indice