Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle...

35
Introduzione al corso di Tecnologie Web - A.A. 2017/18 Fabio Vitali Corsi di laurea in Informatica e Informatica per il Management Alma Mater – Università di Bologna

Transcript of Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle...

Page 1: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Introduzione al corso di Tecnologie Web - A.A. 2017/18

Fabio VitaliCorsi di laurea in Informatica e Informatica per il ManagementAlma Mater – Università di Bologna

Page 2: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Introduzione

Oggiesaminiamoinbreve:– Informazionipratichesulcorso– Icontenutidelcorso– L’organizzazionedelprogetto– Latipologiad’esame

Page 3: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Docentedellelezioni

• FabioVitali

• Ricevimento:– Primaedopolalezione– Oppurepere-mail:[email protected]

Page 4: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Altrelezionidapartedi

• AngeloDiIorio<[email protected]>• MehwishAlam<[email protected]>

Page 5: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Orariodellelezioni(1)

L'orariodellelezioniè:– Lunedì,13:00-16:00,AulaM1(Mineralogia)– Venerdì,15:00-18:00,AulaM1(Mineralogia)

Èuncorsoda56ore,24orediteoriae32dilaboratorio.Organizzatein6orelasettimana,suunarcodi12settimane

Page 6: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Piccolecuriositàmatematiche

12x6=72

72– 56=16

cioèfare56oreinunospaziodi72lascia16oredimargineQuestosignificacheabbiamounpo'dimarginepergestireimprevisti,malattieescioperivaricheinvariabilmenteaccadonodilunedìovenerdì.

Page 7: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Organizzazionedellelezioni

• Lezioniditeoria(inaula)

• Lezionidiesercitazione(inaulaconvostriportatili)– L'aulaNONHAABBASTANZAPRESEELETTRICHEPERTUTTI.

– Portatevidelleciabatteelettriche

Page 8: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

SitoWebdelcorso(1)

Ilsito(anzi,ilwiki)http://vitali.web.cs.unibo.it/TechWeb18

conterrà:– LucidiPowerPointePDF– Annuncivari– Linkadocumentidisponibilisurete

Page 9: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Lelezioni

Organizzazionedellelezioni– Sulucidiimmediatamenteadisposizione– Autonomeecomplete(ognilezioneunargomentodiverso- circa)

– Enfasisulsignificatodelletecnologie,piuttostochesuglistrumenti

– Indicazionedellabibliografia• utilizzataperilucidi(testonormale)• suggeritaperchivolesseapprofondire(testocorsivo)• richiestaperl’esame(testocorsivoegrassetto)

Page 10: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Il w

eb d

ei d

ati

Il w

eb d

ei d

ocum

enti

Il w

eb d

ei p

rogr

amm

i

Le b

asi

Argomentidellelezioni

HTTPURI

Codificadeicaratteri

XML

CSSHTML

Markup

Server-sideNodeJsClient-sideJavascriptJS frameworkWeb ServiceREST

Linked DataOntologie

SPARQL

RDF

Page 11: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Com'èfattol’esame

• E’ necessariopartecipareadunprogettoperteamdurantel’anno.

• L’esameconsistein:– Valutazioneoraledelcontributopersonalealprogetto

• Sfruttaletecnologiespiegatenelcorso• Evidenziaiproblemidimashup tratecnologiediverse

– Compitoscrittodi5/6domande.– Oraleincasieccezionali

Page 12: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

ValutazionedelleproveScrittieprogettivengonovalutatiintrentesimi.

– Loscrittopesal'80%delvotofinale– Ilprogettobasepesail30%delvotofinale– L'aggiuntadifunzionalitàfacoltativeportailpeso

finoal40%delvotofinale

Siam ilvotodelloscrittoen ilvotodelprogetto,siap ilpesodelprogetto(p∈ [0.3,0.4]),ilvotofinalesaràdatoda:

0.8*m +p*nAdesempio,prendendo27alloscrittoe28alprogettobaseilvotofinalesarà:

0.8*27+0.3*28=21.6+8.4=30

Page 13: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Ilprogettodel2018

• Quest'annocisaràunprogettoinduelivelli.• Livellostandard:dirapidaesecuzione,richiedepocaprogrammazioneepuòesseresvoltodaungruppoddue/trepersoneconunasettimanadilavoro

• Livelloavanzato:richiedeunpo'disforzo,èilpiùstimolanteintellettualmente,epuòesseresvoltoinduesettimanedaunteamditre/quattropersone.

Page 14: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Appellid'esame

• Unoainiziogiugnoperchivuolefarelevacanzelungheeperchièindebitodall'annoscorso

• Unoametàgiugno,incuimiaspettoMOLTIdivoi,unoainizioluglioeunoametàluglio(nellasettimanadelletesi).

• Unoasettembre(richiestadiateneo)• Unoagennaio2019eunoafebbraio2019

Page 15: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Organizzazionedeiteam• Ognipersonadecideinanticiposeèinteressataasostenere

l'esameinestate,autunno,sessionestraordinariaoindeciso.• Tuttiglistudentisidividonointeamdi2persone(progetto

standard)oppure3-4persone(progettoavanzato).Nonsonoaccettatigruppidipiùdi4persone.Nonsonoaccettatiprogettisingolitranneeccezioniestremeebengiustificate.

• Ogniteamportailprogettoinsieme(noncisonoeccezioni!).Ilteamdichiarainanticipolanaturadelcontributodiciascunmembrooppureaccettachechiunquesiainterrogato(eneldettaglio!)sututtoilprogetto.

• Appositestrutturedati(sulwikidelcorso)vengonotenuteaggiornateconilnumero,nomeecomponentidiogniteam,eperiodoprevistodiesame.

• Iononsonocoinvoltonell'organizzazionedeiteam.

Page 16: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

PallinideldocenteIngenerale– HTMLbisognasaperloebasta(Nota:nonverràspiegatoneldettagliocheverràrichiesto)

– C’èenfasisulwebcomeproduttoredicontenutiesull’approcciodichiarativo.

– Ilcontentmodelmistoèutile– Giustocompromessotracompetenzapraticaestudioteorico– Ilprogettonon forniscetuttelecompetenzeperpassarel’esame.Neiprogetti– Ilriuso(dicodice,principi,approcci,architetture)èimportante– L'interoperabilitàèimportante– Iportapizzenonsonotollerati– Glismanettonisonopremiatisolosehannoanchestudiato

Page 17: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Leparolechiavedelcorso

• Interoperabilità• Standard• Mashup• Dichiaratività• Semanticità

Page 18: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Standardeinteroperabilità• Laprimainformaticaeracontentadiunun’applicazioneche

funzionasseebasta.• Coniltemposisonointrodotticoncettidiqualità

dell’implementazione:efficienzanell’usodellerisorse,complessitàcomputazionale,gestibilitàneltempodelcodicesorgente,usabilità,utilizzoappropriatodellelibrerie,ecc.

• Anoiinteressal’interoperabilità,unnuovoaspettodellaprogettazione:nonsolocheilprogrammafunzioniechefunzionibene(perinterpretazionispecifichedi“bene”),machefunzioniconaltriprogrammidellostessotipo.

• Laidentificazionedeistandardappropriati,lacorrettaimplementazionedeglistessi,l’identificazionedisemprenuoveepiùpreciseareediinteroperabilitàsonoconcettifondamentaliperquestocorso

Page 19: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Mashup

• Larealizzazionedisiti,applicazioni,serviziWebrichiedelapadronanzadiunaltonumerodiconcetti,linguaggi,protocolli,ciascunodeiqualièspessosemplice,espressivo,potente.

• Ladifficoltàinquestocasoètrovareilmodopercombinareecongiungerequesticoncettiecc.inunacostruzioneampiaecomplessa,cheforniscaserviziancorapiùsofisticatidiquellideicomponentibase.

• Questoèquellocheintendiamopermashup

Page 20: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Dichiaratività• Laprogettazioneimperativaoproceduraleprevedelaesplicitasomministrazionediistruzioniadunamacchinaubbidienteecieca.– Questoportaconséinevitabilmenterischieproblemi(sintattici,semantici,ecc.)

– Unerroreproceduraleinterrompel’esecuzione.

• Laprogettazionedichiarativadescrivestatiinizialiefinalidiunmondoastratto– Unmeccanismoesistentegeneralacomputazionechepermettelatransizionedallostatoinizialealfinale

– Unerroredichiarativoportaadunostatofinalenondesiderato,nonadun’interruzione.

Page 21: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Semanticità

• Ilwebnonèpiù(nonèmaistato)ilmondodellavisualizzazionepuraesemplicediinformazionitestualio,peggio,strutturate.

• Leinformazionisignificano,eattivanoruoli,funzioni,processirilevantiedipendentidallaloronaturaedallorocontenuto.

• Un'applicazionesemanticafamoltodipiùchevisualizzare:collega,attiva,rendeeseguibilileinformazioniinmanierariccaecomplessa.

Page 22: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Ilprogetto

• UnsistemaVERO,chefunzionaefacoseutili• Realizzabilesiainlaboratoriocheacasa.• Enfasiinpartesullaprogrammazione(approccioprocedurale)masoprattuttosuidocumentiattivi(approcciodichiarativo)

• Enfasisulmashupditecnologieesistentiesofisticate

Page 23: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

AlphaTube - UnsistemadiraccomandazioniperYouTube

Page 24: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Losviluppatoresoftwareneglianni'10

• Losvilupposw piùsorprendenteedevidentedegliultimiannièlanascitadiinnumerevolistrumentiperilprogrammatore,concuirealizzareservizisofisticati

• Framework:invecedisceglierenuovilinguaggidiprogrammazione,siusanooralibreriepergliscopipiùdisparati,facilmenteintegrabiliemescolabilitraloro

• API(ApplicationProgrammingInterfaces):invecedisviluppareapplicazionimonolitichechesvolgonoservizicomplessiinun'unicamaniera,sifornisconomeccanismidimanipolazionedellestrutturedatifondamentalieaccessoaglialgoritmipiùsofisticatiperapplicazionisviluppatedaiclienti.

• Questopermetteincredibilesofisticazione,grandecomponibilità,erapiditàdisviluppoprecedentementeirraggiungibili.

Page 25: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

LeAPI

• LeAPIcheciinteressanosonoquellechevannosottoilnomediRESTful API,ovverochesfruttanoalmegliolanaturadiHTTPedegliURI(iprotocollipiùimportantidelweb)perfornireiloroservizi.

• UnaAPIRESTful fornisce:– UnURIbaseacuiaccedereperottenereiservizi– UnasintassidegliURIdelleentitàinterrogabiliemodificabili– Unmediatype attraversocuiottenereeforniredatidautilizzareneiservizi

forniti(adesempioXML,JSON,etc.)– Unasemanticaassociataall'usodeivariverbiHTTP(GET,PUT,POST,DELETE)

attraversoiqualiattivareeeseguireiserviziofferti.

• Ladocumentazionediun'APItipicamentedescriveneldettaglionomi(URI),verbi(comandiHTTP)eformati(InternetMediaType)perogniserviziofornito.

Page 26: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

AlphaTube

AlphaTubeèunprogettoperlarealizzazionediunambientecomplessoincuiaccederemescolandodatidiservizidiversi:

Allabasec'èilVisualizer,chepermettedivisualizzareinmanierainteressantevideo(ades.musicali)edatirecuperatidaWikipediasuartista,canzone,albumvisualizzato.Inaggiuntac'èilRecommender,chemostraalcunivideo"collegati"aquelloinvisualizzazioneepermettedicreareunplaylist deiprossimivideo.IlRecommender suggerisceivideosullabasediunalgoritmodicomplessitàcrescente,basatoinizialmentesolosuomogeneitàdiartista,album,titolo.IlRecommender avanzatoutilizzamodellicomplessidicrowdsourcing,semantic webesocialnetworkpercreareunsistemadisuggerimentipiùsoddisfacenteepersonalizzato.

Intuttiicasi,loscopoèstudiarealcuneAPIdiservizidisponibilionlineecreareun'applicazionewebcheaccedaaquestidatiinmanieradinamica,conunarappresentazionevisivainunapaginaweb.

Page 27: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Illavoroditeam

• Tuttiimembrideiteamsonotenutialavorareelavorareinsieme.

• E'meglioessereparteattivadiunprogettomediocrechepassivadiunprogettomeraviglioso.

• Nonsarannotolleratiiportatoridipizze• Miriservoall'esamediscoprireilcontributoindividualediciascuno,indipendentementedallabontàdelprogettoconsegnato.

Page 28: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Attenzioneaglianti-pattern

• Durantelafasedianalisidelprogetto,saràmiacuraverificarechenonsianostatefattesciocchezzeimplementative,inparticolareanti-pattern(http://en.wikipedia.org/wiki/Anti-pattern).

• Alcunianti-patterndaevitareassolutamente:– CargoCultprogramming– Coding byexception– CopyandPasteprogramming– HardCode– MagicNumbers andStrings– Reinventing thewheel

Page 29: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Unanti-patterninpiù

Nonesistequestopatterntraquellinotiinletteratura,madovrebbeesistere.Iolochiamo

Giocareapokerconquattrocarte• Quattrocartebastanoperfarepoker.Quindiinteoriaioposso

lasciareunadellecinquecartesultavoloeprovareafarepokersoloconleprimequattro.

• Questopatternlosivedetraglistudentiquandoprovanoarealizzareilprogettoconforzabrutasenzaimmaginarsicheesisteunlinguaggio,unprotocollo,unAPIchecopreesattamentequelruolosenzabisognodireinventarselo.

• L'esempiodiJQuery

Page 30: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Quandodarel'esame• Ognunodevedeciderealpiùprestoinqualesessionedarloe

seriamenteimpegnarsipermantenerequestadecisione.• Idealmente:

– Estate 75-100%,– Autunno 20-0%,– Inverno 5-0%,– Indecisi 0 %.

• Quattroappelliagiugno/luglio,unoasettembre,dueagennaio/febbraio.

• Chipresentailprogettoentrofebbraio2017,anchesenonriesceadareloscritto,nondeverifareilprogettomasolostudiareilnuovoprogramma.

• Chinonriesceaportareilprogettoperfebbraio2017deveprepararsiconilnuovoprogrammaerealizzareilnuovoprogetto

Page 31: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Suggerimentiperl'esame

• Veniteallapresentazioneconilprogettochefunziona.Senonvaiovifacciotornare.Perquestopreferisco– vederviunasettimanadopol'appelloconilprogettochefunziona

• piuttostoche– perderetempoconlapresentazionediunprogettochenonva,– mandarviviainlacrime,e– vederviunasettimanadopol'appelloconilprogettochefunziona

• Venitealloscrittoavendolopreparato.Nonc'ènientedipiùirritantedivedereragazzisvegliecompetenti(visiriconosce)cheprendono8o10alloscrittoperchécihannosoloprovato.

• Loscrittononèdifficileperchihastudiato,èimpossibileperchinonl'hafatto.

Page 32: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Flessibilitàdelcorso

• Provascrittaeprovadiprogettosonoindipendenti.– Ilprogettoèsempredigruppo– Loscrittoèsempreindividuale

• Poteteprovareloscrittotuttelevoltechevolete– Ilvotoprecedenteverràcancellatosoloseconsegnateunnuovoscritto– Gliscrittisonosoloalledatedegliappelliufficiali

• Potetepresentareilprogettotuttelevoltechevolete– SoloselodecideconsensualmenteTUTTOILGRUPPO– Poteteritirarvidallapresentazionedelprogettoinqualunquemomento

etornareunasettimanaoduedopoconlecorrezionicheriteneteopportune.

Page 33: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Rigiditàdelcorso(nessunaeccezionepernessunmotivo)

• Ilprogettodevefunzionare.Completamenteedesattamente.• Ilprogettodeverisiederesuunamacchinadeldipartimento.• SevoleteinstallarelibrerieeSWspecialiperilprogetto,

verificateprimachequestosiapossibilesullemacchineesuisistemioperativioffertidaldipartimento

• IlprogettodevevenirepresentatodatuttoilgruppoinsiemeInviaeccezionaleèaccettabilecheunapersonasiacollegataviaskype.Innessuncasoèaccettabilechesipresentiinunadataunapartedelgruppoeinunadatadiversaglialtri.

• Nonusatetecnologiecherichiedanocompilazionioprocedurecomplessediaggiornamentodelcodiceeseguito.Deveesserepossibileaprireunfilesulserveremodificarloalvolodurantelaprova.

Page 34: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

Conclusioni

• IlcorsodiTWvuolecoprirealcuniaspettifondamentalidelletecnologieedeglistandardconnessiconilWorldWideWeb.

• Ilprogettovuoledareun’ideadellavorod’équipeedelfunzionamentodeiteamdistandard,oltreafarprovareconmanol'applicazionedeglistandardstessi.

Page 35: Introduzione al corso di Tecnologie Web -A.A. 2017/18 · meccanismi di manipolazione delle strutture dati fondamentali e accesso agli algoritmi più sofisticati per applicazioni sviluppate

www.unibo.it

Fabio Vitali

Dipartimento di Informatica – Scienze e IngegneriaAlma mater – Università di Bologna

[email protected]