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)
- E.Castro - HTML per il WWW con XHTML e CSS - Pearson's;
(un buon testo che contiene materiale sufficiente per il corso)
- Troiani - CSS Guida Completa - Apogeo; (veramente eccellente
per un uso quasi estremo delle CSS)
- J. Duckett - HTML & CSS, proettare e costruire siti web - Apogeo;
(un'alternativa ai precedenti, piu` recente e con una vetse grafica nuova;
puo` essere che preferiate questo ...)
- E. Zimuel - Sviluppare in PHP7 - tecniche nuove
- Converse, Park, Morgan - PHP5 & MySQL LA Guida - McGraw-Hill
- Gutmans, Bakken, Rethans - PHP5 Guida completa - Apogeo;
- J. Duckett - Javascript & JQuery - Apogeo;
- Beginning XML, HOEPLI/WROX (c'e` l'essenziale e un po` di piu`;
non ho trovato qualcosa di meglio che sia piu` recente.
Comunque vanno bene anche cose piu` recenti, dello stesso editore o meno;
se avete un libro diverso che volete usare, va sicuramente bene (magari parliamone)
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
- cenni sul protocollo http
- XHTML: HyperText Markup Language in XML
- presentazione di documenti web con le Cascading Style Sheet)
programmazione di applicazioni per il web
- introduzione alla programmazione cgi
- introduzione alla programmazione in php)
- programmazione in php con uso di MySQL)
- Elementi di Javascript, Ajax, JQuery
- Test con phpunit
Introduzione all'eXtensible Markup Language
- XML base. Presentazione di documenti XML (con CSS). Struttura di documenti XML
- Document Type Definition, Schema
- Programmazione di applicazioni XML con DOM e SAX
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.
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.
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
- che sistema viene prefigurato
- quali tipologie di utenti usano il sistema
- quali servizi vengono messi a disposizione dell'utente da l sistema
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.
- 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.
- Il report ...
si tratta di un documento, scritto con un word processor, con un titolo e diviso in CAPITOLI ...
- 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).
- capitolo 2 - Manuale utente: esemplificazione, ad uso degli utenti del sistema, di come
i vari utenti usano le loro funzionalita`; fate esempi e screenshot.
- 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 ...
- 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.
- 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.
-
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.
-
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.