INTERDISCIPLINARY LABORATORY B

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2021/2022
Year: 
2
Academic year in which the course will be held: 
2022/2023
Course type: 
Compulsory subjects, characteristic of the class
Seat of the course: 
Como - Università degli Studi dell'Insubria
Credits: 
3
Period: 
Second semester
Standard lectures hours: 
8
Requirements: 

LABORATORY A: The course does not have compulsory prerequisites, but the knowledge imparted in the teachings of "Programming", "Computer architectures", "Algorithms and data structures" are necessary for a fruitful development.
LABORATORY B: The course does not have compulsory prerequisites, but the knowledge imparted in the courses of "Software Design", "Databases" and "Concurrent and Distributed Programming" are required for a successful development.

LABORATORY A: The final exam consists in the realization of a software application, to be carried out in a working group made up of 1 to 4 students.
The development team will send their work at the end of the first year of the course and the teacher will express an approval / non-approval rating for the work done. Approval is a necessary condition to be able to undertake the activities of the second part of the teaching (Laboratory B).
The purpose of the development activity is to verify the student's ability to understand the proposed problems and, in the light of the knowledge acquired, design and implement the application in order to meet the requirements and specific requirements.
The aim of the teacher's evaluation is to verify the validity of the design and implementation choices made.
LABORATORY B: The final test consists in extending the software application developed in Laboratory A with the elements characterizing Laboratory B. Only those who have received an "Approved" assessment on Laboratory A will be able to access Laboratory B.
The final exam also includes the discussion of the project with the members of the group.
The purpose of the design and development activity is to verify the ability to understand the proposed problems and, in the light of the acquired knowledge, to collaborate in a group in the analysis of the requirements, in the design and development of the application in such a way as to satisfy the requirements.
The purpose of the discussion is to verify the validity of the design and implementation choices made and the ability of the individual members of a group to communicate and discuss these choices. The effective mastery of the techniques used is verified through a series of questions. During the discussion, a demo of the execution of the application created must also be shown.
The evaluation will take into account the adherence of the system implemented to the proposed requirements, the analysis and design documents produced both for the realization of the software and for the database, the algorithmic and design choices underlying the development, and the quality of the source code. product and related documentation.
The final grade is expressed out of thirty.

Assessment: 
Voto Finale

The primary training objective of the INTERDISCIPLINARY LABORATORY A and B is the development and implementation of skills and knowledge regarding the development of software applications, acquired during the first and second year of the course. Specifically, LABORATORY A will be delivered during the first year of the course (II semester), while LABORATORY B during the second year of the course (II semester), in order to incrementally acquire all the tools and methodologies necessary for the development of a real software application.
LABORATORY A: The main objective of the first part of this course (I year) is the development of skills concerning the development of software applications, resulting from the application of the theoretical knowledge acquired during the first year of the course, in the "Programming" courses , “Computer architectures” and “Algorithms and data structures”.
At the end of the first part of the teaching, the student will have experienced, through the development of a real software application, the design of algorithms aimed at the efficient resolution of complex problems, based on data structures suitable for supporting the computational load of the problem faced.
LABORATORY B: The main objective of the second part of this course (II year) is the integration of the skills acquired in the first part of the course, with the development of skills concerning the application of the object-oriented development process to design and implement software applications that interface with a relational database based on the requirements of those applications. This objective requires the application of the knowledge acquired by the student in the courses of "Software Design", "Databases", and "Concurrent and distributed programming".
At the end of the second part of the course, the student will have expanded their knowledge and skills (by adding functionality to the software application developed in the first part of the course) with the design and software development of a distributed architecture, interfaced to a system of relational data management.
At the end of the course, the student will therefore have experienced and will therefore be able to manage the entire object-oriented development process, and in particular:
1. will have a general understanding of the activities and artifacts produced during the development process
2. will be able to elicit and analyze the functional and non-functional requirements of the system
3. will be able, starting from the analyzed requirements, to design the application
4. will be able to design and implement the database, and the selection and data manipulation queries
5. will be able to implement the designed application in Java, managing the communication aspects in a distributed environment, concurrent access to shared resources, and interfacing with the database.

LABORATORY A: The acquisition of the different knowledge and skills expected will develop in a parallel way throughout the course of the 1st and 2nd year of the course. During the first part of the teaching, a real software project will be presented and the main steps and methodologies for its development will be discussed, which must then be addressed independently by the students (individually or in teams).
LABORATORY B: During the second part of the course, the extension of the functionality of the software application developed during the first year of the course will be discussed, with the elements of the Interdisciplinary Laboratory B (design, management of communication aspects in a distributed environment, concurrent access to shared resources, and interfacing with databases). Students will develop these functional extensions independently (individually or in teams).

See the section "Course Contents".

LABORATORY A: The presentation of the projects has the purpose of exposing the specifics of the programs that the students will have to carry out. The presentation takes place interactively, at least partially simulating the interaction with the "stakeholder" or user of the application. In this sense, the student is not passively the subject of the presentation, but is involved to take an active part and exercise his knowledge to identify and explore the salient and critical points of the requirements.
The first part of the teaching is divided into lectures (8 hours), plus design and software development activities carried out by the student as a self-employed person.
One lesson (2 hours) is dedicated to the presentation of the software application specifications that students will have to implement as an exam project.
LABORATORY B: The second part of the teaching is divided into lectures (8 hours), and design and software development activities carried out by the student as self-employed work.
The lessons are dedicated to the presentation of the activities and methodologies that characterize the object-oriented development process and to the presentation of approaches to document the artifacts produced during this process. One lesson (2 hours) is dedicated to the presentation of the specifications of the new additional software features to be developed as an exam project.

The teacher receives by appointment, upon request via e-mail to alessandra.rizzardi@uninsubria.it. The teacher only replies to e-mails signed and from the students.uninsubria.it domain.