Dettaglio insegnamento

PROGRAMMAZIONE 1

MF0207

Insegnamento
PROGRAMMAZIONE 1
Codice
MF0207
Anno Accademico
2023/2024
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
9
Ore di lezione
72
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Il corso ha la finalità di introdurre i fondamenti della programmazione degli elaboratori elettronici, partendo dal concetto di algoritmo e dalla descrizione dei concetti di base di un programma, per arrivare a concetti avanzati di strutture dati e di controllo dei linguaggi di programmazione. Il corso si propone, inoltre, di presentare i concetti di base del linguaggio di programmazione C impiegato a supporto dell’insegnamento della programmazione, nonché per lo svolgimento di esercitazioni pratiche in laboratorio.
Testi di riferimento
- Kelley, Pohl, “C: didattica e programmazione”, Pearson Italia.
- P. Deitel, H. Deitel, “Il linguaggio C – Fondamenti e tecniche di programmazione”, Pearson Italia.
- Kernighan, Ritchie, Linguaggio C, Pearson Italia.
Obiettivi formativi
Lo studente deve conoscere i costrutti di base della programmazione, le strutture dati di base (variabili, costanti, array) e l'organizzazione del programma in più funzioni.

Dato un problema di media complessità, lo studente deve essere in grado di individuare i possibili dati di input, i possibili dati di output e l'algoritmo che risolve il problema. Inoltre lo studente deve essere in grado di scrivere un programma in linguaggio C corrispondente all'algoritmo, di compilarlo ed eseguirlo.
Prerequisiti
Nessuno
Metodi didattici
Il corso si articola in lezioni frontali in aula e in esercitazioni al calcolatore in laboratorio.

Modalità:
durante le lezioni frontali si presentano gli aspetti teorici della programmazione (algoritmi, costrutti, strutture dati, ecc.). Inoltre, tramite un calcolatore collegato ad un proiettore, si mostra come tali aspetti si possono implementare al calcolatore.
Per ogni argomento vengono presentati vari esempi di problemi ed i corrispondenti algoritmi e programmi.
Durante le lezioni in laboratorio si richiede agli studenti di realizzare gli stessi programmi visti in aula, e di realizzarne altri che risolvono problemi analoghi.

Strumenti:
per assimilare in modo graduale i concetti di algoritmo e di programma, e i relativi costrutti, all'inizio del corso gli algoritmi vengono definiti tramite vari livelli di astrazione: diagramma di flusso, pseduo-codice, linguaggio di programmazione.
Dato che si tratta di un corso di programmazione di base, i programmi vengono scritti al calcolatore tramite un comune editor di testo. Per abituare gli studenti all'uso del terminale (utile per insegnamenti successivi), la compilazione e l'esecuzione dei programmi avviene dalla riga di comando del terminale. Oltre ai comandi di compilazione ed esecuzione, vengono presentati ed applicati i principali comandi da terminale.
Durante il corso, l'apprendimento viene verificato tramite lo svolgimento di una serie di esercizi per ogni argomento del corso. Ogni esercizio richiede la definizione di un algoritmo e la scrittura in linguaggio C del programma corrispondente.
Durante le lezioni di laboratorio, ogni esercizio viene introdotto, si definisce sommariamente la struttura del programma, si richiede agli studenti di completare in modo autonomo il programma entro un certo periodo di tempo, dopodiché si fornisce la soluzione dell'esercizio per verificare la correttezza.
Alla fine del corso vengono svolte alcune simulazioni di esame, al calcolatore, per consentire agli studenti di rendersi conto di quanto richiesto effettivamente all'esame.
Oltre alle ore di laboratorio, il corso prevede delle ore di tutorato in cui gli studenti possono continuare gli esercizi, chiarire eventuali dubbi, o richiedere che un argomento venga spiegato una seconda volta.
Il corso ha una propria pagina nella piattaforma DIR (Didattica in Rete), che contiene le slide del corso, i programmi presentati in aula, i programmi preparati in laboratorio, i programmi preparati durante il tutorato, le prove d'esame del passato, ecc.
Altre informazioni
Non sono previste prove parziali durante il corso.
Modalità di verifica dell'apprendimento
L'esame consiste in una prova pratica al calcolatore, in cui lo studente, dato un determinato problema, deve: definire l'algoritmo che lo risolve, implementare l'algoritmo in linguaggio C strutturando opportunamente il codice, compilare con successo il programma, verificare il funzionamento corretto del programma.
Il programma deve essere strutturato in varie funzioni. Tipicamente si richiede l'implementazione di 5 funzioni, inclusa la funzione main. Le funzioni richieste all'esame sono analoghe a quelle presentate durante il corso, in aula o in laboratorio.
Ad ogni funzione viene assegnato un punteggio dipendente dalla complessità della funzione (mediamente 6 punti).
La prova dura 2 ore e riguarda tutti gli argomenti del corso.
Gli studenti possono trovare le prove pratiche del passato, con le soluzioni corrispondenti, sulla piattaforma DIR.
Durante l'esame non è consentita la consultazione del materiale del corso o di manuali. Inoltre si usano i calcolatori del laboratorio informatico; è vietato l'uso di dispositivi mobili o computer portatili.
Programma esteso
- introduzione alla programmazione ed al linguaggio C;
- algoritmi e loro rappresentazione;
- variabili, costanti, tipi di dato e operatori aritmetici;
- operatori di input e output in C;
- primi programmi C con il solo uso di sequenze di comandi;
- costrutto di selezione (if...else) con condizioni booleane semplici e composte;
- iterazione e costrutti while, for e do-while;
- array (vettori, stringhe, matrici);
- funzioni e passaggio dei parametri per valore;
- concetto di puntatore e passaggio dei parametri per riferimento;
- aritmetica dei puntatori;
- parametri da riga di comando;
- input/output su file;
- uso del terminale.
Risultati di apprendimento attesi
Al termine del corso, lo studente deve essere in grado, dato un semplice problema di programmazione, di individuarne un algoritmo risolutivo, implementarlo in linguaggio C, eseguirlo al calcolatore e verificarne la correttezza.

Conoscenza e comprensione:
concetto di algoritmo, concetto di programma, strutture dati fondamentali, costrutti di base della programmazione.

Capacità di applicare conoscenza e comprensione:
dato un problema,
- individuare i dati di input da raccogliere dall'utente e i dati di output da produrre;
- individuare le strutture dati necessarie per gestire tali dati;
- definire un algoritmo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione;
- scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C);
- generare il programma eseguibile tramite la compilazione del programma sorgente, al calcolatore;
- esecuzione e test del programma eseguibile, al calcolatore.

Autonomia di giudizio:
in modo autonomo lo studente deve riuscire ad identificare le strutture dati necessarie, definire ed implementare l'algoritmo nel linguaggio di programmazione (C), ed infine compilare ed eseguire il programma.

Abilità comunicative:
lo studente deve riuscire a definire un algoritmo a vari livelli di astrazione, quali il diagramma di flusso, lo pseudo-codice, il programma in linguaggio di programmazione. Inoltre si esige che il programma richieda e presenti i dati all'utente tramite messaggi comprensibili dall'utente.

Capacità di apprendimento:
lo studente deve essere capace di apprendere come si genera un algoritmo dal problema, come si implementa l'algoritmo in un linguaggio di programmazione, ed infine come si compila e si esegue il programma al calcolatore.
Ultimo aggiornamento:09-09-2026 00:14:31