Checking date: 20/04/2023

Course: 2023/2024

Web Computing
Bachelor in Telematics Engineering (Plan: 447 - Estudio: 215)

Coordinating teacher: ARIAS FISTEUS, JESUS

Department assigned to the subject: Telematic Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS


Requirements (Subjects that are assumed to be known)
- Programming - Systems Programming - Systems Architecture I - Telematic Applications - Format Processing in Telematic Applications - Systems Architecture II
The objective of this course is to learn how to develop complete Web applications with databases, applying the main client-side technologies (HTML, CSS, JavaScript), understanding the structure of relational databases and the SQL language, and using a server-side framework combined with an object-relational mapping system for data access.
Skills and learning outcomes
Description of contents: programme
The contents of this subject are divided into the following topics: 1.- Client-side technologies 1.1.- Introduction to the Web and HTTP recap 1.2.- The HTML language 1.3.- CSS style sheets 1.4.- The Javascript programming language 2.- Data storage technologies 2.1.- Introduction to relational databases 2.2.- The SQL language 2.3.- Database access from Java programs: JDBC and introduction to object-relational mapping 3.- Server-side technologies 3.1.- The model-view-controller pattern 3.2.- Servlets 3.3.- JSP pages 4.- Web application security 4.1.- Introduction 4.2.- Attacks to data storage systems 4.3.- Attacks that avoid client-side controls 4.4.- Attacks to the authentication and authorization mechanisms 4.5.- Attacks to session management 4.6.- Attacks to other users of the application 5.- Other aspects in the development of Web applications 5.1.- The XMLHttpRequest API 5.2.- Introduction to other modern Javascript APIs (client-side storage, geo-location, desktop notifications, websockets, etc.) 5.3.- Web application scalability
Learning activities and methodology
This course will be based on the following activities: - Lectures: theoretical introduction to the main contents of the course. Student participation and collaborative discussion of problems will be encouraged. - Classes in the lab: students work with a computer in programming exercises about the most important concepts. - Web application project: students must work in pairs on a project throghout the course. The project will consist in the design and development of a relatively complex Web application based on a database, given a set of realistic requirements and constraints. Instructors will guide and help the students to complete their project both in class and tutoring sessions. The project will play a major role in the development of the course. The project will contribute not only to help students to achieve the specific outcomes, but also some of the program outcomes: - Students must apply previous knowledge about programming, transport protocols (TCP) and application protocols (HTTP, DNS). - Students must design a Web application given a set of realistic requierements and constraints. - Students must design the Web application taking into account their responsibility to properly protect private information about its users and information security in general. - Students must present and defend their project orally. - Students will be encouraged to apply recent Web programming technologies, not presented by instructors in class, to their projects. Therefore, students are expected to develop their ability to autonomously learn, which is basic for their future professional life. Assessment of the project will be based not only on technical aspects but also on the achievement of the above-mentioned program outcomes.
Assessment System
  • % end-of-term-examination 30
  • % of continuous assessment (assigments, laboratory, practicals...) 70
Calendar of Continuous assessment
Basic Bibliography
  • Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook 2nd ed.. John Wiley & Sons. 2011
  • David Flanagan. JavaScript: The Definitive Guide, 6th Edition. O'Reilly Media Inc.. 2011
  • Larry Rockoff. The Language of SQL. Course Technology PTR. 2010
  • Rob Larsen. Beginning HTML and CSS. Wrox. 2013
  • Shameer Kunjumohamed, Hamidreza Sattari, Alex Bretet, Geoffroy Warin. Spring MVC: Designing Real-World Web Applications. Packt Publishing. 2016
Additional Bibliography
  • David Flanagan. jQuery Pocket Reference. O'Reilly Media, Inc.. 2010
  • Douglas Crockford. JavaScript: The Good Parts. O'Reilly Media, Inc.. 2008
  • Martin L. Abbott, T. Fisher. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional. 2011
  • Miguel Grinberg. Flask Web Development, 2nd Edition. O'Reilly Media, Inc.. 2018
  • Simon Harris. HTML5 Unleashed. Sams. 2013

The course syllabus may change due academic events or other reasons.