NSWI142: Programming of Web Applications
Please note that this course is not recommended for first-year students.
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, please contact us.
Lectures
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.
Date | Content |
---|---|
Web Fundamentals | |
Cascading Style Sheets | |
Web Applications, HTTP Server, CGI | |
PHP Introduction | |
PHP Language | |
Web Applications with PHP | |
Design Patterns and API | |
JavaScript Introduction | |
JavaScript Language | |
Cancelled, PHP Assignment [working draft] | |
Web Applications with JavaScript | |
[CS] Browser API, [EN] Security | |
Cancelled | |
[CS] Security , [EN] Cancelled |
Practicals
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, Nodejs, and MySQL database system on your computer as well.
There are practicals ("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.
Most of the assignments will be only in ReCodEx. Each lab will have associated group in ReCodEx. If you have any trouble accessing the ReCodEx or you experience problems with the assignments report to your racticals/labs teacher(s).
Attending practicals is not mandatory (yet strongly recommended, see grading). Bellow you can find materials used in practicals/labs.
Week | Monday | Tuesday 10:40 | Tuesday 17:20 | Thursday 9:00, 12:20 | Friday 10:40 |
---|---|---|---|---|---|
1 |
HTML, HTTP |
HTML, HTTP |
Cancelled |
Cancelled |
Cancelled |
2 |
HTML Forms, CSS Introduction |
HTML Forms, CSS Introduction |
HTML, HTTP |
HTML, HTTP |
HTML, HTTP |
3 |
CSS Grid & FLex |
CSS Grid & FLex |
HTML Forms, CSS Introduction |
HTML Forms, CSS Introduction |
HTML Forms, CSS Introduction |
4 |
PHP Introduction |
PHP Introduction |
CSS Grid & FLex |
CSS Grid & FLex |
CSS Grid & FLex |
5 |
PHP server-side |
PHP server-side |
PHP Introduction |
Cancelled |
PHP Introduction |
6 |
PHP Language |
PHP Language |
PHP server-side |
PHP Introduction |
PHP server-side |
7 |
PHP & SQL |
PHP & SQL |
PHP Language |
PHP server-side |
Cancelled |
8 |
JS introduction |
JS introduction |
PHP & SQL |
PHP Language |
PHP Language |
9 |
JS client-side |
JS client-side |
JS introduction |
PHP & SQL |
PHP & SQL |
10 |
Cancelled |
Cancelled |
Optional consultation |
Optional consultation |
Cancelled |
11 |
JS fetch |
JS fetch |
JS client-side |
JS introduction |
JS introduction |
12 |
JavaScript |
JavaScript |
JS fetch |
JS client-side |
Cancelled |
13 |
Cancelled |
Cancelled |
Cancelled |
JS fetch |
JS client-side, fetch |
14 |
Cancelled |
Cancelled |
JavaScript |
JavaScript |
JavaScript |
Prerequisites
For technical reasons, we have dismissed all formal prerequisites of this course. However, we expect that the attendees have the following knowledge.
-
Programming skills in C# language (or C++, or Java) on the level expected after passing the Programming I and II courses (minimum).
It is recommended to enroll one of the C++/C#/Java basic programming courses before attending this course.
Test yourself: Write a code (under 15 minutes) that finds all prime numbers from 2 to given limit N. -
Basic familiarity with networking and TCP/IP protocols, and HTML+CSS (at the level taught in NSWI141 course).
Test yourself: Write a simple HTML page decorated with CSS, deploy it, explain how HTTP works when the browser retrieves the page. -
Fundamental working knowledge of relational databases and SQL language (the home assignments require utilization of SQL database).
Test yourself: What does the following query do?
SELECT subjects.id, subjects.name, students.id, students.name FROM students JOIN subscribed ON subscribed.studentId = students.id JOIN subjects ON subscribed.subjectId = subjects.id ORDER BY subjects.name, students.name
Contact
- Petr Škoda
- Unofficial/Immediate Feedback Form