Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0023	Programare Web	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
5	2+0+2+1	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
BUFNEA Darius Vasile	Dr. 	Lect.	Sisteme Informatice	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
- Familiarizarea studenţilor cu principalele concepte, tehnologii atât client side cât si server side precum şi cu instrumentele cel mai des folosite în programarea web;
- Utilizarea elementelor de mai sus în proiectarea site-urilor web de generaţie recentă.	

IV. Conţinutul disciplinei
1. Noţiuni şi concepte utilizate
- Forumuri Internet: ISOC (Internet Society), IAB (Internet Architecture Board), IETF (Internet Engineering Task Force), ISP (Internet Service Provider)
- Sistemul de adresare: servere de nume, URL (Uniform Resource Locator)
- Hipertext si limbaje de specificare: SGML, HTML, XML, WML principii generale
- Protocoale de transport: HTTP
- Instrumente de dezvoltare şi exploatare în programarea web: navigatoare, editoare HTML si XML, parsere şi navigatoare XML
2. Compendiu XML
- Caracteristici XML: elemente, atribute, structuri, validare XML
- Metadate XML: DTD (Data Type Description) si schema XML (XSL) 
- DOM (Document Object Model) pentru XML
- Prelucrarea documentelor XML în Java, C#, JavaScript si Perl
3. Limbajele HTML (HyperText Markup Language) si XHTML (eXtensible HTML)
- Sintaxa si semantica. Structura unui document HTML si XHTML. 
- Tabele, liste, cadre, imagini
- Formatarea şi gestiunea stilurilor folosind CSS (Cascade Stile Sheet)
- Crearea si gestionarea link-urilor
4. Partea client în programarea web
- Clienţi uşori si clienţi grei
- Formulare (X)HTML
- Cookies
- Limbajele JavaScript, Jscript şi VBScript
- Appleturi Java
- Aplicaţii JavaScript şi interacţiuni la nivel client
- Flash 
5. Partea server în programarea web
- Arhitectura unui site web: organizare, proiectare, întreţinere
- CGI (Common Gateway Interface): principii
- Implementarea CGI în C / C++ / shell / perl
- Limbajul PHP; specificarea CGI în PHP
- Servleturi Java
- Specificarea acţiunilor serverului folosind pagini JSP si / sau ASP
- Aplicaţii web în Java si / sau C#
- SOAP - RPC peste web
6. Specialităţi web
- WML (Wireless Markup Language)
- VRML (Virtual reality Modeling Language)
- Servicii MPEG: (Moving Picture Expert Group)	

V. Bibliografie
1. Anghel T, Dezvoltarea aplicaţiilor web folosind XHTML, PHP si MySQL. Editura Polirom, Iaşi, 2005
2. Boian F. M., Programare distribuită în Internet; metode şi aplicaţii. Editura Albastră, MicroInformatica, Cluj, 2005
3. Boian F.M., Boian R.F., Tehnologii fundamentale Java pentru aplicaţii Web. Editura Albastră, MicroInformatica, Cluj, 2005
4. Buraga S., Tehnologii web. Editura Matrix Rom, Bucuresti, 2001
5. Buraga S., Proiectarea siturilor web. Editura Polirom, Iaşi, 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. W3Schools Online Web Tutorials, http://www.w3schools.com	

VI. Tematica activităţilor didactice pe săptămâni
Curs:

1.	Introducere în HTML. Structura unui document HTML. Taguri de bază.
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.	Aplicaţii 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 şi a celor mai importante taguri. Fiind prima activitate didactică de tip laborator, studenţii trebuie doar să exerseze şi să reproducă exemplele prezentate de cadrul didactic.
2. Prezentarea formularelor Web şi a controalelor Web de tip input asociate. Temă de laborator: Reproducerea cât mai fidelă folosind tag-urile de baza a unui site cunoscut.
3. Prezentarea din partea cadrului didactic a protocolului HTTP cu exemple practice.
4. Temă de laborator: CGI ca prima tehnologie server-side.
5. Temă de laborator: Tehnologii client side: JavaScript. 
6. Temă 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 şi client side însuşite deja.
9. Prezentarea funcţiilor de bază ale limbajului PHP ca prim limbaj de scripting evoluat server side. Temă de laborator pe baza tehnologiei AJAX şi a tehnologiei PHP pentru partea server side.
10. Accesarea bazelor de date (MySQL) folosind PHP. Demonstraţii practice din partea cadrului didactic. Temă de laborator.
11. Prezentarea structurii aplicaţiilor Web Java. Instalare şi configurare container de aplicaţii. Studiu de caz: Tomcat.
12. Tema de laborator Java Servlets.
13. Tema de laborator Java Server Pages. Prezentarea unor facilităţi avansate JSP precum Custom Tags.
14. Predarea ultimelor laboratoare din partea studenţilor. Încheierea activităţii didactice. Măsuri organizatorice în ceea ce priveşte examenul final din sesiunea de examene.

Proiect:

Pe parcursul întregului semestru, studenţii care frecventează cursul de Programare Web vor trebui să-şi creeze o pagină personală pe sistemele server puse la dispoziţie de facultate, pagină în care să fructifice toate tehnologiile însuşite la acest curs. Această pagină va fi analizată 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;
-	conţinutul, designul şi aspectul.
O cerinţă specială este dezvoltarea acestei pagini personale treptat pe măsura însuşirilor tehnologiilor de către student. Cadrul didactic va acorda o atenţie sporită dezvoltării graduale a paginii şi a evoluţiei conţinutului acesteia pe parcursul semestrului.	

VII. Metode didactice folosite
Expunerea: descrierea, explicaţia, prelegerea magistrală, prelegerea dialog, prelegerea cu demonstraţii, prelegeri introductive, prelegeri curente, prelegeri de sinteză. 
Conversaţia: dezbaterea, dialogul, conversaţii introductive, conversaţii de fixare şi consolidare a cunoştinţelor, conversaţii de sistematizare şi sinteză, conversaţii de aplicare.
Problematizarea: utilizarea întrebărilor-problemă, problemelor şi situaţiilor-problemă. 
Descoperirea: redescoperirea dirijată şi independentă, descoperirea creativă, descoperirea inductivă, descoperirea deductivă, descoperirea analogică, descoperirea prin documentare, descoperirea experimentală.	

VIII. Evaluare
Nota finală se calculează după următoarea formulă:

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

Proiectul individual constă în elaborarea de către student a unei pagini personale proprii care să fie bazată atât pe tehnologii web client side cât şi server side, precum şi cu tehnologii midleware de conectare la baza de date. Examenul final este un examen practic în cadrul căruia în paginile dezvoltate în timpul examenului studentul trebuie să şi răspundă la anumite întrebări teoretice. Nota de la laborator consta în media aritmetică cu care sunt notate activităţile practice de laborator rezolvate de student pe parcursul semestrului. Pentru promovare fiecare din cele trei componente ale notei finale trebuie să fie cel puţin 5.

Informaţii actualizate despre curs se pot obţine la adresa: http://www.cs.ubbcluj.ro/~bufny/index.php?view=pw/pw.php	

IX. Bibliografie suplimentară
1. Chuck Musciano, Bill Kennedy, HTML & XHTML: The Definitive Guide, O'Reilly, 2002;
2. Jennifer Niederst, Web Design in a Nutshell, O'Reilly, 2001;
3. Colin Moock, ActionScript: The Definitive Guide - Mastering Flash Programming, O'Reilly, 2001;
4. Varlan C, Macromedia FLASH; concepte, exemple, studii de caz. Editura Polirom, Iaşi, 2004;
5. Negrino T., Smith D, JavaScript for the World Wide Web. 4th edition, Visual QuickStart Guide, 2001.	

	Decan,							Şef de catedră,

	Data,							Titular curs,
								Lect. Dr.  BUFNEA Darius Vasile