Web Programming
Spring semester, 2019-2020

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. Alexandru Moraru [alexm at cs dot ubbcluj dot ro]
Cd.asoc. Roxana Sipos-Lascu [roxana.lascu at cs dot ubbcluj dot ro]

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
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)]

The details of the examination are described here.

There is an exam sample here for the Computer Science students (English section).

Please visit this page regularly for further announcements.

Announcements [13 July 2020]:

The final grades for the Computer Science students (after the re-take examinations) are available here and on AcademicInfo. If you spot a mistake or have questions about the grades, write me an email.

Announcements [4 July 2020]:

The final grades for the Computer Science students are available here. If you spot a mistake or have questions about the grades, write me an email.

La restante o sa vina cei care au luat nota 4 in sesiunea normala. Cei care vor sa vina la marire, vreau doar sa imi scrie un mail pana Joia viitoare (9 Iulie 2020, inclusiv), ca sa stiu cati vor veni la marire. Cei care sunt restantieri nu mai trebuie sa ma anunte pe email. Vom da examenul tot asa (cu Skype si obs.ninja), tot o ora Sambata, 11 iulie incepand cu ora 11. Daca vin foarte multi la marire, o sa mai fac o tura de examene de la ora 15.00.

Announcements [22 June 2020]:

Today, at 8.00 pm I will post here an exam guide for the practical exams from 23rd and 25th of June 2020. Please read it carefully and ask me questions by email if you have issues with the guide.

You can find the exact date and time each student has to take the exam here.
If you spot mistakes, inform me immediately by email or Skype. You can not take the exam at another date or time than the one specified in the above file.
The exam guide is here. Please read it carefully before the exam! Good luck!

Announcements [17 June 2020]:

I have posted an exam sample here for the Computer Science students (English section).

Announcements [15 June 2020]:

The final grades for the Mathematics - Computer Science students are available here. If you spot a mistake or have questions about the grades, write me an email.

Announcements [27 May 2020]:

I thought for some time whether I should post a video recording of the ASP.Net lecture. Initially I thought of posting this lecture, but then, I thought that in this video, from a practical point of view, I would only be doing what you already see in the ASP tutorial with screen captions; so the new information would be minimal. This tutorial is a step-by-step tutorial of creating an ASP.NET MVC project in Visual Studio Enterprise 2017. It is created for total beginners (what button to click, what to write in input etc.) So, I have decided not to post a video recording of the ASP.NET lecture. If you think this is wrong and you need a video lecture, write me an email explaining this or come tomorrow (28 May 2020) at 8.00 am on my Youtube live streaming and ask me questions about the ASP.NET lab.
Anyway, I will post another tutorial today on developing the same MVC project, but this time in ASP.Net Core 3.1 (as opposed to the existing tutorial which is for ASP.NET 4.5) using Visual Studio Enterprise 2019. ASP.Net Core is somewhat newer than ASP.NET. The two tutorials will be very similar and you can choose to do whatever type of application you like for the lab or exam (ASP.Net or ASP.Net Core).

Update: There was only 1 viewer today on my Youtube Live streaming, no questions asked, so I though I should go over the ASP.NET tutorial and explain more things about the ASP.NET project - the streamed video is here.

Announcements [19 May 2020]:

Regarding the practical exam of the Computer Science section students, I have the following rules:
  • I want to have all the exams with all the groups in exactly 2 days
  • In each of those 2 exam days, I will have 2 exams, one in the morning (from 8.00am or 9.00am) and the other in the afternoon starting at 3.00pm or 4.00pm
  • Exactly 2 groups will participate to each exam (except for one exam where there will be only 1 group - since there are 7 groups in total - plus the students from previous years)
I am stating the above rules because all the teaching assitants must be present to each exam. I want to ask the representative students for each group to discuss together and choose whatever exam date they want, as long as it obeys my 3 rules stated above. If it's possible, one exam day should be in the weekend, but this in not mandatory. If you want, we can also do a Skype call together (me and the student representative of each group) whenever you want - just agree on a common call date and time and write me an email.

Thursday, 21st of May 2020, from 8 am I will have another live streaming session on my Youtube channel in which I will answer questions related to exam, labs, exam dates etc. (link is here).

Announcements [14 May 2020]:

The Youtube live streaming is: Live

Announcements [10 May 2020]:

I have extended the deadline for the JSP lab on Impulse.
Thursday, 14th May 2020, from 8am I will have another live streaming session on my Youtube channel explaining the evaluation structure and the online exam. You can comment there and I will answer your questions.

Announcements [7 May 2020]:

The Youtube live streaming is: Live
I have also added the video recording of the Jsp and Java Servlets course narrated by Ionut Badarinza at: Jsp and Servlets

Announcements [2 May 2020]:

Thursday, 7th May 2020, from 8am I will have a live streaming session on my Youtube channel explaining the evaluation structure and exam (ONLY for the Mathematics-Computer Science section, NOT for the Computer Science section). You can comment there and I will answer your questions.
I have added additional requirements for the Jsp and Asp labs on the Impulse platform (they are present in the 'Documentation' section of these labs).
In the following days, I will post an announcement about how the online exam will take place.

Announcements [22 April 2020]:

I will post the PHP video recording later today. It will contain a PHP+MySql tutorial using XAMPP and examples. Also, on Friday, 24th of April 2020, I will be online on Skype between 10-12 am (in the morning) available for any student that has any question about the Web Programming course (except questions about the final examen for which I have no definite conclusion).

Announcements [11 April 2020]:

I have posted a recorded video with the presentation of the jQuery course at: The jQuery library.

Announcements [4 April 2020]:

I have posted a recorded video with the presentation of the Javascript & DOM course at: Part I and Part II.

Announcements [1 April 2020]:

I will post the video recording of the Javascript course tomorrow and sometimes this week the jQuery course recording. Therefore, I have extended the jQuery lab deadline to 13-19 April. This is no joke.

Announcements [27 March 2020]:

I have posted a recorded video with the presentation of the XML course at: XHTML, XML and XSLT course.

Announcements [23 March 2020]:

After further tests, I have decided that we shall all use Skype groups for the lab activity. I want to ask the students (that haven't already done so) to create a Skype account and one student from each subgroup (the head of the subgroup) should create a Skype group for that subgroup where he/she should add all students from that subgroup and also the professor of that subgroup. The professors' skype IDs are:


Announcements [20 March 2020]:

I have posted a recorded video with the presentation of the CSS3 & Bootstrap course at: CSS3 & Bootstrap video course. Because the suspension period has been prolonged indefinitely, we have to evaluate lab task solutions from the students and give marks for them. So, next week (23-29 March 2020), the students should present their solutions for "Lab1 - Html" and "Lab2 - CSS simple" during the time interval of their group's lab activity. We will collect/correct the students' lab solutions using either Skype, talky.io or Microsoft Teams (you will discuss this with the lab professor next week - students and professors will still "meet" online on the platform listed for each lab professor in the 11th March announcement). We only need a screen sharing and an audio stream from the student (no video stream is required). The rule that states the students are considered present at the lab regardless of whether they actually login on the online platform (Skype, talky.io or Teams) during the lab's time interval still applies (so, if the student does not have any lab to show and he/she does not have any questions, the student is not required to login on the online platform).


Announcements [11 March 2020]:

As you already know, all teaching activities (courses, labs and seminars) are suspended at Babes-Bolyai University in the period 11th - 22nd March 2020 and I suspect this situation to last longer. All these activities will take place online as follows:

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.