Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo...

24
4 maggio 2004 Formazione pratica nell’ambito di moduli professionalizzanti orientati all’Informatica del secondo anno di corso della Laurea in Ingegneria dell’Informazione Azione n° 167509 Progetto Moduli Professionalizzanti n° 162781, Obiettivo 3, Misura C.3. Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari dell’Università degli studi di Brescia” Edizione 2 Università degli Studi di Brescia Riccardo Cassinis Marzia Tassi Fabio Tampalini Web Programming Specifiche generali del progetto

Transcript of Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo...

Page 1: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004

Formazione pratica nell’ambito di moduli professionalizzanti orientati all’Informatica del secondo anno di corso della Laurea in Ingegneria dell’InformazioneAzione n° 167509Progetto Moduli Professionalizzanti n° 162781, Obiettivo 3, Misura C.3.Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari dell’Università degli studi di Brescia”Edizione 2

Università degli Studi di Brescia

Riccardo CassinisMarzia TassiFabio Tampalini

Web Programming

Specifiche generali del progetto

Page 2: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 2

Nota importante

Queste trasparenze, e tutto il materiale relativo al corso, sono reperibili all’indirizzo web

http://www.ing.unibs.it/~cassinis/Dida/FSE

Page 3: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 3

Prima di tutto, il calendario:

I edizione

Giorno Ore Aula Docenti

Martedì 4/5 10.30 – 12.30 Lab. Via Valotti Cassinis, Tampalini

Martedì 11/5 08.30 – 12.30 Lab. Via Valotti Cassinis, Tassi, Tampalini

Martedì 18/5 08.30 – 12.30 Lab. Via Valotti Cassinis, Tassi, Tampalini

Martedì 25/5 10.30 – 12.30 Lab. Via Valotti Cassinis, Tassi

Page 4: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 4

Prima di tutto, il calendario:

II edizione

Giorno Ore Aula Docenti

Martedì 4/5 14.30 – 16.30 Lab. Via Valotti Cassinis, Tampalini

Martedì 11/5 14.30 – 18.30 Lab. Via Valotti Cassinis, Tassi, Tampalini

Martedì 18/5 14.30 – 18.30 Lab. Via Valotti Cassinis, Tassi, Tampalini

Martedì 25/5 14.30 – 16.30 Lab. Via Valotti Cassinis, Tassi

Page 5: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 5

Introduzione

Questo modulo si propone di integrare nozioni in parte già acquisite, applicandole alla realizzazione di un organico “programma”, potenzialmente distribuito sulla rete Internet su scala mondiale.

Esso prevede una parte di introduzione al lavoro, e una parte realizzativa.

Page 6: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 6

Prerequisiti

Il corso si rivolge a chi ha già un minimo di esperienza di uso dei linguaggi HTML e C, e dei sistemi operativi Windows e Linux

La documentazione necessaria può essere integralmente reperita sull’internet. I link relativi sono indicati sul sito web segnalato in precedenza

Le informazioni sulla Bourne-Again Shell possono essere ottenute direttamente da brad digitando man bash

Lo stesso vale per tutti i comandi Linux

Page 7: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 7

Obiettivi

Acquisire “manualità” nell’uso di alcuni strumenti per la produzione del software, con particolare riferimento a

Pagine HTML statiche PHP Uso elementare di MySQL Vari editor di testo Client FTP, SSH, HTTP, etc.

Rendersi conto delle problematiche reali che si incontrano durante lo sviluppo di un progetto software

Evidenziare i vantaggi e le difficoltà dello sviluppo di moduli software cooperanti

Page 8: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 8

Programma di lavoro

Lezione teorica: 2 ore Organizzazione del lavoro Presentazione e discussione degli strumenti Introduzione al linguaggio PHP, con esercizi

Esercitazione pratica 1: 4 ore Esame delle caratteristiche della rete: numeri di IP, routing Introduzione a MySQL, con esercizi Presentazione del problema da risolvere e della distribuzione del lavoro Preparazione e collaudo delle pagine HTML Preparazione di alcuni script

Esercitazione pratica 2: 4 ore Preparazione dei rimanenti script Integrazione e collaudo del sistema

Valutazione e discussione dei risultati: 2 ore

Page 9: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 9

Il server che useremo

Indirizzo IP: 192.168.120.50 (non ha un nome simbolico) Usabile solo dall’interno del laboratorio Ognuno di voi ha un account personale, descritto nel foglietto

che vi è stato dato Potete accedere al server tramite:

SSH (e scp) FTP HTTP

Page 10: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 10

Utilizzazione del server:

Per creare un vostro “server privato”, dovete creare una cartella che si chiama public_html, e metterci dentro i file .html e .php che creerete.

Per farvi servire il file html, puntate il browser su http://192.168.120.50/~userid/nomedelfile.html

Per creare una CGI, dovete metterla in/var/www/cgi-bin/nomedelfile.cgiAttenzione! È una cartella condivisa!

Per utilizzare una CGI, dovete puntare a http://192.168.120.50/cgi-bin/nomedelfile.cgi

C’è già un file che si chiama test.cgi per provare

Page 11: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 11

Il paradigma fondamentale: l’interazione server-browser

Server Client

HttpWeb server Browser

Page 12: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 12

Un modo per ottenere questo è…

Server Client

Http

formsCGI prog.

Web server

Browser

Page 13: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 13

Ma un altro modo potrebbe essere…

Scrivere del codice HTML, in cui alcuni tag sono dei programmini

Che vengono eseguiti quando il file viene servito Il cui (eventuale) output viene servito insieme al file HTML Che possono utilizzare file contenuti sul server… …magari organizzati con un sistema facile da usare.

Page 14: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 14

Un cenno sull’organizzazione del lavoro

1. Decomporre il lavoro in attività2. Valutare la durata di ogni attività3. (Valutare il costo delle attività)4. Trovare le dipendenze fra le attività5. Individuare i punti di controllo

Page 15: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 15

Definizione delle

specifiche

120

Creazione gruppo di

lavoro

10

iscrive.cgi

180

fse.html

15

iscriz.html

15

fse.html

10

iscriz.html

10

iscrive.cgi

0

Un PERT parziale…

Program Evaluation & Review Technique

Page 16: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 16

E il relativo timeline

Name Task DurationDefinizione delle specifiche

120

Creazione gruppo di lavoro

10

fse.html 15

iscriz.html 15

iscriz.html 10

iscrive.cgi 180

iscrive.cgi 0

fse.html 10

4-2-02 5-2-02 6-2-02 7-2-02 8-2-02 9-2-02

Page 17: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 17

Per finire

Durante il corso, il docente sarà a disposizione, tramite l’indirizzo di posta elettronica [email protected], per risolvere ogni perplessità relativa alle specifiche

Page 18: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 18

Materiale utile per lo svolgimento del lavoro

Le trasparenze che seguono contengono alcuni “pro memoria” utili per svolgere il lavoro

Page 19: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 19

Le principali parole chiave relative ai form

<!-- This is the start tag for the form. --><form ACTION=MAILTO:[email protected] METHOD=POST>

<!-- This is a hidden field which sends a text so we know from which form we got this.<input NAME="subject" TYPE="hidden" VALUE="Mail from ARL guestbook"><!-- This is a standard text field which has the width of 56 characters. --><input TYPE="text" NAME="name" SIZE=56 MAXLENGTH=56>

<!-- This is a popup field where the user can choose an item. --><select NAME=from><option VALUE="mail message">I found the address in a mail message<option VALUE="search engine">From a search engine</select>

<!-- This is two radiobuttons where the user can choose an item, for example sex. --><input TYPE="radio" NAME="sex" VALUE="male">Male<input TYPE="radio" NAME="sex" VALUE="female">Female

<!-- This is a textfield where the user can type in some comments about your page.. --><textarea NAME="comments" COLS=60 ROWS=8 WRAP="soft"></textarea>

<!-- At last, we have a 'sign' button and a 'reset' button which will clear the form. --><input TYPE="submit" VALUE="Sign"><input TYPE="reset" VALUE="Reset"><!-- Finally, don't forget to end the form using the end tag. --></form>

Page 20: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 20

Script da inserire in tutte le pagine HTML

<script LANGUAGE="JavaScript"><!-- Hide this script from incompatible Web browsers! -->document.writeln("<i>Ultimo aggiornamento: ",

document.lastModified)document.writeln("</font></i> ")// Hide this script from incompatible Web browsers! --></script>

Page 21: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 21

Uno script che può essere utile…(1)

#!/bin/bash# La variabile IFS (Input Fields Separator) contiene tutti i caratteri che devono essere# considerati separatori. Siccome nel nostro file i campi sono separati da <TAB>,# definiamo il <TAB> cxome unico separatore possibile (il <CR> lo e' per# definizione).

IFS=" "

echo IFS "$IFS"

NOMEFILE="provaruota"echo '********************************'echo Apertura del File:$NOMEFILEecho '********************************’

# apre il file numero 3 usando un operatore di redirectionexec 3<> $NOMEFILE

Page 22: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 22

Uno script che può essere utile…(2)

# legge la prima riga del file in tre variabiliread primo secondo terzo <&3# cicla con la lettura e la stampa fintanto che $primo contiene qualcosawhile [ $primo ] do echo $terzo # scrive su standard output echo $secondo echo $secondo >> fileuscita echo $primo >> fileuscita echo read primo secondo terzo <&3 # legge la prossima riga done

#chiude il file3<&-

Page 23: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 23

Uno script che può essere utile…(3)

# riapre il file numero 3 e fa le stesse cose di primaexec 3<> $NOMEFILEecho "File" $NOMEFILE "riaperto"

read primo secondo terzo <&3while [ $primo ] do echo $terzo echo $secondo echo $primo echo $terzo >> fileuscita echo $secondo >> fileuscita echo $primo >> fileuscita echo read primo secondo terzo <&3 # legge la prossima riga done3<&-

# termina regolarmenteexit 0

Page 24: Formazione pratica nellambito di moduli professionalizzanti orientati allInformatica del secondo anno di corso della Laurea in Ingegneria dellInformazione.

4 maggio 2004Web programming 24

Non dimenticare…

Di mettere due linee bianche dopo l’intestazione di ogni pagina html generata automaticamente

Di scrivere correttamente l’intestazione:"Content-type: text/html"

Di salvare sempre il lavoro fatto a intervalli il più ravvicinati possibile