Tīmekļa programmēšana
2013. gada rudens semestris
Lekcijas
• Ceturtdien, 16:30 – 19:45
Raiņa bulvāris 29, 413. auditorija
Kontakti
• docente Dr.dat. Alina Vasiļ[email protected]
Kursa materiāli
• Kursa Web lapa• http://ante.lv
LU maģ. "Tīmekļa programmēšana" 2013.g. rudens
Tieša saite: http://ante.lv/web-programming-2013/
• Moodle• http://estudijas.lu.lv • DatZ5008
Google grupa diskusijām• Grupas nosaukums: Web Programming LU 2013
• Grupas mājas lapa: http://groups.google.com/group/web-programming-lu-2013
• Grupa ir paredzēta vispārīgu jautājumu apspriešanai, kas varētu interesēt visus kursa dalībniekus• Praktisko darbu precizējumi• Tehnisko grūtību atrisināšana• utml
Kursa prasības
• 1.praktiskais darbs (obligāts): 30% (25% + 5%), min 15%
• 2.praktiskais darbs (obligāts): 30% (25% + 5%), min 15%
• 3.praktiskais darbs (obligāts): 25% (20% + 5%), min 10%
• Individuālie mājasdarbi (neobligāti): 15% + 15%
• Izvēļu testi (neobligāti): 10%
• Negaidīti mazie mājasdarbi (neobligāti): max 10%
• Konferences (neobligāti): max 10%
Praktiskie darbi
• Darbus var pildīt individuāli, vai divu cilvēku komandās
• Komandas ir jāpiesaka līdz 23.09.2013 pa e-pastu
• Komandas gadījumā katram cilvēkam ir jāpiedalās katra darba izstrādē un jāmāk paskaidrot gan sevis izpildītas uzdevuma daļas, gan arī visu risinājumu kopumā!!!
Praktiskie darbi• 1. PD (30%)• Uzdevums: Java konsoles programma. Datu iegūšana no
tīmekļa (HTTP klients), datu saglabāšana datubāzē.• Termiņš: 11. novembris (check point: 28. oktobris)
• 2. PD (30%)• Uzdevums: Spring MVC tīmekļa portāls• Termiņš: 9. decembris (check point: 25. novembris)
• 3. PD (25%)• Uzdevums: Rich GUI un Ajax tīmekļa portāls• Termiņš: 19. decembris
Praktiskie darbi• Kavējuma sods
• Par katru nokavētu dienu 0,5 punkti tiek atskaitīti:• 10 dienu garumā ‘check point’ gadījumā• 10 dienu garumā gala termiņa gadījumā
• PĒC 10 DIENĀM IESNIEGT VAIRS NEDRĪKST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
• Problēmu gadījumā SAVLAICĪGI informēt pasniedzēju!!!
• Darbus vajadzēs iesūtīt pa e-pastu
• Sesijas laikā visus darbus vajadzēs aizstāvēt klātienē
Praktiskie darbi
• Kavējuma soda piemērs
• Iesniegšanas termiņš = 11.11.2013
• Darbs iesūtīts:
• 11.11.2012 max atzīme = 30
• 12.11.2012 max atzīme = 29,5
• 13.11.2012 max atzīme = 29
• .....
• 21.11.2012 max atzīme = 25
• 22.11.2012 FAILED!!!
Extra credit
• Praktiskajiem darbiem papildus pamata prasībām tiks definēti arī “extra credit” uzdevumi, par kuriem būs iespējams iegūt papildus punktus
• Extra credit uzdevumus drīkst pildīt līdz sesijas beigām• “līdz sesijas beigām” = darbu jāiesūta vismaz 60
stundas pirms nākšanas uz eksāmenu
Individuālas prakt. darbu tēmas
• Ja Jūsu pieredze tīmekļa programmēšanā ir attīstījusies citā virzienā un vēlaties kursa laikā programmēt citas tīmekļa lietojumprogrammas, tad piesakoties pirmajās 2 nedēļās varat piedāvāt savu praktisko darbu virkni
Individuālie mājasdarbi
• Nav obligāti
• Pirmo uzdevumu izlozē – tiks piedāvāti 3 varianti, var izvēlēties kuru pildīt
• Otro uzdevumu var brīvi izvēlēties
• Termiņš – līdz sesijas beigām• “līdz sesijas beigām” = darbu jāiesūta vismaz 60
stundas pirms nākšanas uz eksāmenu
Izvēļu testi
• Būs pieejami Moodle vidē semestra beigās
• Nav obligāti
Negaidīti mazie mājasdarbi
• Iespējams, tiks uzdoti lekciju laikā
• Izpildes termiņš: 1 nedēļa
• Maksimāls punktu skaits, kurus būs iespējams iegūt: 10%
Konferences
• Motivācija:• vairāk iesaistīt studentus mācību procesā • padarīt lekcijas interaktīvākās• dalīties ar pieredzi
• Veltītas konkrētai tēmai• NoSQL datubāzes, MVC ietvari, Ajax ietvari utml
• Studenti veiks 10-15 minūtes ilgas prezentācijas
• Pēc prezentācijām notiks kopēja diskusija
• Maksimāls punktu skaits: 10%
Jautājumi ???
Maģistra darbi
Pieredze: 16 veiksmīgi aizstāvēti vadītie maģistra darbi
1.Visdažādākās tēmas, kas saistītas ar tīmekli un programmēšanu
2.Kvantu skaitļošana
Nāciet runāt...Nāciet runāt...Rakstiet e-pastus... Rakstiet e-pastus...
Kursa saturs
Internets mūsdienās
• Mūsdienās VISI zina kas ir Internets un
VISI izmanto Internetu
• Bet mūs, kā datoriķus, interesē kā veidot tīmekļa lietojumprogrammas
gan mazuļi gan vecmammiņas
Kursa mērķis
• Kursa mērķis ir iepazīties ar dažādām Java un Java Enterprise Edition tehnoloģijām, kas noder tīmekļa lietojumprogrammu veidošanai
Kas ir Kas ir tīmekļa tīmekļa
lietojumprogramma ???lietojumprogramma ???
Kursa saturs (1., 2. lekcija)
• Java programmēšanas valodas svarīgāko elementu pārskats
• Rīki un palīglīdzekļi, kuru izmantošana atvieglo programmētāja dzīvi un darba pieredze ar kuriem ir nepieciešama mūsdienu programmētājam:• Integrētas izstrādes vide Eclipse• Versiju kontroles rīki Git un Subversion• Projektu pārvaldības un būvēšanas rīki Maven un Ant
Kursa saturs (3. lekcija)
• Spring Framework – lietojumprogrammu izstrādes ietvars Java platformai
• Vispārīgs Spring ietvara pārskats
• Spring moduļi
• ”Atkarību injicēšanas” princips (Dependency Injection)
• ”Kontroles inversijas” konteineris (Inversion of Control)
Kursa saturs (4. lekcija)
• HTTP protokols • HTTP klientu programmēšana Java valodā
• Tīmekļa datu apmaiņas formāti• JSON, XML, YAML un citi
• Programmatiskā apstrāde, lasīšana, ģenerēšana
• XML apstrāde: DOM, SAX un citas pieejas
Kursa saturs (5.,6. lekcija)
• Datubāzes piekļuve
• Java Database Connectivity (JDBC)
• Objektu-relāciju attēlojums (Object-Relational Mapping)
• Java Persistence API ietvars
• Java Persistence Query Language (JPQL)
• Hibernate ietvars
Kursa saturs (6.,7. lekcija)
• NoSQL datubāzes• Key-Value Stores
• Document Stores
• Graph Databases
• Multivalue databases
• Object databases
• Spring Data:• Redis (key-value store)
Kursa saturs (7. lekcija)
• Žurnalēšanas ietvars log4j
• Vienību testēšana• JUnit
• Mockito
• Spring Test Framework
Kursa saturs (8. lekcija)
• Pārskata lekcija par moderno tīmekli
• HTML5, CSS3 interesantākie elementi
• Node.js
Kursa saturs (9. lekcija)
• Tīmekļa lietojumprogrammu arhitektūra un darbības pamatprincipi• Tīmekļa serveri, lietojumprogrammu serveri
• Tīmekļa lietojumprogrammas komponenti
• Moduļa (WAR) struktūra
• Tīmekļa lietojumprogrammas konfigurācija (web.xml fails)
• Tīmekļa lietojumprogrammu izvietošana (deployment) uz servera
• Java Enterprise Edition: tīmekļa lietojumprogrammu izstrādes platforma
Kursa saturs (9. lekcija)
• Tīmekļa lietojumprogrammu arhitektūra un darbības pamatprincipi• Tīmekļa serveri, lietojumprogrammu serveri
• Tīmekļa lietojumprogrammas komponenti
• Moduļa (WAR) struktūra
• Tīmekļa lietojumprogrammas konfigurācija (web.xml fails)
• Tīmekļa lietojumprogrammu izvietošana (deployment) uz servera
• Java Enterprise Edition: tīmekļa lietojumprogrammu izstrādes platforma
Kursa saturs (10. lekcija)
• Java Servlet tehnoloģija
• Servlet - Java programma, kas tiek darbināta uz tīmekļa servera, apstrādā HTTP pieprasījumus un veido tīmekļa lapas
Kursa saturs (11. lekcija)
• JavaServer Pages (JSP) tehnoloģija• servera puses Java tehnoloģija, kas ļauj veidot
dinamiski ģenerētas tīmekļa lapas HTML formātā
• JSTL tagu bibliotēka
Kursa saturs (11., 12., 13. lekcijas)
• Spring Web MVC
ietvars tīmekļa lietojumprogrammu izstrādei
• Tīmekļa lietojumprogrammu testēšana• Selenium
• HttpUnit
Kursa saturs (14. lekcija)
• Tīmekļa pakalpes (Web servisi)
• Tīmekļa servisu dažādi izmantošanas stili –
SOA un REST
• SOA tīmekļa servisu standarti – SOAP, WSDL
• RESTful tīmekļa servisi
• Tīmekļa servisu izstrāde ar JAX-WS un JAX-RS lietojumprogrammas saskarnēm
Kursa saturs (15. lekcija)
• Bagātīgas tīmekļa lietojumprogrammas
(Rich Internet Applications)
• Ajax - bagātīgu tīmekļa lietojumprogrammu izstrādes tehnoloģiju kopa
• Comet (Ajax Push)
Kursa saturs (15., 16. lekcijas)
RIA un Ajax ietvari
•Google Web Toolkit ietvars (GWT)
•jQuery bibliotēka