Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W002136] - PROGRAMMAZIONE AD OGGETTI E STRUTTURE DATIOBJECT ORIENTED PROGRAMMING AND DATA STRUCTURES
Rocco PIETRINI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea - [IT14] INGEGNERIA DELL’INFORMAZIONE PER VIDEOGAME E REALTÀ VIRTUALE First Cycle Degree (3 years) - [IT14] INFORMATION ENGINEERING FOR VIDEOGAMES AND VIRTUAL REALITY
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 1 - Secondo Semestre
Anno offertaAcademic year: 2023-2024
Anno regolamentoAnno regolamento: 2023-2024
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


PREREQUISITI PREREQUISITES

Conoscenze informatiche di base acquisite nel corso di Fondamenti di Informatica.

Basic computer skills acquired in the Fundamentals of Computer Science course.


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Lezioni frontali sugli argomenti in programma, esercitazioni di Programmazione ad Oggetti svolte in classe.
Il corso sarà suddiviso in lezioni (48h) ed esercitazioni (24h).

The course will be divided into lessons (48h) and exercises (24h).


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L’insegnamento permette agli studenti di acquisire le nozioni fondamentali e le conoscenze avanzate della Programmazione ad Oggetti, anche tramite lo studio di un linguaggio di programmazione di riferimento. Tali conoscenze, integrando le nozioni acquisite nel corso di Fondamenti di Informatica, costituiranno degli approfondimenti che dovranno potenziare la comprensione della teoria dei linguaggi e dei vantaggi dei diversi paradigmi di programmazione. Il corso si completerà con una trattazione di alcune tecniche di programmazione e di alcune strutture dati avanzate utilizzati nella programmazione di videogiochi ed applicazioni di realtà estesa.


Capacità di applicare conoscenze e comprensione.

Al termine del corso lo studente sarà in grado di utilizzare in maniera appropriata i principi della programmazione ad oggetti e la sintassi del linguaggio adottato nel corso per sviluppare programmi di media complessità e con caratteristiche di flessibilità, rispondenza ai requisiti ed efficienza, scegliendo gli algoritmi e le strutture dati più adeguati al particolare problema.


Competenze trasversali.

L’esecuzione di un progetto, che verrà svolto in gruppi o in autonomia e che porterà alla stesura di una relazione, contribuirà a migliorare sia la capacità comunicativa che deriva anche dal lavoro in gruppo, sia la capacità di apprendimento e di problem solving in autonomia.


Knowledge and Understanding.

The course enables students to acquire the fundamental notions and advanced knowledge of Object-Oriented Programming, also through the study of a reference programming languages. This knowledge, by integrating the knowledge gained during the course of Fundamentals of Computer Science will form the insights that will enrich the understanding of the theory of languages and of the advantages of different programming paradigms. The course will be completed with a discussion of some programming techniques and advanced data structures used in the programming of video games and extended reality applications.


Capacity to apply Knowledge and Understanding.

At the end of the course students will be able to use properly the principles of object-oriented programming and the syntax of the language used in the course to develop software of medium complexity, characterized by flexibility, compliance with the requirements and efficiency, choosing the most appropriate data structures and algorithms for the particular problem at hand.


Transversal Skills.

The execution of a project, which will be played in groups or independently and that will lead to the drafting of a report, will help improve both the communication skills that also stems from teamwork, and autonomous learning and problem solving skills.



PROGRAMMA PROGRAM

I seguenti argomenti saranno trattati attraverso lezioni teoriche ed esercitazioni:

Il processo di sviluppo del software: aspetti organizzativi e metodologici; prodotto software e processo; il ciclo di vita dei sistemi software.

Metodologie di base per progettare algoritmi e analizzarne l’efficienza. Strutture dati fondamentali: definizioni e utilizzo.

Evoluzione dei linguaggi di Programmazione: astrazione sul controllo; astrazione sui dati

Astrazione sui dati e sul controllo: la Programmazione a Oggetti.

Il linguaggio C#

Introduzione .NET, sviluppo cross-platform

Evoluzioni del C#

Lavorare con le variabili

Controllo del flusso e casting

Scrivere, debuggare e testare funzioni

Eredità ed Interfacce

Delegati ed Eventi

.NET Types e .NET components

Files. Streams e Serializzazione

Proteggere dati e l’applicazione

Lavorare con i dati (query anche mediante LINQ)

Lambda expression

Strutture dati per i videogame e XR

Liste, Stack, Code, Tabelle Hash, Alberi, Grafi

Rappresentazione di modelli 3D mediante point cloud, mesh

Mesh poligonale come un un insieme di vertices, edges, faces e loro relazioni topologiche

Alberi avanzati (quadtree, octree)

Gestione delle strutture dati in C# vs C++

Le esercitazioni saranno svolte per i vari argomenti attraverso esempi applicativi in linguaggio C#, svolte anche in gruppo

The following contents will be provided by lectures and exercises:

The software development process: organizational and methodological aspects; software product and process; the life cycle of software systems.

Basic methodologies for designing algorithms and analyzing their efficiency. Fundamental data structures: definitions and usage.

Evolution of Programming languages: abstraction on control; abstraction on data.

Abstraction on data and control: Object Oriented Programming.

The C# language

Introduction .NET, cross-platform development

Evolutions of C#

Working with variables

Flow control and casting

Writing, debugging, and testing functions

Inheritance and Interfaces

Delegates and Events

.NET Types and .NET components

Files. Streams and Serialization

Protecting data and the application

Working with data (queries also using LINQ)

Lambda expression

Data structures for video games and XR

Lists, Stacks, Queues, Hash Tables, Trees, Graphs

Representation of 3D models using point clouds, meshes

Polygonal mesh (as a set of vertices, edges, faces and their topological relationships)

Advanced trees (quadtree, octree)

Data structure management in C# vs C++

The exercises will be carried out for the various topics through application examples in C# language, also carried out in groups.


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

Il livello di apprendimento degli studenti viene valutato attraverso due prove:
- una prova pratica, consistente nell’analisi e implementazione, secondo i paradigmi della Programmazione ad Oggetti e utilizzando il linguaggio C#, di un progetto assegnato dal docente; la prova è effettuata in gruppi da 2-3;
- una prova orale, consistente nella esposizione di argomenti riguardanti la Programmazione ad Oggetti, oltre ai commenti relativi alle scelte implementative della prova pratica.
Per gli di studenti con disabilità/invalidità o disturbo specifico di apprendimento (DSA), che abbiano fatto debita richiesta di supporto per affrontare lo specifico esame di profitto all’Info Point Disabilità/DSA dell’Ateneo. Le modalità di esame saranno adattate alla luce di quanto previsto dalle linee guida di Ateneo (https://www.univpm.it/Entra/Accoglienza_diversamente_abili )


Criteri di valutazione dell'apprendimento.

Per superare con esito positivo la prova orale lo studente dovrà dimostrare di possedere una complessiva conoscenza dei contenuti dell’insegnamento, esposti in maniera sufficientemente corretta con utilizzo di adeguata terminologia tecnica.
La valutazione massima è attribuita agli studenti che dimostrano ottima capacità di analisi e di implementazione nella prova di programmazione e che in quella orale dimostrano una conoscenza approfondita dei contenuti dell’insegnamento, rigore metodologico ed appropriatezza di vocabolario tecnico.


Criteri di misurazione dell'apprendimento.

Viene attribuito un voto in trentesimi, con eventuale lode.
Il voto minimo per il superamento dell’esame è 18/30.


Criteri di attribuzione del voto finale.

Perché l'esito complessivo della valutazione sia positivo, lo studente deve conseguire almeno 18/30 sia nel progetto sia in quella orale. Il voto complessivo è dato dalla media dei voti ottenuti nelle due prove.


Learning Evaluation Methods.

The students' learning level is assessed through two tests:
- a practical test, consisting in the analysis and implementation, according to the paradigms of Object Oriented Programming and using the C# language, of a project assigned by the Professor; the test is carried out in groups of two/three;
- an oral examination, consisting in the presentation of topics concerning Object Oriented Programming, as well as comments on the implementation choices of the practical test.
For those of students with disability/invalidity or specific learning disorder (DSA), who have duly made a request for support to deal with the specific proficiency exam to the University's Disability/DSA Info Point. The examination modalities will be adapted in light of the provisions of the University guidelines (https://www.univpm.it/Entra/Accoglienza_diversamente_abili )


Learning Evaluation Criteria.

To pass the oral examination the student must show a comprehensive knowledge of the course contents, expounded in a sufficiently correct way by using an adequate technical terminology.
The highest rating is attributed to students who demonstrate excellent analytical and implementation skills in the programming test and who demonstrate in-depth knowledge of the teaching contents, methodological rigor and appropriateness of technical vocabulary in the oral one.


Learning Measurement Criteria.

A mark in thirtieth is awarded, with possible honors.
The minimum mark for passing the exam is 18/30.


Final Mark Allocation Criteria.

To pass the exam, the student must obtain at least 18/30 both in the group project and in the oral examination. The final grade will be the average of the grades obtained in the project and in the oral examination.



TESTI CONSIGLIATI RECOMMENDED READING

C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals: Start building websites and services with ASP.NET Core 7, Blazor, and EF Core 7, 7th Edition. Mark J. Price. ISBN-10 ‏ : ‎ 1803237805


Materiale didattico disponibile sul sito https://learn.univpm.it

C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals: Start building websites and services with ASP.NET Core 7, Blazor, and EF Core 7, 7th Edition. Mark J. Price. ISBN-10 ‏ : ‎ 1803237805

Electronic materials available on the University's Moodle platform:
https://learn.univpm.it


Scheda insegnamento erogato nell’A.A. 2023-2024
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2023-2024

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427