About

This is an informational web page for the Web Applications course (NSWI142), the Advanced Technologies for Web Applications course (NSWI153). These courses are taught at the Faculty of Mathematics and Physics, Charles University in Prague.

We are in the winter term, so the Web Applications course is currently on.

Please note that this course is not recommended for first-year students. It is recommended for third year!

There are labs ("cvičení") currently scheduled in SIS + one virtual lab (not scheduled). Make sure you are enrolled to one of them and do not change your lab after the semester begins. The virtual lab is designated for students who either repeat the course (and actually did some nontrivial work in the labs last year) and students with special needs. Each lab will have associated group in ReCodEx. Attending labs is not mandatory (yet strongly recommended, see grading).

There is no special software required for this course, only a general IDE (consider using Visual Studio Code), SSH terminal, and any tool capable of SFTP/SCP file transfers. You will be given account on our server Webik, where you can deploy and debug your assignments. Optionally, you might want to consider installing web server (e.g., Apache) PHP 7.3+, Nodejs 12+, and MySQL/MariaDB database system on your PC as well.

You can find here:

Contact

Prerequisites

For technical reasons, we have dismissed all formal prerequisites of this course. However, we expect that the attendees have the following knowledge.

The specified knowledge is not (and cannot be) formally required for attending the lectures. However, it might be more difficult (or even impossible) to understand the contents of the lecture.

Grading

The criteria for obtaining the credit ("zápočet") and passing the test ("zkouška") are summarized in the following. Please, read them carefully. In case that any rules are not clear, contact us.

The following rules assume that it will be possible to keep at least 10 people together within one room. If the Covid situation gets worse so much that we could not conduct examination in this manner, these rules will have to change.

Credit

The credit is awarded for completing all five mandatory home assignments and successfully passing the lab programming test. The credit is required before attending the final test!

Seminar attendance

Attendance on the course seminar (labs) is not mandatory, but you can receive 1 point for each attendance. You may also receive extra 1 point (i.e., total 2 points for attendance) as a bonus for solving some problems during the labs. On the other hand, you may receive no points at all, if you are present only physically, but not mentally (i.e., when you do not demonstrate sufficient activity related to the contents of the seminar). This matter relies strictly on the judgement of the teacher. You can get up to 24 points in total.

Home assignments

There will be two type of home assignments -- mandatory and regular. You must complete all (five) mandatory assignments to receive a credit. Furthermore, successfully solving any assignment before deadline will be awarded with points and these points will be added to your final test score (i.e., solving assignments might improve your final mark). You may solve mandatory assignments after the deadline to receive the credit (but you will not receive any points for them). The mandatory assignments will worth 12 points in total. The regular assignments will worth 15 points in total.

Please note that the home assignments must pass the ReCodEx tests first, but they are also reviewed by the teachers. The quality of the code is important as its correctness. The teacher may choose to adjust the awarded points in either way (i.e., granting bonus for excellent solutions or penalty for bad code design).

Programming test in lab

Since it is difficult to test web application development in a limited time, this part of examination stands somewhere in between of regular programming test and home-made semestral work. Later in the semestr we will provide you with a specification of a web application. You can (and should) implement the specification before and take with you for the lab test.

The test dates will be published in SIS and you will be required to subscribe for them once you are ready. During the test in the lab, you would be expected to take your prepared code and modify it (e.g., implement a new feature in the application). We encourage you to use whatever code you have written yourself (including code submitted in home assignments). You may also look up information on the internet. The teacher will verify that your application is working correctly and review the quality of your code. Any issues pointed out by the teacher may be fixed during the test, but the time will be limited (i.e., we strongly recommend to prepare a good code for the test).

The quality of the work will be assessed by the teachers and up to 15 points will be awarded for it. You need at least one point to successfully pass the lab programming test. You may attend the test multiple times, but in cases of limited capacity, first-time attendees have priority over those who already failed the test.

Here is the specification in Czech and in English. Read it carefully, in case of any questions please contact us.

Final Test

Please note, that the credit is required prior to attending the final test.

The test consists mostly of a simple option checking and filling fragments of text (code). It is designed to assess your overall knowledge of the web technologies instead of detailed syntax/API specifications; however, the basic knowledge of the syntax and language properties (especially JavaScript and PHP) is also necessary. The test will attempt to verify that you generally understand the principles of HTML document processing, element rendering, CSS syntax and rendering principles, JavaScript language fundamentals (including event processing and DOM manipulation), server side scripting (in PHP), HTTP protocol, and basic web application design and security principles.

You can receive up to 50 points from the test. The points are combined with your assignment points from the labs and determine your grade in the following way:

Labs and programming test points must be granted before the test. The points cannot be added to any test retrospectively, since the tests are graded (and thus the final mark is established) immediately after completing the test.

Furthermore, after due consideration, we have decided to give you one more advantage. When attending the exam, you may decide not to submit your test for evaluation. In such case, you will not receive any mark for the test, but you will forfeit one of your three attempts, which are granted by the examination regulations. Be advised, that the number of examination terms is limited and all terms are announced in advance (no extra examination dates due to forfeit attempts will be granted). Also be advised that there will be no examination dates in summer term (especially not in September).

Lectures

The web application technologies are in constant development. Hence, some information on the slides may become outdated despite our best efforts. If you have any questions or suggestions related to the lectures, please contact us.

Please note that the Power Point slides have notes below which are not visible during regular presentation. These notes typically contain useful remarks and links to related work so do not overlook them.

Published

29.9.2021
4.10.2021
Revising web applications fundamentals (web, HTML, HTTP) PPTX File Icon01-http-html-revision.pptx
[30.09.2024, 17:36]
6.10.2021
11.10.2021
CSS introduction PPTX File Icon02-css.pptx
[30.09.2024, 17:36]
13.10.2021
18.10.2021
CSS layout PPTX File Icon03-css.pptx
[30.09.2024, 17:36]
20.10.2021
25.10.2021
CGI PPTX File Icon04-cgi.pptx
[30.09.2024, 17:36]
27.10.2021
1.11.2021
PHP Introduction PPTX File Icon05-php.pptx
[30.09.2024, 17:36]
3.11.2021
8.11.2021
PHP Language PPTX File Icon06-php.pptx
[30.09.2024, 17:36]
10.11.2021
15.11.2021
PHP & web applications PPTX File Icon07-php.pptx
[30.09.2024, 17:36]
24.11.2021
22.11.2021
PHP & Design Patterns & ... PPTX File Icon08-php.pptx
[30.09.2024, 17:36]
1.12.2021
29.11.2021
JavaScript Introduction PPTX File Icon09-javascript.pptx
[30.09.2024, 17:36]
8.12.2021
6.12.2021
JavaScript Language PPTX File Icon10-javascript.pptx
[30.09.2024, 17:36]
15.12.2021
13.12.2021
JavaScript and state synchronization PPTX File Icon11-javascript.pptx
[30.09.2024, 17:36]
22.12.2021
5.1.2022
Security PPTX File Icon12-security.pptx
[30.09.2024, 17:36]
3.1.2021 No lecture

Labs

This page will hold materials used in labs. Most of the assignments will be only in ReCodEx. If you have any trouble accessing the ReCodEx or you experience problems with the assignments report to your lab teacher(s).

# Date Details
01. 29.9.2021
30.9.2021
No labs
02. 6.10.2021
7.10.2021
First labs, introduction, technical issues, HTTP and HTML revision
Slides
03. 13.10.2021
14.10.2021
HTML Forms, CSS Introduction
Slides
04. 20.10.2021
21.10.2021
CSS
Slides
05. 27.10.2021
4.11.2021
CSS Layout
Slides
06. 3.11.2021
11.11.2021
PHP
Slides
Solution 2,Solution 3,Solution 4,Solution 5
07. 10.11.2021
18.11.2021
PHP Language
Slides
Solution 1,Solution 2,Solution 3,Solution 4
08. 24.11.2021
25.11.2021
PHP & MySQL
Slides
Solution 1,Solution 2
09. 1.12.2021
2.12.2021
JavaScript
Slides
Solution 2
10. 8.12.2021
9.12.2021
JavaScript and Web Applications
Slides
Solution 1,Solution 2
11. 15.12.2021
16.12.2021

Slides
Solution 1,Solution 2,Solution 3
12. 22.12.2021 No labs
13. 5.1.2022
6.1.2021
No labs

Introduction to networking

This is an old site! Here is the new site.

close download