Course Details

Computational architectures, networks and security

MF0614

Course
Computational architectures, networks and security
Code
MF0614
Academic Year
2026/2027
Curriculum Year
2026/2027
Degree Programme
ARTIFICIAL INTELLIGENCE AND DIGITAL INNOVATION
Curriculum
000 - 000-GENERICO
Course coordinator
Credits
9
Lecture Hours
72
Scientific Disciplinary Sector (SSD)
INFO-01/A - Informatics
Course Type
Single-subject learning activity
Course Delivery
OPZ - Opzionale
Year
1
Teaching period
Secondo Semestre
Campus
VERCELLI
Teaching language
Italian
Course Contents
Part One – Fundamentals of Computer Science, Computing Systems, Networks, Web Applications, and Security (6 ECTS)
The first part of the course provides a structured overview of the foundations of computer science, introducing students to the main aspects of computing systems: computer architecture, hardware and software components, data representation, and the layered view of computer architectures. The main types of applications, both local and network-distributed, are examined, together with the fundamental concepts related to software licensing.
A significant part of the course is devoted to computer networks, communication protocols, and web applications. Students are guided in understanding the devices and components required to connect PCs, mobile devices, and IoT sensors to networks, with particular attention to the sizing of devices and network infrastructures.
The first part concludes with an introduction to cybersecurity, covering security requirements, the main types of attacks, incident organization and management, cryptographic protocols, and the operating principles of firewalls. Particular attention is devoted to identifying different cryptographic solutions and understanding their relationship with security, efficiency, and reliability requirements.

Part Two – Software Engineering, Requirements, and UML Modelling (3 ECTS)
The second part introduces the fundamental principles and techniques for software system design, with particular emphasis on the use of UML (Unified Modeling Language) as a standard language for modelling and documentation.
After an overview of the software development process—from requirements elicitation and analysis to design, implementation, testing, and maintenance—the course explores the role of modelling across the different stages of the software life cycle.
Topics include the specification of functional and non-functional requirements, with particular attention to software quality, security, maintainability, efficiency, accessibility, and integration with local or distributed systems. The main UML diagrams used to represent requirements, use cases, system structure, interactions between components, and dynamic behaviour are also introduced.

Laboratory activities involve the use of software tools for creating UML diagrams and their progressive translation into code structures.

Integration of the Gender Dimension
The course includes dedicated content and cross-cutting activities addressing the gender dimension in digital systems. Topics include gender bias in data and information systems, accessibility and inclusive design as non-functional requirements, personal safety and gender-based digital violence, and the gender gap in ICT professions and cybersecurity.
Reference Texts
First parte
• D. Curtin, K. Foley, K. Sen, C. Morin, A. Marengo, A. Pagano, «Informatica di base», 7ª edizione, McGraw-Hill (punto 1.1 del programma esteso).
• J. F. Kurose, K. W. Ross, «Reti di calcolatori e Internet. Un approccio top-down», Pearson (punto 1.2 del programma esteso).
• C. P. Pfleeger, S. L. Pfleeger, L. Coles-Kemp, «Security in Computing», 6th Edition, Addison-Wesley Professional (punto 1.3 del programma esteso).

Second parte
• I. Sommerville, «Ingegneria del software», Pearson Italia, 10ª edizione, 2017 – https://he.pearson.it/bundle/709?isbn=9788891902245 (punti 2.1, 2.2, 2.4 del programma esteso).
• M. Fowler, «UML distilled», Pearson Italia, 4ª edizione, 2018 – https://he.pearson.it/bundle/701?isbn=9788891907820 (punti 2.3 e 2.4 del programma esteso).

Supplementary Teaching Materials
Lecture slides, exercise assignments, laboratory instructions, worked examples, scientific articles assigned for the project, and previous years’ examination papers are made available on the course’s dedicated page on the DIR – Didattica in Rete platform. Guidance on which materials are most appropriate for preparing for each assessment is provided in the **“Assessment Methods”** section.
Learning Outcomes
The course aims to provide students with basic yet structured knowledge of the main aspects of computer science, computing systems, networks, cybersecurity, and software design. The course seeks to develop students’ ability to understand how computer systems work, assess their requirements, potential, and limitations, and interact effectively and consciously with specialized technical professionals such as analysts, developers, system administrators, and security experts. The course is organized into two main parts.Part One – Fundamentals of Computer Science, Computing Systems, Networks, and SecurityThe first part of the course provides fundamental knowledge related to the digital representation of information, the structure and operation of computing systems, hardware and software components, communication networks, and the main aspects of cybersecurity. Students will acquire knowledge of the fundamental components of a computing system, such as processors, memory, storage devices, input/output devices, and communication interfaces. A significant part will be devoted to communication protocols, computer networks, and the connection of heterogeneous devices, including PCs, mobile devices, and IoT sensors. The course will enable students to understand the main issues related to system sizing, with reference to storage capacity, performance, transmission power, and the suitability of architectures for specific application contexts. The main topics of cybersecurity will also be addressed, including security requirements, types of attacks, incident management, cryptographic protocols, firewalls, and protection solutions. Students will be guided in understanding the relationship between security, efficiency, reliability, and application requirements.At the end of this part, students will be able to recognize the main components of a computer system, understand the role of communication protocols, evaluate sizing and security issues, recognize the main cyber threats, and contribute in an informed way to the definition of system requirements in their own application domain.Part Two – Software Design and UML ModelingThe second part of the course introduces the principles of Software Engineering and the fundamental techniques for designing, modeling, and documenting software systems, with particular attention to the use of UML, the Unified Modeling Language.Students will learn the main phases of the software development process, from the client’s request to requirements elicitation and analysis, from design to implementation, and finally to testing, delivery, and system maintenance.They will be introduced to the distinction between functional and non-functional requirements, with attention to aspects such as software quality, security, maintainability, efficiency, integration, and reliability. The course will provide practical skills in using the main UML diagrams to model the application domain, requirements, architecture, interactions between components, and the dynamic behavior of the system.Particular attention will be paid to the consistency between requirements, design models, and subsequent implementation. Through practical and laboratory activities, students will be guided in the use of software tools for creating UML diagrams, designing simple software systems, documenting design choices, and progressively translating models into code structures. At the end of this part, students will be able to organize a software development process according to the phases of Software Engineering, identify and formalize requirements, represent the architecture and behavior of a system through UML diagrams, correctly use the technical terminology of the field, and understand technical or scientific documentation related to systems, pipelines, and software architectures.Expected Overall SkillsAt the end of the course, students will have acquired the ability to understand and use the technical terminology of computer science and Software Engineering, critically evaluate different architectural, communication, and security solutions, and contribute to the definition of technical requirements in collaboration with specialized professionals. They will also be able to compare possible alternative solutions, justify design choices, clearly document the main characteristics of a system, and independently update their knowledge of new technologies, tools, protocols, and methodologies on the basis of the fundamental principles covered in the course.
Prerequisites
No mandatory prerequisites are required: access to the examination is not conditional upon having passed other courses. However, students are strongly advised to have acquired the basic knowledge of Python programming and databases provided by the foundational courses of the Degree Programme. These competencies are considered substantially preparatory for the activities involving software design, UML modelling, and the translation of models into software structures.

Knowledge and Skills Required at Entry
Before attending the course, students are expected to be able to:

- read and write simple Python programs using the main language constructs (assignment, selection, and iteration), defining functions and using elementary data structures (lists and dictionaries);
- describe the fundamental concepts of the relational model (tables, attributes, tuples, primary and foreign keys);
- formulate basic SQL queries (`SELECT`, `WHERE`, `ORDER BY`, aggregate functions, and simple joins).

No prior knowledge of computer networks, cybersecurity, Software Engineering, or UML is required: these topics are introduced by the course starting from the fundamentals.

Prerequisite Assessment and Remediation
At the beginning of the course, a short, non-selective self-assessment test on the prerequisites is made available on DIR, together with remedial materials on Python and SQL. The test does not contribute to the final grade and is intended to allow each student to independently assess their starting level.
Teaching Methods
Part One (6 ECTS – 48 hours: 28 hours of lectures, 20 hours of guided exercises)
Lectures are devoted to presenting the fundamentals of computer science, computer networks, the main communication protocols underlying the Internet and web applications, as well as the connection of heterogeneous devices (PCs, mobile devices, embedded systems, and IoT sensors) and cybersecurity (security requirements, types of attacks, vulnerabilities, risk and incidents, cryptographic protocols, firewalls, authentication systems, and organizational measures).

Guided exercises consolidate the concepts presented through examples, application cases, and classroom exercises on networks, protocols, system sizing, and security scenarios. Students work on assigned cases—individually and in small groups—and discuss their proposed solutions in class, comparing alternatives and justifying their choices in terms of computational performance, storage capacity, transmission power, scalability, and the suitability of architectures for specific application contexts.

Part Two (3 ECTS – 24 hours: 12 hours of lectures, 12 hours of laboratory activities)
Lectures introduce the main phases of Software Engineering and their application to the development of a software system, from requirements elicitation and analysis to design, implementation, testing, and maintenance. UML is introduced from both formal and practical perspectives.

Laboratory activities involve the development of an individual project in which students define a coherent set of UML diagrams and, where appropriate, experiment with their translation into simple Python structures or scripts. The project may be developed starting from a case study proposed during the course or from the analysis of a scientific article describing software systems, pipelines, or architectures, including those related to Artificial Intelligence and Computer Science. The outcome is a design document formalizing requirements, components, interactions, architectural choices, and the main implementation aspects.

Online tools are used for creating UML diagrams, including diagrams.net/draw.io, Visual Paradigm Online, PlantUML, Mermaid, Lucidchart, or equivalent tools.

Active Participation and Integration of the Gender Dimension
Students’ active role in the learning process is encouraged through classroom discussions of the solutions proposed for assigned cases, comparison of alternative design approaches, peer review of UML diagrams produced during laboratory activities, and the public presentation of individual projects, fostering critical thinking and autonomy.
The gender dimension is integrated both through a dedicated thematic session (Section 1.4 of the extended syllabus) and transversally, through the use of gender-sensitive and inclusive language in all teaching materials and the selection of case studies, examples, and personas that avoid stereotypes and represent users with diverse genders, ages, and abilities.

The course has a dedicated page on the DIR – *Didattica in Rete* platform, where lecture slides, instructions, supporting materials, examples, previous years’ examination papers, and additional resources useful for carrying out the teaching activities are made available.
Additional Information
Students with disabilities, Specific Learning Disorders (SLD), or Special Educational Needs (SEN) may request dedicated services and support tools by contacting the Staff for Career Development and Coordination and Student Services and by consulting the dedicated page on the University website:

https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa

Students with disabilities, SLD, or SEN may also contact the course instructor regarding the arrangements and procedures for the examination.

Office hours are available by appointment, arranged via email with the course instructor. All communications concerning the course are published on the dedicated DIR page.
Assessment Methods
Assessment consists of a **single oral examination of approximately 45 minutes**, divided into two components. No written or mid-term tests are предусмотрed.

Part One (6 ECTS – approximately 30 minutes): oral examination with 3–4 questions, including at least one practical question on system sizing or cybersecurity. It assesses knowledge of computing systems, networks, web and IoT technologies, and cybersecurity, as well as the ability to apply concepts and use technical terminology appropriately.

Part Two (3 ECTS – approximately 15 minutes): individual presentation and brief discussion based on an assigned scientific article in English. Students present the **UML modelling of the system** described in the article, covering requirements, components, interactions, architecture, and, where appropriate, dynamic behaviour. Slides and diagrams must be uploaded to DIR at least three days before the examination.

Final Grade
Each component is graded out of 30 and weighted according to ECTS:

* Part One: 2/3 of the final grade;
* Part Two: 1/3 of the final grade.

A minimum grade of **18/30 in each component** is required to pass. The final grade is rounded to the nearest integer (0.5 rounded up). 30 cum laude requires 30/30 in both components, together with demonstrated critical autonomy and full mastery of technical terminology.

Grading levels:
Detailed Syllabus
The course is organized into two main parts, for a total of 9 CFU credits. The first part, corresponding to 6 CFU credits, is dedicated to the fundamentals of computer science, computing systems, networks, web applications, and cybersecurity. The second part, corresponding to 3 CFU credits, is dedicated to Software Engineering, requirements definition, and UML modeling.

1) Part One – Fundamentals of Computer Science, Networks, and Cybersecurity (6 CFU credits)
The first part of the course introduces the fundamental concepts of computer science and provides the basic knowledge needed to understand the functioning of computing systems, communication networks, web applications, and the main cybersecurity mechanisms.

1.1) Basic Computer Science
The basic concepts of computer science will be presented, with particular attention to computer architecture, the main hardware and software components, data representation, and the fundamentals of Boolean logic. The differences between hardware, firmware, operating systems, applications, and services will also be introduced, according to a layered view of computer architectures.

1.2) Networks and Web Applications
A significant part of the course will be dedicated to computer networks and communication protocols. The ISO/OSI model, the Ethernet protocol, the IP protocol, the TCP and UDP protocols, and the HTTP protocol will be introduced. Web applications, the use of HTTP methods, and the main types of information systems based on web applications will also be analyzed. Practical examples, including examples in Python, will be presented to help students understand the functioning of network communications and distributed applications.

1.3) Cybersecurity, Web, Cloud, and Privacy
The first part also includes an introduction to cybersecurity. The basic concepts of security, the main protection requirements, types of attacks, cryptography, web security, network communication security, and cloud security will be addressed. Elements of privacy, data protection, authentication, access control, secure protocols, and the main defense tools will also be introduced, with attention to the relationship between security, efficiency, and the application context.

2) Part Two – Software Engineering, Requirements, and UML Modeling (3 CFU credits)
The second part of the course introduces the main concepts of Software Engineering, with particular attention to the software process and the software life cycle, from requirements elicitation and analysis to design, implementation, testing, maintenance, and project management. The specification and design of software systems through UML, the Unified Modeling Language, will be explored in depth as a standard language for modeling and documentation. Requirements modeling, application domain modeling, use case definition, use case narrative writing, and the representation of architecture, interactions between components, and the dynamic behavior of the system will be addressed. The course will also cover the transition from UML models to code, with examples and simple applications in Python. The main software process models, some basic design patterns, and software tools for creating UML diagrams will also be introduced. Part of the activity will be dedicated to reading, understanding, and analyzing scientific articles in English concerning systems, pipelines, or software architectures in the fields of Artificial Intelligence and Computer Science. Starting from the assigned article, students will be required to produce a design and documentation document, formalizing requirements, components, interactions, architectural choices, and the main implementation aspects, and to prepare an academic presentation on the UML design of the analyzed system.
Expected Learning Outcomes
The assessment of learning is organized into two parts, in line with the structure of the course. The first part assesses knowledge and skills related to the fundamentals of computer science, computing systems, networks, and cybersecurity. The second part is dedicated to software design and UML modeling.

Part One – Fundamentals of Computer Science, Computing Systems, Networks, and Security
The assessment of the first part verifies knowledge of the main concepts related to the digital representation of information, the hardware and software components of a computing system, communication networks, web applications, mobile and IoT devices, and the main aspects of cybersecurity. The assessment may include theoretical questions, applied exercises, and reasoning-based questions aimed at verifying the student’s ability to correctly use technical terminology, distinguish between hardware, firmware, operating systems, applications, and services, recognize the main computing architectures, and evaluate their suitability for specific application contexts. Knowledge of communication protocols, device sizing, the connection of PCs, mobile devices, and IoT sensors, and integration with mobile applications and cloud systems will also be assessed. With regard to cybersecurity, the assessment will cover security requirements, the main types of attacks, authentication and access control mechanisms, cryptographic protocols, HTTPS, TLS, firewalls, and other network security devices. The ability to identify protocols, devices, and security measures appropriate to the application context will also be evaluated.

Part Two – Software Design and UML Modeling
The assessment of the second part consists of a short individual talk lasting approximately 15 minutes on a topic assigned by the instructor. Each student will be provided with a scientific article in English concerning a system, pipeline, or software architecture in the field of Artificial Intelligence or Computer Science. Starting from the analysis of the article, the student will prepare a presentation aimed at describing the UML design of the system, identifying its main requirements, components, interactions, architectural choices, and, where appropriate, its dynamic behavior through suitable UML diagrams. The assessment will take into account the ability to understand and summarize the content of the scientific article, the correctness and completeness of the UML modeling, the consistency between the system description and the diagrams produced, the clarity of the presentation, and the appropriate use of Software Engineering terminology.

Overall Assessment
The final assessment will take into account both parts of the examination, considering mastery of theoretical concepts, the ability to apply them to concrete contexts, the correctness of the technical analysis, the quality of the UML modeling, the ability to justify design choices, and the appropriate use of terminology related to computer science, cybersecurity, and Software Engineering.
Last update:09-09-2026 00:14:31