Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0023	Web Programming	

Semester	Hours: C+S+L+P	Category	Status	
7	2+0+2+0	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Department	Type of activity	
surname	title	title		C	S	L	
STERCA Adrian Ioan	Ph.D.	Lect.	Computer Science	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
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	

IV. Course contents
1. WWW history and concepts
History of the WWW
The Internet address mechanism, name servers, URLs and URIs 
Web applications. Overview
2. HTML – HyperText Markup Language
     2.1 Characteristics of HTML
     2.2 Base Elements of HTML
     2.3 HTML Forms
3. HTTP – HyperText Transfer Protocol
     3.1 Characteristics of HTTP: stateless, request-response protocol, asynchronous
     3.2 HTTP Request and HTTP Response
     3.3 HTTP Methods: GET, POST, HEAD, CONNECT etc.
     3.4 Firebug for HTTP debugging
4. CSS – Cascading Style Sheets
5. XML languages
     5.1 XHTML
     5.2 XML – eXtensible Markup Language
     5.3 XML validation: DTD, XML schema
     5.4 XML namespaces, XPointer and Xlinks
     5.5 Viewing XML documents: CSS, XSL and XSLT
     5.6 XML parsing
6. DOM – Document Object Model
7. Javascript
     7.1 Base elements of the language
     7.2 DHTML – modifying DOM 
8. Server-side technologies: CGI (Common Gateway Interface)
     8.1 Server-side scripting
     8.2 Getting parameters through GET
     8.3 Getting parameters through POST
     8.4 CGI examples in shell, C, perl, python
     8.5 CGI Apache configuration lines
9. Server-side technologies: PHP
10. AJAX
11. Server-side technologies: JSP and Java servlets
12. Server-side technologies: ASP .NET
13. Advanced client-side frameworks (overview): Jquery and GWT (Google Web Toolkit)
14. SEO – Search Engine Optimization. Web security: cross site scripting and SQL injection.	

V. Bibliography
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	

VI. Thematic of didactic activities per weeks
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.	

VII. Didactic methods used
Didactic methods used: describing, explaining, conversations, computer demonstrations and examples, individual study.	

VIII. 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	

IX. Additional references

	Dean,							Department head,
Prof. Leon Tambulea Ph.D.				Prof. Florian Boian, Ph.D.

	Date,							Course responsible,
								Lect. STERCA Adrian Ioan, Ph.D.