Obiettivi formativi
L'obiettivo principale del corso è quello di far acquisire allo studente le tecniche fondamentali della programmazione imperativa attraverso l'uso del sottoinsieme imperativo del linguaggio di programmazione C++. Il corso mira anche a fornire allo studente la capacità di applicare tecniche di analisi dei problemi per risolvere in modo algoritmico semplici problemi pratici (quali, ad esempio, problemi di calcolo, di ordinamento di dati, di gestione di archivi) e quindi tradurre tali soluzioni in programmi eseguibili. Infine il corso mira a sviluppare capacità di analisi, di astrazione e di scomposizione di problemi in sottoproblemi.
Con riferimento agli Indicatori di Dublino:
Conoscenza e capacità di comprensione
Il corso introduce i primi concetti relativi alla programmazione imperativa, con particolare attenzione alla comprensione delle tecniche algoritmiche di base dei linguaggi imperativi. Il testo di riferimento è in italiano, ma durante le lezioni viene utilizzata anche la terminologia in lingua inglese come avviamento alla consultazione di letteratura scientifica internazionale.
Capacità di applicare conoscenza e comprensione
Le conoscenze teoriche presentate vengono sempre applicate alla risoluzione di problemi specifici, spesso di carattere modellistico/matematico. Le esercitazioni che affiancano il corso sono incentrate sulla risoluzione di esercizi e problemi, con particolare riferimento alla realizzazione di programmi nel linguaggio C++. Molti metodi risolutivi vengono applicati a problemi di natura matematica e numerica e vengono presentati sotto forma algoritmica.
Autonomia di giudizio
Gli esercizi proposti relativamente alla parte teorica svolta a lezione possono essere affrontati individualmente o in gruppo e, spesso, possono essere risolti in modi molto diversi. Il confronto con i compagni di corso e l'ascolto delle soluzioni proposte da altri, nel lavoro a casa o durante gli svolgimenti in aula, favoriscono lo sviluppo di capacità specifiche per poter a chiarire le proprie argomentazioni e individuare strutture comuni tra i diversi approcci.
Abilità comunicative
Le discussioni in aula e durante le esercitazioni consentono di migliorare le capacità di comunicazione. Tali discussioni riguardano i metodi per risolvere i problemi proposti, evidenziando vantaggi e svantaggi dei diversi approcci proposti.
Capacità di apprendimento
Lo studio delle tecniche algoritmiche di base e la loro applicazione a problemi di natura eterogenea contribuiscono a realizzare negli studenti la capacità di apprendere in modo approfondito e non solo superficiale e ripetitivo. Le conoscenze così acquisite non sono mai rigide e meccaniche, ma sono perfettamente adattabili ad ogni evoluzione e cambiamento di prospettiva e di contesto.