- Docente: Ilaria Bartolini
- Credits: 12
- SSD: ING-INF/05
- Language: Italian
- 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

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