28659 - Web Technologies T

Academic Year 2019/2020

  • Moduli: Ilaria Bartolini (Modulo 1) Paolo Bellavista (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Computer Engineering (cod. 0926)

Learning outcomes

Knowledge, skills, and practical experiences needed to design and implement Web-based applications.

Course contents

MODULE 1

The "static" model
Rapid historical introduction
The first World Wide Web model
Primary model elements and aspects: HTTP and URI
Languages for page content description: HTML and CSS

Data description and XML
Page description languages: XML and XHTML
Typing in XML: DTD vs. XML Schema
XML and Java: XML parsing (DOM and SAX models)

Model evolution
Towards a more dynamic approach: personalization, state, sessions, and conversations
State/session management
Server-side Web programming: Java servlets, JSP
Client-Side Web programming: JavaScript and Ajax

MODULE 2

Models and technologies for the effective and efficient persistence and transaction management
Direct access to databases: Interfaces and abstractions
Object-based architectures vs. relational databases: The impedance mismatch
Methodologies for persistence designing and developing: The "brute force" approach (JDBC), pattern DAO, and Object-Relational Mapping (ORM) - Entity Beans - Hibernate library
Isolation levels
Transactional models

Towards enterprise-oriented server-side environments
Multi-layer (multi-tier) architectures: horizontal and vertical distribution, business logic separation, component-container models
Model View Controller for Web applications and Java Model 2
Enterprise Java Beans, as an example of technology compliant with the "heavy" container model: focus on SessionBeans, both stateless and stateful
Spring, as an example of technology compliant with the "lightweight" container model: Inversion of Control, Spring AOP, Spring MVC
Java Server Faces (JSF)


Readings/Bibliography

All the lectures slides are available for download at the course Web site: http://www-db.deis.unibo.it/courses/TW/
W3C, HTML, CSS, JavaScript:
World Wide Web Consortium: http://www.w3.org HTML 4.01
HTML 4.01 Specifications: http://www.w3.org/TR/html4/
World Wide Web Consortium CSS Reference: http://www.w3.org/Style/CSS/
World Wide Web Consortium CSS2 Specifications: http://www.w3.org/TR/REC-CSS2/
Client-Side JavaScript Guide: http://www.w3schools.com/js/default.asp
XML
XML In a Nutshell, Second Edition, by Elliotte Rusty Harold and W. Scott Means. O'Reilly.
http://www.w3.org/XML/
http://www.w3.org/Style/XSL/
Web Applications
http://java.sun.com/javaee/reference/
http://tomcat.apache.org/
Spring
http://www.springsource.org/
Spring in action - Walls, Breidenbach - Manning (2nd edition)
Hibernate
Java persistence with Hibernate - Bauer - Manning

Teaching methods

Most course lectures are in "traditional" classrooms and exploit the slides available at the Course Web site. A non-negligible part of the course (around 30% of the hours) is composed by lab exercises, with proposed tasks and supervised by teachers and tutors. Each lab exercise addresses a topic presented and discussed in the previous classroom lectures, within a practical and operational perspective (also usage of state-of-the-art development and programming tools).

Fluent spoken and written italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in italian.

Assessment methods

Achievements will be assessed by means of a final exam. This is based on an analytical assessment of the "expected learning outcomes" described above. In order to properly assess such achievement the examination is composed of a written programming session in Lab4 (3 hour long, with the help of books or notes and software code), possibly followed by an oral examination (for students passing the written part only).

The written programming exam usually consists of 3 exercices (11 points each). To participate to the lab programming exam, interested students have to register themselves by exploiting the usual UniBO Web application, called AlmaEsami.

In order to pass the written programming exam, a minimum grade of 18 points is needed (over a total of 33 points), equally distributed over the three exercices: 6 points for the first exercice, 6 points for the second exercice, and 6 points for the third exercice, respectively.

The oral examination usually consists of 2 questions related to the whole course program by both teachers and provides a grade ranging from +4 and -4 points with respect to the grade  acquired in the written programming session.

In the oral examintion the maximum grade will be awarded to students who demonstrate an organic understanding of the subject, a high ability for critical application, and a clear and concise presentation of the contents. The minimum grade will be awarded if the student shows knowledge gaps in key-concepts of the subject, inappropriate use of language, and/or logic failures in the analysis of the subject.

Teaching tools

In traditional classrooms, the course lectures will make extensive usage of slides (available at the course Web site). In lab, the course will use state-of-the-art development, IDE, and runtime support tools (e.g., Eclipse and Tomcat servlet engine). Students must learn how to practically and effectively use these tools (or other alternative tools), as an additional, practical, and relevant outcome of the course.

Links to further information

http://www-db.disi.unibo.it/courses/TW/

Office hours

See the website of Ilaria Bartolini

See the website of Paolo Bellavista

SDGs

Quality education

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.