INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICAIngegneria informaticaAnno accademico 2025/2026

9797558 - FONDAMENTI DI PROGRAMMAZIONE F - O
Modulo PROGRAMMAZIONE II

Docente: GIOVANNI BELLITTO

Risultati di apprendimento attesi

Il modulo Programmazione II del corso Fondamenti di Programmazione si concentra sulla formazione di studenti competenti nella programmazione utilizzando il linguaggio ANSI C. Il modulo include cenni di complessità degli algoritmi e di strutture dati complesse.

Al termine di questo modulo lo studente ha una conoscenza completa del linguaggio ANSI C e delle semplici strutture dati di base.

Conoscenza e capacità di comprensione (knowledge and understanding)

L'obiettivo principale è fornire agli studenti una conoscenza delle tecniche algoritmiche e del linguaggio di programmazione Python, compresa la comprensione della sua sintassi, semantica e applicazioni. Il modulo si concentra sullo sviluppo di semplici algoritmi e sui concetti relativi ai tipi di dato, alle variabili, agli operatori, alle strutture di controllo e alle funzioni.

Più nel dettaglio, le conoscenze e capacità di comprensione richieste sono:

  • conoscenza della sintassi e della semantica del linguaggio ANSI C

  • conoscenza di algoritmi notevoli e delle principali strutture dati
  • conoscenza delle principali tecniche di gestione della memoria
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding)

Gli studenti svilupperanno la capacità di applicare le conoscenze acquisite attraverso esercitazioni ed esercizi svolti sia in forma cartacea che con il calcolatore con l’obiettivo di mettere in pratica le abilità di risoluzione dei problemi e di scrittura di codice ANSI C.

Questo modulo mira a rendere gli studenti competenti nell'utilizzo delle risorse disponibili, comprese le funzioni della libreria standard C e le loro applicazioni pratiche, con particolare attenzione alle funzioni di input/output, la manipolazione delle stringhe, la gestione di semplici strutture dati, la gestione elementare della memoria e la gestione dei file.

  • capacità di risolvere problemi elementari, scrivere l’algoritmo risolutivo e implementarlo usando il linguaggio ANSI C 
  • capacità di analizzare il codice e correggere gli errori durante le fasi di sviluppo e realizzare una applicazione funzionante
  • capacità di utilizzare un ambiente di sviluppo (IDE)


Capacità di apprendimento (learning skills)

Gli studenti saranno in grado di analizzare e valutare problemi di media complessità quali la gestione di sequenze, dimensionamento, applicare la programmazione in ANSI C per risolverli, usando correttamente un ambiente di sviluppo e gli strumenti di debug per la risoluzione di errori comuni.

  • Comprendere e applicare strutture di controllo (condizioni, cicli, funzioni).

  • Utilizzare tipi di dato primitivi e strutture dati di base.
  • Leggere e scrivere codice ANSI C funzionante, strutturato e leggibile.
  • Affrontare problemi di complessità crescente attraverso tecniche di problem solving algoritmico.
  • Essere in grado di apprendere nuovi linguaggi, nuovi paradigmi di programmazione e di manipolare strutture dati 
  • Essere in grado di utilizzare le conoscenze e competenze apprese per affrontare in maniera metodologica problemi complessi

Abilità comunicative (communication skills)

Questo insegnamento introdurrà gli studenti al gergo informatico, e consentirà loro di comunicare in modo efficace attraverso il linguaggio matematico/informatico, consentendo la condivisione di soluzioni e idee di programmazione

  • Lo studente acquisisce la conoscenza del linguaggio informatico e della terminologia tecnica

Modalità di svolgimento dell'insegnamento

Il corso prevede come metodo di insegnamento principale le lezioni frontali per acquisire le conoscenze teoriche di base e tutti gli elementi sintattici e lo svolgimento di esercitazioni, da svolgere anche in modo autonomo, proposte dal docente per acquisire la capacità di risolvere i problemi, applicare la conoscenza e utilizzare gli ambienti e le metodologie di sviluppo.


Il docente propone, inoltre, delle esercitazioni individuali che consistono nella soluzione di un problema che lo studente deve affrontare in autonomia che vengono successivamente corrette o discusse in classe.


Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Conoscenza degli argomenti trattati nel modulo Programmazione I.

Frequenza lezioni

La frequenza non è obbligatoria, seppure fortemente consigliata, per sostenere con successo la prova di esame.


Lo studente è tenuto a frequentare almeno il 70% delle lezioni del corso per poter sostenere la prova in itinere del modulo.


Qualora l'insegnamento venisse impartito in modalità mista o a distanza i requisiti per la partecipazione alle prove in itinere potranno essere modificati.

Contenuti del corso

IL LINGUAGGIO ANSI C

Elementi fondamentali del linguaggio C, inclusa la sintassi


Tipi strutturati


Funzioni


Gestione della memoria


Gestione dell’Input/Output (I/O)


Tipi di Dato Astratto: implementazione in C


Strutture dati lineari

Strutture dati non lineari


Complessità computazionale

Testi di riferimento

[BeGu] Bellini, Guidi. Linguaggio C. Guida alla programmazione. McGraw-Hill

[Pel] Pellegrino Principe. C guida alla programmazione. Apogeo

Dispense ed esercizi svolti distribuito dal docente attraverso la piattaforma Studium.UniCT e/o la piattaforma Microsoft Teams.

Programmazione del corso

 ArgomentiRiferimenti testi
1Cenni di Complessità ComputazionaleDispense del docente
2Algoritmi di Ricerca e OrdinamentoDispense del docente
3Tipi di Dato Astratto (TDA) e loro implementazione in CDispense del docente
4PileDispense del docente
5CodeDispense del docente
6Liste e liste ordinateDispense del docente
7AlberiDispense del docente
8Alberi binari e binari di ricercaDispense del docente
9Dizionari / HashtablesDispense del docente
10GrafiDispense del docente

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Prova finale del modulo 2

La prova finale del modulo consiste:

Prova dell’insegnamento

Non sono previste prove in itinere

Esempi di domande e/o esercizi frequenti

Esempi di domande ed esercizi sono disponibili sulla piattaforma Microsoft Teams.

English version