Skip to Main Content (Press Enter)

Logo UNIBG
  • ×
  • Home
  • Degrees
  • Courses
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills
  • Equipment

UNI-FIND
Logo UNIBG

|

UNI-FIND

unibg.it
  • ×
  • Home
  • Degrees
  • Courses
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills
  • Equipment
  1. Courses

Design, Algorithms, and Computability - 38090-MOD1

courses
ID:
38090-MOD1
Dettaglio:
SSD: Information Processing Systems Duration: 72 CFU: 9
Located in:
DALMINE
Url:
Course Details:
COMPUTER SCIENCE AND ENGINEERING - 38-270/PERCORSO COMUNE Year: 1
Year:
2026
Course Catalogue:
https://unibg.coursecatalogue.cineca.it/af/2026?co...
  • Overview
  • Syllabus
  • Degrees
  • People
  • Other

Overview

Date/time interval

Primo Semestre (14/09/2026 - 19/12/2026)

Syllabus

Course Objectives

At the end of the module, students will acquire theoretical and practical knowledge of methods, tools, and technologies for designing and implementing distributed software applications, both “in the large” and “in the small”. In particular, the module addresses: agile development processes; software architecture design, documentation, and analysis; component- and service-oriented development; principles for designing APIs and distributed architectures; the effective use of algorithms and data structures; UML modelling; object-oriented programming with Java; and the use of development environments, frameworks, plug-ins, and supporting technologies for building and testing modular, maintainable, and scalable software systems.

The module also introduces the main evolutions of modern software architectures, with particular attention to distributed systems based on services, microservices, and intelligent components. In perspective, it also discusses the principles underlying agentic architectures, where autonomous software components or AI/LLM-based agents can plan, interact with tools, coordinate with other services or agents, and contribute to the execution of complex software workflows.









Course Prerequisites

Fundamentals of: Computer Science, Software Engineering and UML notation, Java programming. Mathematical basis of series and sums.

Teaching Methods

Theoretical lectures and hands-on laboratory sessions.


Assessment Methods

Written exam, and the design and development of a software project to be presented and discussed during the oral exam. So the exam includes a written test and a subsequent oral test. Both tests are mandatory.

The written test is divided into two parts. The first part includes 4 open-ended questions on "Design and algorithms" (duration of an hour and a half), while the second part includes a questionnaire (multiple choice and one open-ended) on "Computability" (duration 30 minutes). Only those obtaining a score higher than 18/30 are admitted to the oral exam. The oral exam consists in the presentation and discussion of an software project, which can also be developed in small groups of 2-3 students, and is considered passed with a score higher than 18/30.
The final score of the entire integrated course of "ADVANCED PROGRAMMING + DESIGN, ALGORITHMS AND COMPUTABILITY", which this module belongs to, is given by the weighted average of the marks obtained in the two modules.
In order to ensure the effective organization and management of examination sessions, the lecturer may apply the so-called “skipping of the immediately following exam session” to students who have received a severely insufficient grade or who, after registering for the exam, are absent without justification.

Contents

**Coarse grained design**: Software architecture and API-based design and analysis. Topics: agile development processes, AMDD, requirements manipulation and use case modeling, SW architecture design in UML, SW architecture quality analysis (relyability and availability), architectural design patterns/styles (adaptive, IoT-Cloud-based, (micro-)service-oriented, and agent-based), graphical UIs for Java/Android destop/mobile applications, API-based development with REST, unit testing and API testing of software applications, tools for SW metrics and static analysis. **Fine grained design**: Detailed analysis of each component and definiton of algorithms. Topics: Introduction to algorithms and data structures, development cycle of an algorithm, algorith complexity and asymptotic notation, guidelines for implementing algorithms and abstract data types in Java, basic data structure and algorithms (list, stack, queue), order algorithms, tree data types, research trees (binary research trees, B-trees, red-black trees), application of tree data types to manipulate XML documents, hash tables, graphs representation and traversals, graph minimum paths, design methodologies for algorithms (incremental,divide-et-impera,greedy,dynamic programming). ** Computability **: Computability theory: fundamental concepts and theorems; Turing machines; deterministic and non-deterministic computing.


Online Resources

  • E-learning
  • Leganto - Reading lists

More information

For teaching material and other details on the course, register and always refer to the course page on the Moodle UniBg e-learning platform.

Degrees

Degrees

COMPUTER SCIENCE AND ENGINEERING - 38-270 
Master's Degree
2 years
No Results Found

People

People (2)

SCANDURRA Patrizia
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Componente del Presidio della Qualità
SCANDURRA Patrizia
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Professori Associati
No Results Found

Other

Main module

Integrated Course in Advanced Programming + Design, Algorithms, and Computability
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.10.1.0