L'insegnamento si propone di fornire le conoscenze di base e gli strumenti per la programmazione imperativa attraverso l'introduzione di linguaggi ad alto livello. Nel percorso formativo, la conoscenza dei fondamenti della programmazione e di un linguaggio "generalista" (come quello presentato qui) costituisce la base per poter apprendere facilmente i linguaggi specialistici dell'ambito matematico e statistico, che saranno utilizzati in successivi insegnamenti.
L'insegnamento introduce alla programmazione e ai linguaggi di programmazione, in particolare al paradigma imperativo, che sara' presentato sull'esempio di un linguaggio di riferimento. Saranno fornite le conoscenze di base e gli strumenti tecnici per definire semplici algoritmi che risolvono piccoli problemi, e per progettare, realizzare e validare semplici programmi a partire da specifiche informali del compito da svolgere. Le conoscenze e le abilita' acquisite saranno utili anche per l'apprendimento futuro di altri linguaggi di programmazione.
L'insegnamento fornirà alcune necessarie nozioni di base sull'architettura del calcolatore, la rappresentazione dei dati, il sistema operativo. Introdurra' le nozioni di algoritmo e di programma, i linguaggi di programmazione ad alto livello e le modalità per l'esecuzione del codice. Presenterà i concetti e i costrutti di base della programmazione imperativa di alto livello (variabili, istruzioni, costrutti per il controllo del flusso d'esecuzione), che saranno esemplificati su un linguaggio imperativo. Fornirà linee guida per la progettazione di piccoli programmi che risolvono un semplice problema e per il testing degli stessi.
Dopo avere seguito l'insegnamento lo studente:
Non sono previsti requisiti specifici.
L'insegnamento, erogato al secondo semestre, prevede 3 ore di lezione in aula e 4 ore di laboratorio alla settimana. Lezioni e laboratori sono strettamente coordinati per applicare subito in laboratorio le nozioni introdotte a lezione. La frequenza dei laboratori non è obbligatoria ma è fortemente consigliata. L'esperienza pratica di programmazione è indispensabile per acquisire le capacità di sviluppo e testing del codice. Saranno date anche istruzioni per installare sui propri PC il software necessario. L'attività di laboratorio sarà svolta a piccoli gruppi (2-3 persone). Agli studenti lavoratori o per altre ragioni non frequentanti sarà permesso di lavorare singolarmente. Ogni settimana saranno dati degli esercizi, che chiederanno di realizzare piccoli programmi, e che potranno essere consegnati per ricevere un riscontro su eventuali errori o problemi, utile all'autovalutazione e al miglioramento del proprio livello. In alcuni momenti durante il semestre saranno assegnati degli esercizi di riepilogo che, se consegnati, saranno valutati con un punteggio e contribuiranno al voto finale dell'esame (maggiori dettagli nella sezione relativa all'esame). Tutte le consegne sono di gruppo e sono facoltative.
Il materiale didattico sarà erogato tramite Aulaweb, dove verranno pubblicati: slide delle lezioni, link a risorse on-line relative al linguaggio utilizzato (manuali e tutorial), testi degli esercizi di laboratorio, correzioni degli esercizi consegnati, ecc. In generale, gli appunti presi durante le lezioni e il materiale su Aulaweb (uniti alla necessaria pratica di laboratorio) sono sufficienti per la preparazione dell'esame. Come appoggio possono essere usati i seguenti libri (in versione italiana o inglese), come anche altri libri e fonti on-line introduttive alla programmazione: "Programming Principles and Practice using C++". B.Stroustrup. Addison-Wesley 2008, 2014, 2024. "C++. Fondamenti di programmazione". H.M.Deitel, P.J.Deitel. Apogeo 2009. "Che C serve? Per iniziare a programmare". Burattini, Chianese, Picariello, Moscato, Sansone. Maggioli editore 2016.
Ricevimento: Ricevimento su appuntamento concordabile via email (paola.magillo@unige.it)
Ricevimento: Su appuntamento (in presenza o online) definito per email (matteo.dellamico@unige.it).
Le lezioni inizieranno dal 23 febbraio 2026 secondo l'orario riportato qui.
L'esame si compone di due parti obbligatorie:
Entrambe le prove saranno valutate in trentesimi. Per superare l'esame e' necessario ottenere almeno 18 in ciascuna delle due prove e poi sara' fatta la media dei due voti. Consegnando le esercitazioni di riepilogo durante il semestre (facoltative) e' possibile ottenere fino a 2 punti, che vanno a sommarsi alla media di cui sopra. Il risultato, arrotondato a numero intero, sara' il voto finale dell'esame. Le due prove (quiz e laboratorio) possono essere sostenute anche in appelli diversi e anche in sessioni diverse. Il voto sufficiente conseguito in una prova resta valido fino all'ultimo dei 5 appelli dell'anno accademico (cioe' febbraio dell'anno solare successivo, essendo un insegnamento del secondo semestre). Lo stesso limite di validita' si applica ai punti delle esercitazioni consegnate durante il semestre. Se si ripete una prova, il nuovo voto annulla quello precedentemente conseguito nella stessa prova (anche se il nuovo voto fosse minore).
Si ricorda alle studentesse e agli studenti con disabilità o con disturbi specifici dell'apprendimento (DSA) che per poter richiedere adattamenti in sede d'esame occorre prima inserire la certificazione sul sito web di Ateneo alla pagina servizionline.unige.it nella sezione "Studenti". La documentazione sarà verificata dal Settore servizi per l'inclusione degli studenti con disabilità e con DSA dell'Ateneo.
Successivamente, con significativo anticipo (almeno 7 giorni) rispetto alla data di esame occorre inviare una e-mail al/alla docente con cui si sosterrà la prova di esame, inserendo in copia conoscenza sia il docente Referente di Scuola per l'inclusione degli studenti con disabilità e con DSA (sergio.didomizio@unige.it) sia il Settore sopra indicato. Nella e-mail occorre specificare:
Il/la referente confermerà al/alla docente che il/la richiedente ha diritto a fare richiesta di adattamenti in sede d'esame e che tali adattamenti devono essere concordati con il/la docente. Il/la docente risponderà comunicando se sia possibile utilizzare gli adattamenti richiesti.
Le richieste devono essere inviate almeno 7 giorni prima della data dell'appello al fine di consentire al/alla docente di valutarne il contenuto. In particolare, nel caso in cui si intenda usufruire di mappe concettuali per l'esame (che devono essere molto più sintetiche rispetto alle mappe usate per lo studio) se l'invio non rispetta i tempi previsti non vi sarà il tempo tecnico necessario per apportare eventuali modifiche.
Per ulteriori informazioni in merito alla richiesta di servizi e adattamenti consultare il documento: Linee guida per la richiesta di servizi, di strumenti compensativi e/o di misure dispensative e di ausili specifici.
La prova quiz valutera' la conoscenza dei concetti introdotti a lezione, la padronanza dei costrutti fondamentali del linguaggio imperativo e il loro corretto uso, la comprensione di codice dato, la capacita' di produrre un (breve) codice corretto per un dato scopo. Ad ogni risposta giusta sara' dato un punteggio positivo (diverso secondo la difficolta' della domanda), nel caso di domande a risposta multipla alcune risposte sbagliate potranno portare una penalita' (punteggio negativo), nelle altre tipologie le risposte sbagliate avranno punteggio zero. Per le domande che richiedono la scrittura di codice, Aulaweb consente di provare il codice per confrontare i risultati prodotti con quelli attesi, ad ogni prova pero' il sistema attribuisce una (piccola) penalita'.
La prova in laboratorio valutera' la capacità di individuare algoritmi per risolvere semplici problemi e tradurli nel linguaggio, producendo codice funzionante. La prova consiste nel completare un programma schematico che verrà fornito, seguendo le richieste specificate. La valutazione terra' conto dei seguenti aspetti in ordine decrescente di importanza: codice privo di errori algoritmici o sintattici, che produce risultati corretti (requisito minimo), stile e leggibilità, efficienza di calcolo.
Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento.