Vai al contenuto principale
Completato 0%
0 / 21
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

Dalla formulazione del problema al codice: i principi della programmazione in C++

Descrizione del corso

Il corso si propone di introdurre i fondamenti della programmazione imperativa attraverso il linguaggio C++, con un approccio metodologico che privilegia la comprensione dei principi rispetto all’acquisizione di competenze sintattiche. Il percorso didattico prende avvio dalla formalizzazione del pensiero computazionale — dalla descrizione in linguaggio naturale di un problema alla sua rappresentazione tramite diagrammi di flusso — per giungere progressivamente alla codifica in un linguaggio di programmazione strutturato. Vengono trattati i principi fondamentali dell'informatica, tra cui la rappresentazione dei dati e dei programmi nella memoria del calcolatore, la gestione dell'input/output, la dichiarazione e l'uso delle variabili, le strutture di controllo e i criteri di leggibilità del codice. Il percorso teorico è integrato da sessioni di esercizi pratici in C++ che affrontano problemi algoritmici classici in un ambiente di sviluppo integrato (IDE). Il corso è rivolto a studenti privi di esperienza pregressa in programmazione e costituisce una solida base propedeutica per l'approfondimento di discipline informatiche più avanzate.

Carico di lavoro totale del corso: 12 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. Analizzare un problema e formalizzarne la soluzione, traducendo una descrizione in linguaggio naturale in una strategia algoritmica esplicita, rappresentabile mediante diagrammi di flusso e pseudocodice
  2. Scrivere, compilare ed eseguire programmi in C++, applicando correttamente le convenzioni sintattiche del linguaggio, la dichiarazione e l'uso delle variabili, la gestione dell'input/output e l'utilizzo delle principali librerie standard
  3. Utilizzare le strutture di controllo fondamentali — sequenza, selezione e iterazione — per la progettazione di programmi corretti, leggibili e rispondenti alle specifiche del problema
  4. Descrivere i principi di funzionamento di un sistema di calcolo, con riferimento alla rappresentazione dei dati in memoria, al ruolo del sistema operativo e all'interazione tra hardware e software nel processo di esecuzione di un programma
  5. Sviluppare autonomamente semplici programmi in un ambiente di sviluppo integrato (IDE), dimostrando capacità di problem solving

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 passaggio dalla descrizione informale di un problema alla sua formalizzazione, per poi esplorare le strategie di progettazione e implementazione di una possibile soluzione. Si discute la definizione di un algoritmo tramite uso dei diagrammi di flusso e la traduzione in un programma in C++. Si studiano i concetti di rappresentazione dei dati e dei programmi in memoria e si descrive la dichiarazione delle variabili. Un’esercitazione guidata accompagna lo sviluppo completo di un semplice programma.

    Per accedere al contenuto: iscriviti al corso
  • La Week è dedicata agli elementi operativi del linguaggio C++: dichiarazione e uso delle variabili, librerie standard e gestione dell’input/output. Viene presentato l’ambiente di sviluppo integrato (IDE) attraverso un’esercitazione pratica. Si approfondiscono inoltre il funzionamento del sistema di calcolo e il ruolo del sistema operativo, con attenzione ai criteri di leggibilità e organizzazione del codice.

    Per accedere al contenuto: iscriviti al corso
  • La Week introduce espressioni e strutture di controllo (sequenza, selezione, iterazione) come strumenti fondamentali per costruire algoritmi corretti. Le esercitazioni pratiche guidano lo studente nello sviluppo di programmi per il calcolo del Massimo Comun Divisore (MCD), della media e del valore massimo, consolidando le competenze di progettazione e verifica del codice.

    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.