Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă

FISA DISCIPLINEI

Codul
Denumirea disciplinei
MLR5015 Programare Web
Specializarea
Semestrul
Ore: C+S+L+P
Statutul
Informatică
5
2+0+2+1
obligatorie
Titularii de disciplina
Lect. Dr. BUFNEA Darius Vasile,  bufnycs.ubbcluj.ro
Lect. Dr. STERCA Adrian Ioan,  forestcs.ubbcluj.ro
Lect. Dr. RUFF Laura Ildiko,  lauracs.ubbcluj.ro
Lect. Dr. VASZI Attila
Obiective
- Familiarizarea studentilor cu principalele concepte, tehnologii atât client side cât si server side precum si cu instrumentele cel mai des folosite în programarea web;
- Utilizarea elementelor de mai sus în proiectarea site-urilor web de generatie recenta.
Célkitűzések
a web-programozásban használt alapfogalmak, eszközök, elterjedtebb kliens-, illetve szerveroldali technológiák megismerése
a fenti elemek felhasználása korszer? web-alkalmazások készítésére
Aims
The main purpose of this course is to introduce students to modern techniques for web programming using both server-side and client-side technologies. The course is meant as an introductory course in web technologies, discussing only the basics of most common tools for web developement and leaving out advanced server-side frameworks/containers and middleware for web-based enterprise business applications
Continutul
Curs:

1. Introducere în HTML. Structura unui document HTML. Taguri de baza.
2. Formulare Web.
3. Protocolul HTTP. Metodele GET, POST
4. CGI (Common Gateway Interface)
5. JavaScript
6. Document Object Model
7. CSS (Cascade Style Sheets)
8. Ajax
9. PHP
10. Accesarea bazelor de date (MySQL) folosind PHP
11. Aplicatii Web Java
12. Java Servlets
13. JSP (Java Server Pages)
14. ASP (Active Server Pages)

Laborator:

1. Introducere în limbajul HTML. Prezentarea structurii unui document HTML si a celor mai importante taguri. Fiind prima activitate didactica de tip laborator, studentii trebuie doar sa exerseze si sa reproduca exemplele prezentate de cadrul didactic.
2. Prezentarea formularelor Web si a controalelor Web de tip input asociate. Tema de laborator: Reproducerea cât mai fidela folosind tag-urile de baza a unui site cunoscut.
3. Prezentarea din partea cadrului didactic a protocolului HTTP cu exemple practice.
4. Tema de laborator: CGI ca prima tehnologie server-side.
5. Tema de laborator: Tehnologii client side: JavaScript.
6. Tema de laborator: Mecanisme JavaScript avansate: Document Object Model (DOM). DHTML
7. Prezentarea tehnologiei Cascade Style Sheets. Tema de laborator pe baza acestei tehnologi.
8. Prezentarea unor exemple pe baza tehnologiei AJAX. Combinarea pe baza acestei tehnologi a tehnologiilor server side si client side însusite deja.
9. Prezentarea functiilor de baza ale limbajului PHP ca prim limbaj de scripting evoluat server side. Tema de laborator pe baza tehnologiei AJAX si a tehnologiei PHP pentru partea server side.
10. Accesarea bazelor de date (MySQL) folosind PHP. Demonstratii practice din partea cadrului didactic. Tema de laborator.
11. Prezentarea structurii aplicatiilor Web Java. Instalare si configurare container de aplicatii. Studiu de caz: Tomcat.
12. Tema de laborator Java Servlets.
13. Tema de laborator Java Server Pages. Prezentarea unor facilitati avansate JSP precum Custom Tags.
14. Predarea ultimelor laboratoare din partea studentilor. Încheierea activitatii didactice. Masuri organizatorice în ceea ce priveste examenul final din sesiunea de examene.

Proiect:

Pe parcursul întregului semestru, studentii care frecventeaza cursul de Programare Web vor trebui sa-si creeze o pagina personala pe sistemele server puse la dispozitie de facultate, pagina în care sa fructifice toate tehnologiile însusite la acest curs. Aceasta pagina va fi analizata din mai multe perspective, astfel:
tehnologiile client-side folosite (HTML, JavaScript);
tehnologiile server-side folosite (PHP, JSP, Servlet, ASP), comunicarea server side cu servere de date;
continutul, designul si aspectul.
O cerinta speciala este dezvoltarea acestei pagini personale treptat pe masura însusirilor tehnologiilor de catre student. Cadrul didactic va acorda o atentie sporita dezvoltarii graduale a paginii si a evolutiei continutului acesteia pe parcursul semestrului.
Tartalom
El?adás
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
HTTP protokoll
Kliens- illetve szerver oldali technológiák
áttekintés, általános jellemz?k
2. hét
Statikus HTML/XHTML oldalak
történet, felépítés
3. hét
Egymásba ágyazható stíluslapok (CSS)
4. hét
Kliens oldali script nyelvek - JavaScript
HTML Document Object Model (DOM)
JavaScript
5. 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
6. 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
7. 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
8. 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)
9. 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
10-11. hét
JSP elemkönyvtárak
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
JSP standard elemkönyvtár (JSTL)
Alap elemkönyvtár
Nemzetköziesítés
12. 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
XML feldolgozás
XML oldal felépítése
XML feldolgozók (DOM, SAX)
13. hét
Struts2 keretrendszer
Keretrendszerek szerepe, jellemz?i
Struts2 keretrendszer
Action osztály
Interceptorok
OGNL
14. hét
RIA (Rich Internet Application) alkalmazások
Általános ismertet?
Adobe-Flex keretrendszer
Laborgyakorlat-témák:
1-2. Statikus HTML oldal + stílusállomány használata (CSS)
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
Egyéb információk a tantárgy honlapján: www.cs.ubbcluj.ro/~laura/webprg
Content
Course (2 hours per week)
Week 1. WWW history and concepts
Week 2. HTML – HyperText Markup Language
Week 3. HTTP – HyperText Transfer Protocol
Week 4. CSS – Cascading Style Sheets
Week 5. XML languages
Week 6. DOM – Document Object Model
Week 7. Javascript
Week 8. Server-side technologies: CGI (Common Gateway Interface)
Week 9. AJAX
Week 10. Server-side technologies: PHP.
Week 11. Server-side technologies: JSP and Java servlets
Week 12. Server-side technologies: ASP .NET
Week 13. Advanced client-side frameworks (overview): Jquery and GWT (Google Web Toolkit)
Week 14. SEO – Search Engine Optimization. Web security: cross site scripting and SQL injection.

Laboratory (1 hour per week)
Week 1. Introduction to WWW
Week 2. The main tags of HTML
Week 3. Clonning a famous web site (using only HTML, without CSS)
Week 4. Frames and iframes.
Week 5. CSS
Week 6. Javascript and DOM (DHTML)
Week 7. XML and XSLT.
Week 8. CGI.
Week 9. AJAX and PHP.
Week 10. Java servlets and JSP
Week 11. Asp .Net
Week 12. Jquery.
Week 13-14. Project delivery.

Project:
The students must develop throughout the semester a personal home page that uses both server side and client side technologies. The developed home page must also use some data base access middleware technology.
Bibliografie
1. Anghel T. Dezvoltarea aplicatiilor web folosind XHTML, PHP si MySQL. Editura Polirom, Iasi, 2005
2. Boian F. M. Programare distribuita în Internet; metode si aplicatii. Editura Albastra, MicroInformatica, Cluj, 2005
3. Boian F.M., Boian R.F. Tehnologii fundamentale Java pentru aplicatii Web. Editura Albastra, MicroInformatica, Cluj, 2005
4. Buraga S. Tehnologii web. Editura Matrix Rom, Bucuresti, 2001
5. Buraga S. Proiectarea siturilor web. Editura Polirom, Iasi, 2002
6. Castro E. HTML for the World Wide Web with XHTML and CSS. 5’th edition, Visual QuickStart Guide, 2004
7. Hall M., Brown L. Core web programming. 2nd edition. Prentice Hall, 2001
8. Negrino T., Smith D. JavaScript for the World Wide Web. 4th edition, Visual QuickStart Guide, 2001
9. Varlan C. Macromedia FLASH; concepte, exemple, studii de caz. Editura Polirom, Iasi, 2004
10. W3Schools Online Web Tutorials, http://www.w3schools.com
11. http://www.php.net
12. http://www.java.sun.com
Evaluare
Nota finala se calculeaza dupa urmatoarea formula:

NotaFinala = 40%Laborator + 40%ExamenPractic + 20%ProiectIndividual

Proiectul individual consta în elaborarea de catre student a unei pagini personale proprii care sa fie bazata atât pe tehnologii web client side cât si server side, precum si cu tehnologii midleware de conectare la baza de date. Examenul final este un examen practic în cadrul caruia în paginile dezvoltate în timpul examenului studentul trebuie sa si raspunda la anumite întrebari teoretice. Nota de la laborator consta în media aritmetica cu care sunt notate activitatile practice de laborator rezolvate de student pe parcursul semestrului. Pentru promovare fiecare din cele trei componente ale notei finale trebuie sa fie cel putin 5.

Informatii actualizate despre curs se pot obtine la adresa: http://www.cs.ubbcluj.ro/~bufny/index.php?view=pw/pw.php
Felmérés
A végs? jegyet az (összegy?jtött összpontszám)/10 adja, ahol
az összegy?jtött összpontszám a következ?t jelenti:
A végs? jegy kiszámításánál figyelembe vett pontokat három különböz? módon lehet összegy?jteni:
1. elméleti vizsga: max. 40 pont
2. projekt: a követelményeknek való maximális megfelelés esetén 40 pont (illetve további pluszpontokat lehet szerezni)
3. az évközi tevékenység során összegy?jtött pontszámból (laborházik, kurzuson szerzett pontok, pluszpontok), ami 80% fölött van, az hozzászámít a végs? jegyhez (1% 1 vizsga-pontnak felel meg)
Részletek az alábbi címen:
http://www.cs.ubbcluj.ro/~laura/webprg/olvass_el.htm
Assessment
The final mark is computed by using the following formula:

FinalMark = 40%LabsMark + 40%FinalPracticalExamMark + 20%IndividualProjectMark

The individual project is a semester project developed by each student. The students must develope a personal home page that uses both server side and client side technologies. The developed home page must also use some data base access middleware technology.

The final exam it is a practical one consisting from some theoretical questions and small tasks concerning client-side and server-side web technologies.

The lab mark is the average of the marks the student gets on the labs resolved during the semester.

In order to successfully pass this class, each of the above marks must be at least five.

The course requirements are described at:
http://www.cs.ubbcluj.ro/~forest/wp
Syllabus-urile tuturor disciplinelor