48
Data Processing Systems
REGGIO DI CALABRIA
Overview
Date/time interval
Syllabus
Course Objectives
The course aims to provide the methodological and technical knowledge to design and build Web Applications using modern frameworks such as Hibernate and Struts, and Mobile Applications for Android.
The main objectives include designing the structure of the Web site, implementing the interface with a DBMS, and semi-automatic management of accesses to the reserved area.
Course Prerequisites
The course requires specific knowledge or skills in (part of what is necessary will still be reviewed during the course):
- using MySQL and SQL to create, modify, update, and read tuples.
- knowledge of programming basics (for, if, classes, properties, and methods).
- knowledge of the following topics learned in the Web Engineering course in the 1st year: Client-Server Model. The Web. Hypertexts. Technological principles of the Web. Resources and identifiers. URI. HTTP. Web server. Apache web server. XML. HTML 5. Implementing client and server in Java.
Teaching Methods
The teaching is organized according to the following breakdown:
Lectures (16 hours): Presentation of theoretical concepts with the help of slides and a blackboard.
Classroom practical exercises (32 hours): Every theoretical topic presented is immediately included in practical, often guided, exercises for the practical realization of the theoretical concepts presented.
Assessment Methods
Exercises, project examples, and further instructions are available in the teaching materials, which you are advised to consult.
The assessment and grading exams consist of a project test and an oral exam.
The project test, to be carried out in groups, aims to design and build a Web application that computerizes a scenario chosen by the students (database design is not required, so it is possible to start from an already existing database). This application must implement each of the topics illustrated in the course. Furthermore, at least one functionality of the Web Application must also be implemented in a Mobile Application. The oral exam aims to discuss the completed project and evaluate the student's knowledge of the course syllabus and their ability to adapt the project to requests from the professor.
The final evaluation is based on the following criteria, in line with the AVA 3 descriptors:
- 18 - 21 (Sufficient): The student shows a limited knowledge of the subject. They reach the passing threshold by demonstrating the ability to create a Web application using Struts and Hibernate starting from a scenario of limited complexity, ensuring that at least one functionality is also provided through an Android app. However, they show some gaps, uncertainties in applying the course frameworks, and a basic presentation of the subject, which is sometimes unclear or fragmented.
- 22 - 24 (Fair): The student shows an acceptable knowledge of the subject. They are able to design and build a Web application using Struts and Hibernate starting from a scenario of high complexity, while maintaining the functionalities of the Android app at a basic level. They manifest fair practical abilities, and the presentation is correct, although lacking a fully coherent structure.
- 25 - 27 (Good): The student shows a broad knowledge of the subject. In addition to independently managing the development of a complex Web application using Struts and Hibernate, they prove capable of creating and integrating complex and articulated functionalities provided through the Android app. They use appropriate technical terminology, with a clear but sometimes schematic presentation.
- 28 - 29 (Very Good): The student shows an in-depth knowledge of the theoretical and practical contents. They excellently integrate a highly complex Web application with an Android app featuring advanced functionalities, highlighting excellent problem-solving skills and complete code mastery. The presentation is clear, articulate, and supported by rigorous language, allowing only minor inaccuracies.
- 30 - 30 cum laude (Excellent): The student shows a complete and detailed knowledge of the entire syllabus. In addition to the flawless execution of the integrated Web/Mobile project, they are able to implement additional functionalities requested on the spot during the oral exam, operating promptly and with absolute confidence. They highlight an excellent understanding and a logical, mature, and optimally structured presentation. Cum laude is awarded in case of absolute mastery of the topics and a strong ability to make interdisciplinary connections.
- Failure to pass the exam (Insufficient): The student shows poor or fragmented knowledge. They do not reach the minimum objectives, revealing the inability to use Struts and Hibernate to create the basic Web application or entirely lacking the development of the Mobile (Android) counterpart.
Texts
Java Persistence with Hibernate, Second Edition of Hibernate in Action, Christian Bauer and Gavin King, Manning Publications Co.
Struts 2 in Action, Donald Brown, Chad Michael Davis, and Scott Stanlick, Manning Publications Co.
Hibernate [http://hibernate.org/orm/](http://hibernate.org/orm/)
Struts [https://struts.apache.org/](https://struts.apache.org/)
Android Developers [https://developer.android.com/](https://developer.android.com/)
In the teaching materials available on Teams (the code is indicated in the "other information" section), there are the following lecture notes that cover all the topics of the module:
00 - presentazione corso.pdf
01 - background.pdf
02 - hibernate.pdf
03 - struts2.pdf
04 - Android.pdf
esercitazione_01_pattern.zip
esercitazione_02_hibernate_es3.zip
esercitazione_03_hibernate_mapping_2025.zip
esercitazioni_05_struts.zip
esercitazioni_06_android.zip
Installazione Android Studio.pdf
Librerie Hibernate.zip
Linee Guida Presentazione Progetto.pdf
Recorded video lectures from the COVID period are also available; although they are not relative to this academic year, they can be useful for those unable to attend.
Since the course is taught in Italian, most of the material is in Italian.
However, the English version of the book (indicated above) is available, and it is possible to request the English version of the slides from the professor.
Contents
In the teaching materials available on Teams (the code is indicated in the "other information" section), you can find this same information potentially presented better (with images, colors, web links to resources, and better layout... which cannot be included on this page).
Course Syllabus (6 CFU – 48 hours)
Java review. Inheritance and Interfaces. Exception handling. Collections. Annotations. Serialization. Logging. The Log4J2 library. The Singleton pattern. The DAO pattern. The Factory pattern. (1 CFU – 8 hours)
Introduction to Hibernate. POJO Objects. Hibernate-configuration. Using Hibernate: XML configuration and mapping. Annotations. The DAO and Factory patterns in Hibernate. Mapping relationships. One-to-many. Many-to-one. Classic one-to-one and component. Many-to-many. Composite key. Inheritance. Hibernate Query Language. Hibernate tools. Reverse Engineering. (1.5 CFU – 12 hours)
Introduction to Struts. Struts 2 MVC. Struts Filter. Result. Action. Interceptor. Parameter passing between View and Action. Data passing with Javabeans and ModelDriven. Input validation with Workflow and with Validation. Errors and warnings. Exception handling. Resource Bundles. Type conversions. ExecAndWait, FileUpload, Timer, Logger interceptors. Creating an interceptor. SessionAware interface. Data injection into session. Struts UI Tags. Other Struts features. The JSON format. Struts and JSON. JSON results. (2 CFU – 16 hours)
The Android system. Hello World application. Activity. Calling an activity and passing parameters. Explicit intent. Activity life cycle. Preferences. Internal file management. External file management. Delegation pattern. Implicit intents. JSON object management. Processes and Threads. UI thread and worker thread. Async Task and connection to a Web Application. (1.5 CFU – 12 hours)
Knowledge and understanding: By the end of the module, students will know the concepts necessary to use modern frameworks to build Web and Mobile applications and will understand the design methodologies for such applications.
Applying knowledge and understanding: By the end of the module, students will be able to design and build a Web Application using Struts that interfaces with a DBMS via Hibernate.
Furthermore, they will be able to build mobile applications for Android devices that interface with Web applications.
Making judgements: By the end of the module, students will be able to make appropriate decisions when designing a Web and Mobile application in ICT application and industrial contexts, evaluating aspects such as the need to use modern frameworks or not, the specific technologies to use, and the impact on development costs.
Communication skills: By the end of the module, students will use the terminology and technical language related to Web and Mobile Applications to be able to interface with other experts, including explaining the reasons behind design choices made and discussing potential alternative solutions.
Learning skills: By the end of the module, students will have acquired the knowledge that allows them to independently learn about technological evolutions in Web and Mobile Application development and evaluate their pros and cons.
More information
Teams Code: xivq0o9
In the Teams teaching materials, you can find all the necessary information to prepare for this exam.