Lo scopo dell'insegnamento Programmazione 1 e' fornire gli strumenti per la programmazione imperativa nei linguaggi di alto livello. In particolare sara' presentato un sottoinsieme del linguaggio C++.
Si tratta di un insegnamento essenzialmente pratico, dove l'obiettivo e' imparare a fare. La maggior parte delle ore sara' dedicata alla pratica in laboratorio. Anche le lezioni in aula sono finalizzate a fornire le conoscenze di base sul funzionamento del calcolatore, i modelli e gli strumenti necessari per arrivare alla padronanza del paradigma di programmazione imperativo, nella fattispecie del linguaggio C/C++.
Introduzione alla programmazione, in particolare al paradigma di programmazione imperativo, attraverso il linguaggio C++. Dopo avere frequentato l'insegnamento, lo studente sara' in grado di scrivere semplici programmi nel linguaggio C++, e conoscera' modelli e costrutti utili anche per l'apprendimento futuro di altri linguaggi di programmazione di tipo imperativo.
L'insegnamento fornira' 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 di alto livello e le modalita' per l'esecuzione del codice (linguaggio compilato o interpretato). Presentera' i concetti e gli elementi di base della programmazione imperativa di alto livello (variabili, istruzioni, costrutti per il controllo del flusso d'esecuzione, funzioni), utilizzando come esempio il linguaggio C/C++. Fornira' linee guida per la progettazione di piccoli programmi che risolvono un semplice problema e per il testing degli stessi.
Come esempio di linguaggio di alto livello verra' utilizzato il (sottoinsieme imperativo del) linguaggio di programmazione C++.
L'impostazione dell'insegnamento sarà molto pratica, ad ogni lezione seguirà immediatamente un'attività di laboratorio correlata, dove quanto visto in aula troverà la sua applicazione nello sviluppo di programmi in C++.
Chi avra' seguito l'insegnamento Programmazione 1:
Nessuno.
L'insegnamento, erogato al secondo semestre, prevede 3 ore di lezione in aula e 4 ore di laboratorio alla settimana.
Nei laboratori ogni settimana saranno dati da svolgere piccoli esercizi in C++ per mettere in pratica gli argomenti visti a lezione. Vi sara' la possibilita' di consegnare alcuni di tali esercizi (non valutati ai fini dell'esame) ottenendo utile feedback.
In alcune settimane in laboratorio si svolgeranno esercizi di riepilogo che, se consegnati e valutati positivamente, potranno valere fino a due punti bonus sul voto dell'esame (ved. sezione su modalita' di accertamento).
Come esempio di linguaggio di alto livello sara' trattato il sottoinsieme imperativo del linguaggio C++.
Slide delle lezioni fornite su aulaweb.
Risorse online sul linguaggio C++ (link forniti su aulaweb)
Altri testi: Programming Principles and Practice using C++. B. Stroustrup. Editore: Addison-Wesley Professional, 2008 o successive. C++. Fondamenti di programmazione. H. M. Deitel, P. J. Deitel. Editore: 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).
Ricevimento: Ricevimento su appuntamento. Contattare il docente via Teams o via email.
PAOLA MAGILLO (Presidente)
NICOLETTA NOCETI
MATTEO DELL'AMICO (Presidente Supplente)
Dal 17 febbraio 2025 secondo l'orario riportato qui
L'esame si compone di:
Non è necessario che le due prove vengano superate nello stesso appello.
L'esame è superato se si superano quiz (con voto >=18) e laboratorio (con voto >=18). Il voto finale sarà la media dei due voti, a cui si sommeranno gli eventuali punti di bonus guadagnati con gli esercizi di riepilogo consegnati durante il semestre (ved. sezione su modalita' didattiche).
Per gli studenti con disabilità o con DSA si rimanda alla sezione Altre Informazioni.
La prova a quiz vuole valutare l'acquisizione dei concetti fondamentali presentati nell'insegnamento. Le domande del quiz verteranno sulle proprietà dei costrutti, sulla comprensione del codice C++, e potranno richiedere di scrivere piccoli frammenti di codice C++.
La prova in laboratorio vuole valutare la capacità di produrre del codice c++ funzionante per risolvere piccoli problemi, e consiste nel completare un canovaccio di programma C++ che verrà fornito. La valutazione terra' conto dei seguenti aspetti in ordine decrescente di importanza:
L'insegnamento Programmazione 1 non ha prerequisiti.
Sono comunque utili le nozioni di base di logica e matematica normalmente fornite dalla scuola media superiore.
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, come indicato sul sito federato al link: STATISTICA MATEMATICA E TRATTAMENTO INFORMATICO DEI DATI 8766 | Studenti con disabilità e/o DSA | UniGe | Università di Genova | Corsi di Studio UniGe
Successivamente, con significativo anticipo (almeno 10 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:
• la denominazione dell’insegnamento
• la data dell'appello
• il cognome, nome e numero di matricola dello studente
• gli strumenti compensativi e le misure dispensative ritenuti funzionali e richiesti.
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 10 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