CODICE 108694 ANNO ACCADEMICO 2024/2025 CFU 6 cfu anno 2 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01 LINGUA Italiano SEDE GENOVA PERIODO 2° Semestre MODULI Questo insegnamento è un modulo di: ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI MATERIALE DIDATTICO AULAWEB OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI L'insegnamento vuole arrichire le competenze dello studente sul tema della programmazione di microprocessori. Lo studente potrá apprendere le tecniche di programmazione orientate agli oggetti e acquisire la capacitá di sviluppare programmi e librerie utilizzando il linguaggio C++. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO L'insegnamento mira a fornire una conoscenza teorica e operativa della progettazione di sistemi Software basati su Programmazione Orientata agli Oggetti. A questo obiettivo teorico si affianca l'obiettivo di fornire competenze pratiche di realizzazione di architetture Object-Oriented usando il Linguaggio C++. Una frequenza attiva e costante alle lezioni dell'Insegnamento consentirà allo studente di: - comprendere le fondamenta culturali che sottendono alla Programmazine Object-Oriented - conoscere la sintassi e l'impostazione concettuale del linguaggio C++ - comprendere la sintassi e lo schema architetturale di un sistema SW basato sul linguaggio C++ - riconoscere e analizzare ambienti e framework Software basati sul linguaggio C++ - progettare e implementare framework Software basati sul linguaggio C++ I risultati fondamentali di apprendimento consistono : - nella corretta interpretazione del paradigma Object Oriented - nella capacità di progettare autonomamente framework C++ con classi e polimorfismo - nella capacità di implementare framework e classi C++ complesse seguendo specifiche progettuali MODALITA' DIDATTICHE Le lezioni alternano spiegazioni teoriche ad esercitazioni pratiche. La teoria è frequentemente esemplificata con l’analisi, l’esecuzione e il debug di frammenti di codice direttamente sul PC del docente; il raggiungimento degli obiettivi formativi e associati risultati di apprendimento è verificato in maniera progressiva attraverso tali sperimentazioni, che lo studente può replicare e modificare autonomamente per una rielaborazione personale dei concetti appresi e dimostrati. Nella parte conclusiva è prevista la sperimentazione diretta su PC di ogni discente (o gruppi). Il materiale sviluppato a lezione (SW di esempi pratici) viene condiviso attraverso le piattaforme AulaWeb e Teams. Gli studenti possono interagire direttamente con il docente durante le lezioni oppure attraverso la piattaforma Teams. E' altamente raccomandata la frequenza alle lezioni, dato che le lezioni frontali offrono dimostrazioni di progettazione software e considerazioni multidisciplinari non ritrovabili in testi di riferimento PROGRAMMA/CONTENUTO Introduzione Basi della programmazione Object-Oriented, differenze rispetto a programmazione C Concetti e Classi Definizione di classi e descrittori fondamentali Overloading operatori Gerarchie di classi Polimorfismo e funzioni/classi virtuali Template e eccezioni Questo insegnamento, trattando temi di interesse scientifico-tecnologico quali l'evoluzione dell'elettronica e dei sistemi embedded a supporto della Società e della Persona, contribuisce al raggiungimento dei seguenti Obiettivi di Sviluppo Sostenibile dell'Agenda ONU 2030: Obiettivo 3. Assicurare la salute e il benessere per tutti e per tutte le età (i sistemi embedded hanno un ruolo decisivo nel comparto salute/sanità/benessere) Obiettivo 4. Fornire un’educazione di qualità, equa ed inclusiva, e opportunità di apprendimento per tutti (la diffusione di queste competenze aumenta il livello culturale generale della società nel settore tecnologico) Obiettivo 5. Raggiungere l’uguaglianza di genere ed emancipare tutte le donne e le ragazze (l'insegnamento promuove una diffusione indifferenziata e paritaria delle competenze tecnologiche, nella certezza che i temi di elettronica possano/debbano essere pervasivi indipendentemente da età, gender e altri fattori potenzialmente discriminanti) TESTI/BIBLIOGRAFIA Materiale fornito a lezione dal docente Per la sintassi C++ è consigliato un testo generico di introduzione al linguaggio C++ Un esempio: H. Schildt, "Guida al linguaggio C++", McGraw Hill, 1996 Ottimi (non indispensabili) i libri di Bruce Eckel "Thinking in C++" Gli studenti con disturbi dell'apprendimento ("disturbi specifici di apprendimento", DSA) potranno utilizzare modalità e supporti specifici che verranno di volta in volta stabiliti d'intesa con il delegato dei corsi di Ingegneria nella Commissione per la Inclusione di studenti con disabilità (vedere anche la sezione “Altre informazioni”). DOCENTI E COMMISSIONI RODOLFO ZUNINO Ricevimento: Su appuntamento, previa email a rodolfo.zunino@unige.it PAOLO GASTALDO Ricevimento: ricevimento su appuntamento email: paolo.gastaldo@unige.it LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame ha una duplice struttura: a) Test a risposta multipla per verificare apprendimento del linguaggio di programmazione e delle competenze di OOP (votazione 0-30 lode) b) Valutazione qualitativa di un Project Work (da 0 a 4 punti aggiuntivi rispetto alla votazione di cui al punto a) Le valutazioni positive non hanno scadenza temporale, salvo la reiterazione volontaria della prova d'esame da parte dello studente. MODALITA' DI ACCERTAMENTO Durante lo svolgimento delle lezioni, gli studenti possono verificare progressivamente i risultati di apprendimento attraverso le sperimentazioni dirette di programmazione, seguendo le dimostrazioni pratiche esposte dal docente in aula e rielaborandone i contenuti in modo autonomo. L'esame finale rappresenta un momento di verifica formale complessiva sull'insieme di nozioni e competenze apprese. La validazione delle competenze si attua in modo progressivo nella valutazione delle risposte: - un gruppo di domande "base" mira a verificare l'acquisizione delle conoscenze fondamentali, requisiti minimi per il superamento dell'esame (18-22) in particolare riguardo la sintassi e le principali caratteristiche di un framework C++ - un gruppo di domande di riferimento mira a verificare il livello atteso medio di conoscenza e competenze acquisite dall'insegnamento (23-28), in particolare riferite alle costruzioni tipiche dei framework C++ con aspetti professionali standard - un gruppo di domande avanzate evidenzia la acquisizione di contenuti di livello elevato elaborati in modo autonomo dallo studente (29-30Lode), riguardanti comprensione delle meccaniche software di progettazione e funzionamento avanzato dei framework C++ L'insieme complessivo del test valuterà la conoscenza della sintassi del linguaggio C++, la capacità di comprendere e analizzare framework SW secondo il paradigma della programmazione Object Oriented, e la precisione nella rielaborazione dei concetti appresi, mediante domande a contenuto selettivo che richiedano un ragionamento personale. ALTRE INFORMAZIONI Gli studenti con disabilità o con DSA possono fare richiesta di misure compensative/dispensative per l'esame. Le modalità saranno definite caso per caso insieme al Referente per Ingegneria del Comitato di Ateneo per il supporto agli studenti disabili e con DSA. Gli studenti che volessero farne richiesta sono invitati a contattare il docente dell'insegnamento con congruo anticipo mettendo in copia il Referente per Ingegneria (https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.html), senza inviare documenti in merito alla propria disabilità.