Checking date: 30/04/2019


Course: 2019/2020

Web Computing
(13432)
Study: Bachelor in Telematics Engineering (215)


Coordinating teacher: ARIAS FISTEUS, JESUS

Department assigned to the subject: Department of Telematic Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Students are expected to have completed
- Programming - Systems Programming - Telematic Applications - Format Processing in Telematic Applications - Systems Architecture II
Competences and skills that will be acquired and learning results. Further information on this link
The objective of this course is familiarize the student with the foundations of Web programming and databases. During the course, the student should be able to apply those technologies for designing and developing a Web application based on a set of realistic requirements and constraints. * General competencies: - Ability to apply previous knowledge of telecommunication technologies. - Ability to design a complex system given a set of realistic requirements and constraints. - Understanding of professional and ethical responsibility in the development of a project. - Ability to autonomously learn and look for information. - Ability to use modern frameworks and development environments in the development of a system. * Specific competencies: - Ability to apply the main technologies for presenting information and programming in the Web. - Ability to edit hypertext documents with style sheet. - Ability to design and develop Web applications using server-side and client-side technologies. - Ability to design, manage and query relational databases. - Ability to use databases from Web applications. - Ability to consider security and privacy protection issues in the design and development of Web applications.
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.- Attaks to data storage systems 4.3.- Attaks that avoid client-side controls 4.4.- Attaks to the authentication and authorization mechanisms 4.5.- Attaks to session management 4.6.- Attaks 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
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
  • Douglas Crockford. JavaScript: The Good Parts. O'Reilly Media, Inc.. 2008
  • Larry Brown, Marty Hall. Core Servlets and JavaServer Pages¿: Volume 1: Core Technologies, 2nd Edition. Prentice Hall. 2003
  • Larry Rockoff. The Language of SQL. Course Technology PTR. 2010
  • Rob Larsen. Beginning HTML and CSS. Wrox. 2013
Additional Bibliography
  • David Flanagan. jQuery Pocket Reference. O'Reilly Media, Inc.. 2010
  • Martin L. Abbott, T. Fisher. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional. 2011
  • Simon Harris. HTML5 Unleashed. Sams. 2013

The course syllabus and the academic weekly planning may change due academic events or other reasons.


More information: http://www.it.uc3m.es/jaf/cw/