A tantárgy adatlapja
1. A képzési program adatai
1.1 Felsőoktatási intézmény	Babeș-Bolyai Tudományegyetem	
1.2 Kar 	Matematika és Informatika Kar 	
1.3  Intézet	Magyar Matematika és Informatika Intézet	
1.4 Szakterület	Informatika	
1.5 Képzési szint	alapképzés	
1.6 Szak / Képesítés	Informatika – magyar vonal	

2. A tantárgy adatai
2.1 A tantárgy neve	Webprogramozás	
2.2 Az előadásért felelős tanár neve	dr. Ruff Laura-Ildikó, adjunktus	
2.3 A szemináriumért felelős tanár neve	drd. Bócsi Botond, tanársegéd	
2.4 Tanulmányi év	III.	2.5 Félév	I.	2.6. Értékelés módja	vizsga	2.7 Tantárgy típusa	kötelező	

3. Teljes becsült idő (az oktatási tevékenység féléves óraszáma)
3.1 Heti óraszám	4	melyből: 3.2 előadás	2	3.3 szeminárium/labor	0/2	
3.4 Tantervben szereplő össz-óraszám	56	melyből: 3.5 előadás	28	3.6 szeminárium/labor	0/28	
A tanulmányi idő elosztása:	óra	
A tankönyv, a jegyzet, a szakirodalom vagy saját jegyzetek tanulmányozása	14	
Könyvtárban, elektronikus adatbázisokban vagy terepen való további tájékozódás	14	
Szemináriumok / laborok, házi feladatok, portofóliók, referátumok, esszék kidolgozása	30	
Egyéni készségfejlesztés (tutorálás)	7	
Vizsgák	4	
Más tevékenységek: ..................		
3.7 Egyéni munka össz-óraszáma	69	
3.8 A félév össz-óraszáma	125	
3.9 Kreditszám	5	

4. Előfeltételek (ha vannak)
4.1 Tantervi	•	Nincs	
4.2 Kompetenciabeli	•	Java programozási alapismeretek	

5. Feltételek (ha vannak)
5.1 Az előadás lebonyolításának feltételei	•	Vetítő, (Internet-kapcsolat)	
5.2 A szeminárium / labor lebonyolításának feltételei	•	Számítógépekkel felszerelt laborterem, a gépeken: Java, hozzáférés Apache Tomcat webkonténerhez, MySql szerverhez, PHP értelmezőhöz	

6. Elsajátítandó jellemző kompetenciák
Szakmai kompetenciák	
•	Webprogramozás alapfogalmainak ismerete és helyes használata
•	Fontosabb web-technológiák ismerete, ezek alkalmazása korszerű webalkalmazások fejlesztésére
•	Egy konkrét típusú feladat megvalósítására leginkább megfelelő web-technológiák megválasztásának képessége	
Transzverzális kompetenciák 	
•	Ismert elemek kreatív módon való integrálásának készsége
•	Hatékony információkeresés készsége egy adott feladat megoldásának érdekében	

7. A tantárgy célkitűzései (az elsajátítandó jellemző kompetenciák alapján)
7.1 A tantárgy általános célkitűzése	•	a web-programozásban használt alapfogalmak, eszközök, elterjedtebb kliens-, illetve szerveroldali technológiák megismerése
	
7.2 A tantárgy sajátos célkitűzései

	
•	a különböző web-technológiák működési mechanizmusának megismerése, a korszerű web-technológiák körében való tájékozódási készség elsajátítása
•	a web-programozással kapcsolatos eszközök felhasználása korszerű web-alkalmazások készítésére	

8. A tantárgy tartalma
8.1 Előadás	Didaktikai módszerek	Megjegyzések	
1.	hét

Bevezetés:
A web története, komponensei
kliens-szerver architektúra
különbség statikus illetve dinamikus HTML oldal lekérése között
Alapfogalmak:
URL
MIME típusok
HTTP protokoll
Kliens- illetve szerver oldali technológiák
áttekintés, általános jellemzők	Előadás, vetítés, korábbi ismeretek aktivizálása		
2.	hét

Statikus HTML/XHTML oldalak
történet, felépítés
Egymásba ágyazható stíluslapok (CSS)	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
3.	hét

Kliens oldali script nyelvek - JavaScript
HTML Document Object Model (DOM)
JavaScript	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
4.	hét

Szerver oldali technológiák - PHP
Szerver oldali script nyelvek jellemzői
PHP
Általános jellemzők 
Formkezelés, állománykezelés, adatbázis-hozzáférés
Sütik (cookie) használata, szessziókövetés	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
5.	hét

Java Web-technológiák-beveztés
MVC elv 
általánosan
különbség desktop- illetve Web-alkalmazásban való használata között
alkalmazása Java alapú Web-alkalmazások esetén
(áttekintés a JSP-ről szóló kurzusban)
Java EE (lényeg: Web-alkalmazásokkal kapcsolatos rész)
Java EE alkalmazás elkészítésének fázisai
Többrétegű Java EE Web-alkalmazások
Web-kliens
Web-komponensek
Konténer típusok
JavaBean-ek (JSP-ről szóló kurzusban is szerepel) 
Java alapú Web-alkalmazások
Web-alkalmazás életciklusa (elkészítés fázisai)
Web-modul (Web-alkalmazás) szerkezete	Előadás, vetítés, grafikus ábrázolás, magyarázat, gyakorlati példákon keresztül történő szemléltetés		
6.	hét

Java servlet technológia
Mikor/mire használjuk
Életciklusa
Nyilvános hatókörű objektumok (public scope objects)
Service metódusok
Servlet map-elés web.xml-ben
Kliens-állapot megőrzése (szessziókövetés)
Kérés/válasz szűrése
Más web-erőforrás hívása (include, forward)	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
7.	hét
JSP technológia
JSP életciklusa
Szkript elemek
Implicit objektumok
(Bean-ek ismét, illetve ezek használata JSP oldalon)
Kifejezés nyelv (Expression language)
include direktíva, illetve jsp:include, jsp:forward elemek	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
8-9. hét
JSP elemkönyvtárak
JSP standard elemkönyvtár (JSTL)
Alap elemkönyvtár
Nemzetköziesítés
Saját elemkönyvtárak (custom tags)
Előnyei
Fejlesztése
Saját elem definiálása
Könyvtárleíró létrehozása
Saját elem használata	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
10. hét
JDBC adatbázis-hozzáférés
Kapcsolat objektum lekérésének módjai
SQL parancsok küldése
Válasz feldolgozása
Tranzakciók
Megj.: hangsúly a web-alkalmazás specifikus problémákon	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés, más tantárgy kapcsán szerzett ismeretek aktivizálása		
11. hét
AJAX technológia
Aszinkron kommunikáció kliens és szerver között - alternatívák
AJAX technológia működése
AJAX keretrendszerek	Előadás, vetítés, gyakorlati példákon keresztül történő szemléltetés		
12. hét
Struts2 keretrendszer
Keretrendszerek szerepe, jellemzői
Struts2 keretrendszer
Action osztály
Interceptorok
OGNL	Előadás, vetítés, gyakorlati példán keresztül történő szemléltetés		
13. hét
RIA (Rich Internet Application) alkalmazások
Általános ismertető
Adobe-Flex keretrendszer	Előadás, vetítés, példák		
14. hét
ASP.NET – ismertető	Előadás, vetítés, példák		
Könyvészet
1.	Robert W. Sebesta, Programming the World Wide Web, 6/E, Addison-Wesley, 2011  
2.	Antal Margit, Java alapú webtechnológiák (Java Web Programming), Cluj-Napoca, Scientia, 2009 
3.	Boian F. M., Programare distribuită în Internet; metode si aplicații. Ed. Albastră, Microinformatica, Cluj, 2005
4.	Boian F. M., Boian R. F., Tehnologii fundamentale Java pentru aplicații Web. Ed. Albastră, Microinformatica, Cluj, 2005
5.	Marty Hall and Larry Brown, Core Web Programming, Sec. Ed. Prentice Hall, 2001
6.	Marty Hall and Larry Brown, Core Servlets and JavaServer Pages, Sun Microsystems Press, 2004 (Free Online Version of Second Edition - http://pdf.coreservlets.com/)
	
8.2 Szeminárium / Labor	Didaktikai módszerek	Megjegyzések	
1-2. Statikus HTML oldal + stílusállomány használata (CSS)	házi feladatok megbeszélése/ bemutatása/hibajavítás, fakultatív pluszfeladatok		
3-4. HTML Form + JavaScript 			
5-6. PHP 			
7. Servlet technológia 			
8. JSP technológia 			
9. JSP Elemkönyvtárak 			
10. JDBC adatbázis hozzáférés 			
11. AJAX technológia 			
12. Egyéni projekt			
13-14. Projekt bemutatása      			
Könyvészet	
1.	W3Schools Online Web Tutorials, http://www.w3schools.com
2.	PHP hivatalos oldala - http://www.php.net
3.	Java EE - http://docs.oracle.com/javaee/
4.	Struts2 home page - http://struts.apache.org/2.x/ 

9. Az episztemikus közösségek képviselői, a szakmai egyesületek és a szakterület reprezentatív munkáltatói elvárásainak összhangba hozása a tantárgy tartalmával.

•	A tantárgy tartalmazza a webprogramozásban jelenleg használt fontosabb technológiák elsajátításához szükséges alapismereteket, átfogó képet nyújt a korszerű webtechnológiákról.

10. Értékelés
Tevékenység típusa	10.1 Értékelési kritériumok	10.2 Értékelési módszerek	10.3 Aránya a végső jegyben	
10.4 Előadás 	Válasz helyessége	Rövid teszt kurzusonként (T)	25%  	
	Webprogramozással kapcsolatos alapfogalmak ismerete és ezek alkalmazása	Írásbeli vizsga (V)	20%	
10.5 Szeminárium / Labor	Program helyessége, határidő betartása, feladat bemutatása	Labor-házifelafdatok (L)	35%	
	Labor idején megoldott, helyesen működő program, bittologatók előadás/részvétel, nem tanult web-technológiák alkalmazása a projektben	Pluszpontok (pluszfeladatok, bittologatók, nem tanult webtechnológiák használata) (PP)		
	A tanult web-technológiák helyes használata	Web-projekt (P)	20%	
10.6 A teljesítmény minimumkövetelményei	
•	elméleti vizsgán (V) elért min. 20 pont (a lehetséges 40-ből)
•	min. 20 pontot érő, működő projekt
•	nincs 2-nél több indokolatlan, laborórákról való hiányzás
•	vizsgajegy  ≥ 5, ahol vizsgajegy=  (T+L+V+P+PP)*0.05 	

Kitöltés dátuma			Előadás felelőse			Szeminárium felelőse
2012.09.18.				...............................			...................................
Az intézeti jóváhagyás dátuma				Intézetigazgató	
..........................						..........................