Skip to Main Content (Press Enter)

Logo UNIRC
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Projects
  • Expertise & Skills

UNI-FIND
Logo UNIRC

|

UNI-FIND

unirc.it
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Projects
  • Expertise & Skills
  1. Courses

85T010 - ALGORITMI E STRUTTURE DATI

courses
ID:
85T010
Duration (hours):
48
CFU:
6
SSD:
Data Processing Systems
Located in:
REGGIO DI CALABRIA
Url:
Course Details:
COMPUTER, ELECTRONIC AND TELECOMMUNICATIONS ENGINEERING/Homeland Security Year: 2
COMPUTER, ELECTRONIC AND TELECOMMUNICATIONS ENGINEERING/GENERALE Year: 2
COMPUTER, ELECTRONIC AND TELECOMMUNICATIONS ENGINEERING/Elettronica e Biomedica Year: 2
COMPUTER, ELECTRONIC AND TELECOMMUNICATIONS ENGINEERING/INTERNET E CYBERSECURITY Year: 2
Year:
2025
  • Overview
  • Syllabus
  • Degrees
  • People
  • Other

Overview

Date/time interval

Primo Ciclo Semestrale (22/09/2025 - 19/12/2025)

Syllabus

Course Objectives

The learning objectives of the course are as follows:


  • Understand computability and algorithm complexity.
  • Analyze fundamental data structures and their properties.
  • Design and evaluate search, sorting, and graph algorithms.
  • Apply Divide and Conquer and Greedy techniques.
  • Implement data structures and algorithms in Java using the OOP paradigm.
  • Assess the efficiency and correctness of solutions.

Course Prerequisites

Knowledge of programming fundamentals and basic knowledge of the Java language and the Eclipse execution environment.



Teaching Methods

Lectures and practical exercises. The exercises, which mainly focus on the implementation of data structures in Java, are conducted through interactive teaching methods that encourage group work, the acquisition of practical skills, and the student’s proactive role.



Assessment Methods

Written exam lasting two hours focusing on solving problems in Java that require the correct use of data structures, and oral exam aimed at verifying the knowledge acquired across the entire course program.

The final grade, considering both the written and oral exams, will be assigned according to the following criteria:


30 - 30 with Honors Excellent - The student: - demonstrates complete and detailed knowledge of the subject: knows the relevant contents, uses correct terminology, identifies and explains the main concepts, integrates personal insights into their synthesis; - shows excellent understanding of the subject: clearly distinguishes between the main ideas and the supporting ones, is able to frame the key points, reinforces arguments with references to supplementary material or individual study, develops interdisciplinary connections; - demonstrates well-established ability to apply knowledge and analyze results; - presents the subject in a clear and structured way: the presentation is organized, logical, mature and concise.

28 - 29 Very Good - The student: - demonstrates in-depth knowledge of the subject: knows the relevant contents, uses correct terminology, identifies and explains most of the main concepts; - shows solid understanding of the subject: frames most key points although not always clearly distinguishing the main arguments from the less important ones, discusses topics with references to supplementary material or individual study; - demonstrates excellent ability to apply knowledge and analyze results; - presents the subject clearly and in a well-articulated way: the presentation is organized, logical, mature and essential, although allowing for some minor inaccuracies.

25 - 27 Good - The student: - demonstrates broad knowledge of the subject: knows the relevant contents, even if not explaining them completely; uses terminology, though not always precisely; identifies key concepts but cannot explain them fully or accurately; - shows adequate understanding of the subject: distinguishes the important key points but cannot fully frame them; - demonstrates good ability to apply knowledge; - presents the material clearly but not always completely, with a schematic organization and thoughts that are sometimes fragmented and repetitive.

22 - 24 Fair - The student: - demonstrates acceptable knowledge of the subject: knows most of the contents but shows gaps, displays some confusion regarding certain important, though not essential, concepts; - shows essential understanding of the subject: does not always manage to frame all arguments or sometimes does so inaccurately; - demonstrates fair ability to apply the fundamental concepts of the subject; - presents the material correctly but without a fully clear and coherent structure, sometimes including material that is not very relevant.

18 - 21 Satisfactory - The student: - demonstrates limited knowledge of the subject: knows the most relevant contents but shows numerous gaps, identifies many key concepts but cannot illustrate them with completeness and precision; - demonstrates basic understanding of the subject: has some difficulty distinguishing key points and does not always manage to frame them adequately due to incompleteness or inaccuracy; - shows uncertainty in applying the fundamental concepts of the subject; - presents the material in an unclear and confused way, uses language in a poorly organized manner, with fragmented and repetitive thoughts, and does not always use terminology precisely.

Fail - The student: - demonstrates poor and fragmented knowledge of the subject: does not know the essential contents, showing extensive gaps, and does not identify the key concepts; - shows serious errors in understanding, does not answer numerous questions or does not solve numerous problems, shows errors in applying the fundamental concepts of the subject; - does not reach an acceptable level of articulation of thought regarding the subject.



Texts

  • Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, Algoritmi e strutture dati, McGraw-Hill.
  • Camil Demetrescu, Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano, Progetto di algoritmi e strutture dati in Java, McGraw-Hill.
  • Cormen-Leiserson-Rivest: Introduzione agli algoritmi e strutture dati 2a ediz., McGrawHill.
  • Ausiello, et al., Teoria e Progetto di Algoritmi Fondamentali, Franco Angeli.
  • A. Bertossi, Strutture, Algoritmi, Complessita', ECIG, Universita' di Pisa.
  • Cay Horstmann, Concetti di informatica e fondamenti di Java, Apogeo.



Contents

Introduction (1 CFU)


Problems and algorithms

Overview of the notion of Computability and the Church-Turing thesis.

Computational complexity of problems and algorithms (O, Omega, Theta notation).

Review of notions of equivalence and order relations.

Partially ordered sets and lattices.

Structure of memory during program execution and argument passing methods.


Data Types and Data Structures (1.5 CFU)


Vectors, Matrices, Symmetric Matrices, Lists, Ordered Lists, Stacks, Queues, Heaps, Binary Search Trees, General Trees, Priority Queues, Sets, Dictionaries, Hash Tables, Directed and Undirected Graphs, Weighted Graphs.


Fundamental Algorithms, Programming Techniques, and Graph Algorithms (1.5 CFU)


Basic Graph Algorithms (Node Reachability in a Graph, Connected Components, Minimum Spanning Tree).

Search and Sorting Techniques.

Heap Sort.

Divide and Conquer (e.g., Binary Search, Merge Sort, Quadratic Sorting Techniques, Factorial Calculation, Fibonacci Sequence Calculation).

Recurrence Relations to define the complexity of Divide and Conquer techniques.

Greedy Techniques (Knapsack, Dijkstra's Algorithm, Prim's Algorithm, Implementations using Vectors and Indexed Heaps).

Examples of Applications of Graph Algorithms to Computer Networks (routing, connectivity, etc.).


Object-Oriented Programming in Java (2 CFU)


OO Features in Java (Encapsulation, Inheritance, Polymorphism, Generics, Interfaces).

Implementation of studied data structures and algorithms in Java.

Exploration of Java's standard libraries.


EXPECTED LEARNING OUTCOMES

The expected learning outcomes of the course, in accordance with the Dublin Descriptors, are as follows:


Knowledge and understanding:

Students will acquire a thorough understanding of the fundamental concepts of computability, computational complexity, and data structures, alongside a critical grasp of algorithmic design techniques and their practical applications in object-oriented programming languages.

Applying knowledge and understanding:

Students will be able to apply the acquired knowledge to design, implement, and optimize algorithms in Java, correctly using data structures and programming techniques. They will solve complex problems independently and rigorously, integrating theoretical concepts with practical execution.

Making judgements:

Students will develop the ability to critically analyze computational problems, selecting and justifying the most appropriate solutions in terms of complexity and resources. They will evaluate the advantages and limitations of different techniques and approaches, considering real-world or hypothetical scenarios.

Communication skills:

Students will be able to clearly communicate complex concepts, algorithmic solutions, and data structures to both specialist and non-specialist audiences, using precise technical language and appropriate tools such as diagrams, pseudocode, and documented Java code.

Learning skills:

Students will acquire autonomous learning skills to further explore the course topics and address new technologies and programming paradigms. They will be capable of accessing scientific sources, critically analyzing them, and integrating them into their continuous learning process.


More information

Teams code: 9jvzmzo

Channel used to distribute exercises and other teaching materials to students


Degrees

Degrees

COMPUTER, ELECTRONIC AND TELECOMMUNICATIONS ENGINEERING 
Bachelor's Degrees
3 years
No Results Found

People

People (2)

BUCCAFURRI Francesco
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
Docenti di ruolo di Ia fascia
De Angelis Vincenzo
Teaching staff
No Results Found

Other

Main module

Algorithms and Data Structures
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.4.3.0