Vai al contenuto principale
Completato 0%
0 / 14
Stai visualizzando l’indice del corso. Esegui il login con il tuo account personale per iscriverti al corso e accedere ai contenuti.
Accedi e iscriviti

Strutturare il software con funzioni, parametri e ricorsione per programmi più chiari ed efficaci

Descrizione del corso

Il corso affronta uno dei principi cardine dell'ingegneria del software: la decomposizione di un programma in unità funzionali autonome e riutilizzabili. Partendo dalle fasi di sviluppo di un programma strutturato in funzioni, si discutono le modalità di articolazione del codice in moduli distinti, i meccanismi di comunicazione tra funzioni attraverso l'ambiente globale e mediante il passaggio di parametri, e l'impiego delle funzioni all'interno di espressioni. Il corso dedica inoltre particolare attenzione alla ricorsione. Le sessioni teoriche sono integrate da esercitazioni pratiche che prevedono la scrittura di codice in linguaggio C++, richiedendo allo studente di applicare i concetti acquisiti alla risoluzione di problemi concreti. ll corso è rivolto a studenti con nozioni di base di programmazione e rappresenta un approfondimento metodologico sui principi di modularizzazione del software, costituendo un passaggio formativo essenziale per lo studio di discipline informatiche più avanzate. 

Carico di lavoro totale del corso: 11 ore

Questo MOOC è offerto dal Politecnico di Milano.

Questo MOOC è stato prodotto nell’ambito del progetto Edvance - Digital Education Hub per la Cultura Digitale Avanzata. Il progetto è finanziato dall’Unione europea - Next Generation EU, Componente 1, Investimento 3.4 “Didattica e competenze universitarie avanzate".

EDDIE, Edvance
Politecnico
Finanziato EU MUR, Ministero Università e Ricerca Italia Domani Edvance

Ilos Risultati di Apprendimento Attesi

Alla fine di questo corso sarai in grado di:

  1. Progettare un programma secondo il principio di modularità, identificando le componenti funzionali di un problema complesso e traducendole in funzioni autonome, coese e riutilizzabili
  2. Implementare e gestire consapevolmente lo scambio di informazioni tra funzioni, ricorrendo in modo appropriato all'ambiente globale o al passaggio di parametri, considerando gli aspetti della leggibilità, della manutenibilità e della correttezza del codice
  3. Applicare il paradigma ricorsivo alla progettazione di funzioni
  4. Sviluppare autonomamente programmi modulari in C++, dimostrando capacità di integrare funzioni all'interno di espressioni e di strutturare il codice in modo leggibile ed efficiente

In termini generali, il partecipante svilupperà i risultati di apprendimento nei seguenti ambiti:
ESCO: programmazione informatica ESCO: C++ ESCO: librerie di componenti software ESCO: ambiente IDE

Prerequisites Prerequisiti

Non sono richieste conoscenze specifiche pregresse per poter seguire il corso.

Activities Attività

Oltre a fruire dei contenuti del corso, costituiti da video e da altri tipi di risorse online, potrai discutere e scambiare idee sui temi del MOOC con gli altri partecipanti tramite il Forum. Il forum è ad accesso libero e non viene moderato dal docente. Puoi utilizzarlo per confrontarti con gli altri partecipanti o per proporre loro discussioni relative ai contenuti. Potrai anche confrontarti con esercizi e quiz per valutare il tuo apprendimento.

Schema della sezione

  • Per accedere al contenuto: iscriviti al corso
  • Per accedere al contenuto: iscriviti al corso
  • La Week introduce il concetto di modularizzazione del software, realizzata tramite scomposizione di un programma in funzioni. Vengono analizzate le fasi di sviluppo di un software organizzato in moduli funzionali e le modalità di articolazione del codice in più funzioni. Si approfondisce lo scambio di informazioni tramite ambiente globale. Le esercitazioni guidano alla realizzazione di programmi in C++ dove applicare i concetti di modularizzazione studiati.

    Per accedere al contenuto: iscriviti al corso
  • La Week affronta i meccanismi di comunicazione tra funzioni attraverso il passaggio di parametri e l’uso delle funzioni all’interno di espressioni complesse. Viene introdotto il concetto di ricorsione, analizzandone struttura, condizioni di terminazione e ambiti di applicazione. Le attività pratiche consolidano la capacità di progettare e utilizzare correttamente funzioni in programmi strutturati.

    Per accedere al contenuto: iscriviti al corso
    • Icona Cartella
      Trascrizioni video Cartella
      Per accedere al contenuto: iscriviti al corso

Valutazione

Il corso prevede l’erogazione di un Open Badge, ottenibile sulla base del punteggio raggiunto rispondendo ai quiz valutati. Hai tentativi illimitati di risposta per ciascun quiz ma dovrai attendere 15 minuti. Il corso si considera completato in modo adeguato all'ottenimento del certificato se raggiungerai almeno il 60% del punteggio complessivo in ciascuno dei quiz valutati. Il punteggio massimo ottenibile in ciascun quiz è indicato all’inizio del quiz stesso. Puoi vedere il punteggio che hai ottenuto nel quiz in corrispondenza dell’ultimo tentativo fatto oppure nella pagina “Valutazione”.

Attestato

Il corso prevede l’erogazione di un Open Badge rispondendo correttamente ad almeno il 60% delle domande in ciascuno dei quiz valutati e rispondendo al questionario finale

Una volta completate le attività richieste potrai accedere a “Ottieni l’Open Badge”, avviando il rilascio del badge. Le indicazioni per accedere al badge saranno inviate al tuo indirizzo e-mail.

L’Open Badge non è un certificato ufficiale e non dà diritto a crediti universitari, a voti o a diplomi.

Accesso al corso e disponibilità dei materiali

Il corso è erogato in modalità online e gratuito.

Docenti del corso

Marco Brambilla

Marco Brambilla

Dipartimento di Elettronica, Informazione e Bioingegneria, Full Professor

Marco Brambilla è professore ordinario al Politecnico di Milano. È attivo nella ricerca e nell’innovazione, sia a livello industriale sia accademico. I suoi interessi di ricerca includono data science, linguaggi di modellazione del software e design pattern, crowdsourcing, monitoraggio dei social media e analisi dei big data. È stato visiting researcher presso CISCO a San José e presso l’University of California, San Diego. È stato inoltre visiting professor all’Università Paris-Dauphine.

È fondatore di diverse startup e spin-off, tra cui WebRatio, Fluxedo e Quantia, focalizzate sull’analisi dei social media, la modellazione del software, applicazioni software basate su mobile e processi di business, e progetti di data science. È autore di diversi libri internazionali, tra cui Model Driven Software Development in Practice (II edizione, Morgan-Claypool, 2017, adottato in oltre 100 università nel mondo), Web Information Retrieval (Springer, 2013), Interaction Flow Modeling Language (Morgan Kaufmann, 2014), Designing Data-Intensive Web Applications (Morgan Kaufmann, 2002). Ha inoltre pubblicato più di 250 articoli di ricerca su riviste e conferenze di primo livello. Ha ricevuto numerosi premi per i migliori articoli e ha tenuto keynote e interventi presso molte conferenze e organizzazioni. È il principale autore dello standard OMG IFML.

Ha partecipato a numerosi progetti di ricerca europei e internazionali. È stato revisore per progetti FP7 e valutatore di proposte EU FP7, nonché di programmi di finanziamento nazionali e locali in tutta Europa. È stato PC chair di ICWE 2008 e ICWE 2021, oltre che co-chair di diversi track, conferenze e workshop.

È associate editor di diverse riviste scientifiche e membro del program committee di numerose conferenze e workshop.

Mathyas Giudici

Mathyas Giudici

Dipartimento di Elettronica, Informazione e Bioingegneria, ricercatore post-dottorale

Mathyas Giudici è ricercatore al Politecnico di Milano. Ha conseguito il dottorato di ricerca in Information Technology, specializzandosi nello studio e nella progettazione di agenti conversazionali per promuovere comportamenti sostenibili in ambito energetico. Attualmente, la sua attività di ricerca si concentra sulla progettazione e valutazione di sistemi di collaborazione uomo–IA, con precedenti esperienze in data science, crowdsourcing e data visualization in ambito sociale e industriale.

Dal 2022 è membro attivo del team Leximore (ex Moovy), un dispositivo digitale innovativo per terapisti e caregiver di pazienti con disturbi del linguaggio e cognitivi. Il progetto ha ottenuto importanti riconoscimenti, raccogliendo oltre 60.000 euro attraverso diverse competizioni dedicate all’innovazione tecnologica.

Contatti

Per qualsiasi informazioni sui corsi o per problemi tecnici scrivi a pok@polimi.it o consulta la pagina delle FAQ.