Programmazione dei calcolatori con laboratorio

Docente: Gianluca Rossi

Comunicazioni


Lezioni

020-09-2023

Il diario delle lezioni sarà pubblicato su GitHub


Materiale didattico

Informazioni

Anno accademico2023-2024
Crediti9
SettoreINF/01
Anno1
Semestre1
PropedeuticitàNessuna

Programma

Lo scopo del corso è introdurre agli studenti il concetto di problema computazionale e di risoluzione automatica mettendoli in grado di comprendere ed analizzare la struttura di un problema, individuare metodi di risoluzione alternativi, raffrontarli dal punto di vista dell’efficienza, implementarli mediante un opportuno linguaggio di programmazione e valutarne la correttezza.

 

In particolare verranno trattati i seguenti temi: risoluzione automatica dei problemi; algoritmi e programmi; modelli di calcolo; linguaggi di programmazione; tipi di linguaggi di programmazione; compilazione ed interpretazione; linguaggi imperativi; struttura di un programma; tipi di dati semplici e strutturati; variabili; strutture di controllo; puntatori; funzioni; ricorsione; operazioni di input/output; strutture di dati elementari (array, liste e dizionari).

 

Durante il corso verranno presentati una quantità di problemi che saranno risolti facendo riferimento ai linguaggi di programmazione Python e C.

 

 

Il corso è composto da due parti che si sovrappongono sia come contenuti che temporalmente. Una  parte fornisce una introduzione generale ai temi sopra elencati. L'altra parte è orientata alla soluzione dei problemi proposti utilizzando linguaggi di programmazione ad alto livello: a tale scopo verrà presentati il linguaggi Python e e C.


Testi di riferimento

  • John V. Guttag. Introduzione alla programmazione con Python. EGEA 2021
  • Gianluca Rossi. Programmazione in Python - Esercizi. EGEA 2022 (digital book)

 

Un qualsiasi manuale del linguaggio C ad esempio:

  • Linguaggio C (seconda edizione) di B.Kernighan e D.Ritchie edito da Pearson Education Italia

Altre risorse

 

 


Ricevimento studenti

Per appuntamento sulla piattaforma Teams. Inviare email per appuntamento.


Modalità di esame

Sono previste 3 sessioni d’esame: Sessione estiva anticipata (gennaio-febbraio); Sessione estiva (giugno-luglio); Sessione autunnale (fine agosto-settembre). Ogni sessione si compone di 2 appelli che NON sono mutamente esclusivi ovvero chi non supera l’esame del primo appello di una sessione può partecipare al secondo appello.

 

L’esame finale si compone di tre parti che si svolgeranno in due giorni distinti. La mattina del primo giorno lo studente dovrà rispondere ad un test contenente 10 domande a risposta multipla. Chi risponderà correttamente ad almeno 6 dei 10 quesiti sarà ammesso alla prova di laboratorio che si terrà lo stesso giorno. In questa seconda prova, da svolgere al calcolatore, allo studente sarà richiesta la soluzione di 2 problemi (uno in Python, l'altro in C). Gli studenti che supereranno questa seconda prova saranno ammessi al colloquio finale che si svolgerà nei giorni successivi.

 

Il test a risposta multipla assegna un punto per ogni risposta esatta, quindi assegna da 6 a 10 punti. Le altre due prove assegnano un punteggio che va da 12 a 22. Il voto finale sarà ottenuto sommando il due punteggi ottenuti nelle tre prove.

 

N.B. L’esame non può essere suddiviso in più appelli ovvero non è possibile sostenere la prova di laboratorio o il colloquio orale in un appello d’esame successivo a quello in cui si sono svolte le prove precedenti.

  

Prove intermedie

Durante il corso si svolgeranno 3 prove intermedie; ciascuna, se superata,  assegna un massimo di 1.5 punti. I punteggi raccolti nelle prove intermedie saranno sommati al voto finale ma solo nel caso in cui l'esame venga superato nella sessione estiva anticipata dell'a.a 2023/2024. 

 

Le prove intermedie si svolgeranno nei seguenti periodi:

  • fine ottobre
  • fine novembre
  • fine corso, metà gennaio

Date e modalità saranno comunicate di volta in volta durante le lezioni. 

 

Trasferimenti da altri Corsi di Studi

 

Gli studenti trasferiti da un altro corso di studi ai quali, in fase di trasferimento, sono stati riconosciuti almeno 6 CFU del Corso di Programmazione dei Calcolatori con Laboratorio sono esonerati dalla prova di laboratorio. Pertanto devono sostenere soltanto il test a risposta multipla ed il colloquio finale. Questi studenti non possono accedere ai punti extra delle prove intermedie, possono però rinunciare all'integrazione e svolgere l'esame per intero.