Web Programming
Spring semester, 2020-2021

Professors:
Lect. Dr. Adrian Sterca [forest at cs dot ubbcluj dot ro]
Asist. Dr. Ionut Badarinza [ionutb at cs dot ubbcluj dot ro]
Asist. Dr. Manuela Petrescu [mpetrescu at cs dot ubbcluj dot ro]
Cd.asoc. Roxana Lascu [roxana.lascu at cs dot ubbcluj dot ro]
Cd.asoc. Andreea Blaga [Andreea.Blaga at mail dot bcu dot ac dot uk]

Course Contents:
Client-side web technologies:
HTML - HyperText Markup Language  [HTML Examples]
HTTP - HyperText Transfer Protocol
CSS - Cascading Style Sheets  [CSS Examples]
CSS level 3  [CSS Examples; Bootstrap Examples] Video recording of the course
XHTML, XML and XSLT  [XML Examples] Video recording of the course
Javascript and DOM  [Js doc Javascript Examples] Video recording - Part I Video recording - Part II
Javascript libraries & frameworks: jQuery  [jQuery Examples] Video recording (narrated by Ionut Badarinza) and Angular.js [Angular+PHP examples; Angular video tutorial]
Javascript 2D/3D graphics: WebGL
Server-side web technologies:
Simple server-side programming: CGI - Common Gateway Interface  [CGI Examples]
AJAX and PHP, JSON   [PHP examples] Video recording of the course
Jsp (Java Server Pages) and Java Servlets; Tomcat  [JSP and Servlet Examples] Video recording (narrated by Ionut Badarinza)
ASP.NET   [ASP.NET examples] (Slides are outdated, examples are ok; use the Simple ASP.Net MVC tutorial or ASP.Net Core 3.1 MVC with EntityFramework tutorial (I think you should use the first one, Simple ASP.Net MVC tutorial, because the second is more complex and requires more computing resources, but either of them is fine for the labs and exam. There is also a Youtube live streaming here where I discuss a little bit ASP.NET projects.))
Node.js
Web security: Beef project; Same-origin policy; XSS attacks; CORS [Security examples (sql injection, cross-site scripting)]

Grades July 2021 [12-July-2021]:


The final grades (after the re-examination session) are available here.
Daca aveti neclaritati sau observati greseli in fisierele cu note de mai sus, va rog sa imi semnalati acest lucru pe email.

Course Requirements:
The presence at the labs is mandatory. Students are required to be present to at least 12 labs.

The final mark is computed by using the following formula:

FinalMark = 40%LabsMark + 60%FinalPracticalExamMark

The final exam is a practical one. The student must implement a set of web pages, but also she/he must answer to some theoretical questions. Students are allowed to bring to this exam all kinds of printed or electronic documentation they see fit.
Labs tasks are assigned to students through the imPULSE portal. The lab mark is the average of the marks the student gets on the labs resolved during the semester. A student gets the mark 1 for a missing lab (i.e. a lab not shown to the professor). Each week past the deadline will decrease with 1 point the maximum mark a student can get for that lab. In one physical lab class, the student is allowed to present exactly 1 lab task (maximum 2 tasks if the lab professor allows it). A student should go to the lab activity scheduled for the group the student belongs to. The student can also go to a lab class with another group (not his own) if the lab professor for that group allows it. Students who take this course again can choose the lab activity that best fits their own schedule - but still, the lab professor must agree to it. If you are having problems choosing a lab class, tell this immediately (in the beginning of the semester) to Adrian Sterca. Any organizational problems you are having with this course or the lab (e.g. the student's PULSE account does not work), must be reported immediately to Adrian Sterca - it's the student's responsability to do this.

In order to successfully pass this course, each of the above marks must be at least 5. In addition, the student must present at least 5 labs to the professor in order to enter the final exam and one of these must be a server-side lab (PHP+Ajax, JSP/Servlet, ASP .NET).

Labs (practical work) can not be recovered in the re-examination session (i.e. 'restanta') - one can not do in 1 or 2 hours what he/she was supposed to do a whole semester (i.e. 14 weeks). A student who does not have at least 12 attendances at the labs and a lab mark at least 5 will not be able to enter the re-examination session.