A.A. 2020/21

Materiale didattico

Esami

AVVISI: pagina dei messaggi e comunicazioni

Chi vuole seguire il corso si iscriva qui prima dell'inizio: Classroom LWEB 20/21

CALENDARIO e materiale per le lezioni

BRIDGE, per i COMPITI e TESINE: BRIDGE

Discussione stati di avanzamento TESINE

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

Contenuto (Programma) del corso e lezioni

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 esercitazioni

La directory lw-latina contiene il materiale cui si e' fatto riferimento durante le lezioni (documentazione iniziale ed esempi).
Considerate la possibilità di usare le portable apps, per avere su una pennetta il materiale sviluppato durante il corso ed essere indipendenti dal calcolatore che trovate in laboratorio. C'e' una raccolta preparata per lweb, ma e' meglio se create la vostra raccolta aggiornata, accedendo al sito base delle portable apps. (ovviamente se usate costantemente il vostro calcolatore ... quanto sopra e' ridondante

In fondo ad ogni lezione (cioe' alla raccolta di slide corrispondente alla lezione) ci sono indicazioni su esercizi da svolgere durante le sessioni di laboratorio.

Quando si tratta di esercizi che coinvolgono l'uso del web server, si usa il proprio account sul server del corso: username e password, insieme con le modalita' di gestione dell'account sono discussi a lezione al momento opportuno.
Mediante il suddetto account, ci si puo' collegare al server e posizionare i propri esperimenti nella dir public_html della propria home (rendendo gli esperimenti raggiungibili via web (vedi slides del corso).

Ovviamente ci si aspetta che gli esercizi vengano svolti anche a casa, sul proprio calcolatore, dove saranno stati istallati gli opportuni strumenti (vedi descrizione delle "risorse" sulle slide del corso e la directory softlatina).


Torna all'indice

Compiti

Sono esercizi "scelti", la cui soluzione viene preparata e sottomessa durante lo svolgimento del corso.

Il sistema usato per consegnare questi esercizi e' BRIDGE (zona Gestione esercizi).

I compiti vanno consegnati ad almeno 4 giorni di distanza l'uno dall'altro (per l'A.A. 20/21 questa regola vale dal 25 giugno 2021).

perchè?

Si tratta di lavori che testimoniano l'attivita' svolta personalmente dallo studente: I dettagli del lavoro svolto potrebbero essere discussi anche durante la parte orale dell'esame o in sessioni speciali.
Il lavoro viene mostrato al docente durante le attivita' di laboratorio (anche per stabilire se il lavoro e' terminato).

quali lavori?

Su BRIDGE sono elencate le definizioni dei compiti (li' chiamati anche "esercizi". Ci sono esercizi "rappresentativi" ed esercizi "non rappresentativi".

I compiti sono sottomessi via BRIDGE dopo averli anche istallati sul server lweb (nella propria public_html.
Al termine del corso, o comunque prima di iniziare a lavorare sulla tesina, bisogna aver consegnato tre esercizi rappresentativi (uno per ogni tipologia:

  1. (XHTML/CSS) un piccolo sito web statico, articolato in piu' pagine, che usi css (facoltativamente con qualche aspetto dinamico - solo cgi, al minimo indispensabile, come uso di header ricevuti dal client e/o di un programma minimale)
  2. (PHP/MySQL) un piccolo sito web dinamico in cui sia utilizzato php con mysql, come consuntivo delle attivita' di esercitazione relative alle lezioni corrispondenti;
  3. (XML) una estensione del lavoro al punto 2, in cui siano consultati e manipolati file xml

che cosa si consegna tramite bridge?

Si tratta di trasmettere al server, in BRIDGE, un file nome.cognome.1.zip/nome.cognome.2.zip/nome.cognome.3.zip.
Nel file nome.cognome.i.zip e' compressa una directory con i file di interesse, compreso un file readme.txt che descrive il contenuto della directory, spiegando l'esercizio risolto, la sua struttura e il contenuto dei file. 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. Il database non va creato perche' e' quello associato all'account assegnato allo studente dal docente (lwebXX, con XX un numero. L'utente mysql da usare e' quello che e' stato assegnato dal docente ... particolari a lezione.

Nel file readme.txt indicare l'indirizzo dell'istallazione del compito sul server lweb.

Nel 2021 usiamo Gihub per sviluppare gli esercizi in gruppi di due studenti. Vedi le spiegazioni fornite nella pagina delle lezioni, in corrispondenza del 29 Marzo.


Torna all'indice

Esami

L'esame e' collegato ad uno degli appelli predisposti su Infostud (dove ci si deve iscrivere come al solito), ma la data esatta in cui si svolge l'esame scritto non e' necessariamente quella iniziale dell'appello (vedi sotto).

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

La pagina con le date per appuntamenti, in cui discutere gli stati di avanzamento della tesina, ed eventualmente consegnarla, sono linkate in cima a questa pagina

Le date approssimative d'esame per l'anno 2021 sono qui sotto:

La prova d'esame consiste in una prova scritta di 75 minuti, successivamente completata da una discussione orale.
La verbalizzazione avviene dopo l'esame orale.
Se possibile l'esame orale viene svolto subito dopo la prova scritta; se questo non e' possibile potrebbero passare due o tre giorni ulteriori.

La prova scritta consiste in una serie di 3/4 domande, che possono fare riferimento diretto ai contenuti della tesina, alle quali si risponde attingendo alle nozioni generali studiate durante il corso.
Per le risposte, ove ragionevole, ci si aspetta che vengano usati esempi provenienti dalla tesina.
E' possibile portare all'esame una copia del listato del software sviluppato per la tesina (copia cartacea, deprivata di tutti i commenti, anche file xml). (QUESTO ASPETTO E' MODIFICATO DURANTE IL PERIODO IN CUI GLI ESAMI SONO A DISTANZA: chi fa l'esame riceve istruzioni in merito).
Non e' possibile portare 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 alla numerosita' del gruppo.


Torna all'indice

Tesina

Cosa e' una 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.

Si puo' trattare di un lavoro di 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.
Potete scegliere tra le tesine proposte e disponibili su bridge.
Le descrizioni proposte su bridge seguono un certo schema: se volete proporre una tesina che riguardi argomenti interessanti per voi, potete farlo, modificando opportunamente la descrizione di una delle tesine esistenti ed inviando il file testuale corrispondente al docente. Per queste proposte e' meglio usare la tesina "parametrica" proposta su bridge.

La tesina e' sviluppata attraverso degli "stati di avanzamento", corrispondenti ad incontri con il docente, gestiti attraverso BRIDGE.

Tesina = Applicazione Web + Report

I prodotti della tesina sono due:

  1. Un'applicazione web, basata su istallazioni standard del web server e dei linguaggi coinvolti.
    L'applicazione deve essere istallata sul server del corso, nel public_html dell'account di chi ha sviluppato la tesina. Se la tesina e' svolta in gruppo, la tesina e' da istallare sugli account di tutti i membri.
    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. Una relazione (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
      • Qui si dice cosa e' e cosa fa l'applicazione web: a che serve? Quali tipologie di utenti serve? Per ogni tipologia quali funzionalita' vengono fornite?
      • Qui non vengono trattati gli aspetti tecnici implementativi: qui viene fornita la specifica testuale in base alla quale verra' realizzata l'implementazione; vengono descritte le funzionalita' e le strutture dati usate, con l'idea che chi implementera' usera' questo capitolo come documento di specifica del progetto.
      • L'introduzione e' piu' o meno il testo descrittivo che e' su bridge;
      • poi segue una sezione in cui si elencano i ruoli (tipi di utente) e si elencano i servizi che il sistema fornisce a questi utenti: queste liste di servizi rifletteranno i menu' delle homepage degli utenti; ogni servizio viene descritto da una o due righe di testo;
      • poi segue una sezione "casi d'uso" in cui ogni servizio viene descritto piu' diffusamente (10-15 righe circa) in modo che sia chiaro quel che succede durante l'uso di quel servizio;
      • questo testo, oltre a quello menzionato sopra, costituisce la sorgente per definire le strutture dati: ogni elemento xml, ogni campo della tabella utenti, saranno motivati dalle parti testuali sopra descritte.
      • Poi segue una sezione "Strutture dati, in cui si descrive la tabella utenti (con i dati anagrafici, username, password, e poco o nulla d'altro) e la serie di file xml necessari a gestire i dati dell'applicazione;
        in particolare, per ogni file xml, viene proposto un esempio e poi la grammatica (dtd, o schema, scegliete voi, ma per l'esame dovete essere capaci di usare entrambi questi formalismi);
      Quando consegnate il primo capitolo, aggiungete una pagina in cui, per 10 elementi xml, presi a campione, viene indicato da quale parte testuale delle sezioni precedenti tali elementi sono giustificati o resi necessari.
    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' descrita 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