Conoscenza e comprensione
Capacità di applicare conoscenza e comprensione
Autonomia di giudizio
Abilità comunicative
Capacità di apprendimento:
Il corso è organizzato in unità didattiche elementari (UDE) in base ai contenuti e alle capacità che si intende sviluppare.
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.
La frequenza non è richiesta, seppure fortemente consigliata, per sostenere la prova di esame.
Lo studente è tenuto a frequentare almeno il 70% delle lezioni del corso per poter sostenere le prove in itinere. Qualora l'insegnamento venisse impartito in modalità mista o a distanza i requisiti per la partecipazione alle prove in itinere potranno essere modificati
Modulo 1
Modulo 2
Modulo 3
Gli argomenti segnati con (*) rappresentano le conoscenze minime.
Il corso è organizzato im 7 Unità Didattiche Elementari (UDE) il cui contenuto è descritto negli argomenti del corso.
Unità Didattica Elementare | Durata (ore) |
UDE 1 | 6 |
UDE 2 | 12 |
UDE 3 | 10 |
UDE 4 | 10 |
UDE 5 | 10 |
UDE 6 | 8 |
UDE 7 | 23 |
Argomenti | Riferimenti testi | |
1 | UDE 1: Rappresentazione dei numeri interi e dei numeri reali. Algebra di boole, funzione ed espressioni logiche. | Appunti del docente [Pel] Capitolo 1, Appendice C [BeGu] Capitolo 1, 2, App. D, E |
2 | UDE 1: Cenni sui sistemi di elaborazione; Traduzione ed esecuzione dei programmi; Ambiente di Programmazione; Linguaggi di Programmazione; Operazioni tra numeri binari; Codifica dei caratteri. | Appunti del docente [Pel] Capitolo 1, Appendice C [BeGu] Capitolo 1, 2, App. D, E |
3 | UDE 2: Tipo di dato principale; Identificatori; Variabili; Modificatori di Accesso; Specificatori di classe di memorizzazione; Costanti; Operatori; Strutture di Controllo; Istruzioni di selezione, di iterazione, di salto, di espressione, di blocco | [Pel] Capitolo 2,4,5 [BeGu] Capitolo 3, 4, 5, 6, 7, 8, 9 |
4 | UDE 2: Algoritmi e programmi; Uso di notazione grafica per esprimere algoritmi; Espressioni Complesse | [Pel] Capitolo 2,4,5 [BeGu] Capitolo 3, 4, 5, 6, 7, 8, 9 |
5 | UDE 3: Array Monodimensionali; Puntatori; Puntatori ad array; Stringhe; Strutture e strutture nidificate; Array di strutture | [Pel] Capitolo 3,7,8,11 [BeGu] Capitolo 10, 13, 14, 16 |
6 | UDE 3: Puntatori a strutture; Unione; Enumerazione | [Pel] Capitolo 3,7,8,11 [BeGu] Capitolo 10, 13, 14, 16 |
7 | UDE 4:Lettura e scrittura di caratteri e stringhe; I/O formattato; Canali; File di testo; Esercizi sugli argomenti svolti nelle UDE 1,2,3,4 | [Pel] Capitolo 11 [BeGu] Capitolo 17, 19 |
8 | UDE 4: File binari | [Pel] Capitolo 11 [BeGu] Capitolo 17, 19 |
9 | UDE 5: Funzioni; Istruzione return; Passaggio di parametri; Allocazione dinamica della memoria | [Pel] Capitolo 6,9,10 [BeGu] Capitolo 11, 15 |
10 | UDE 5: Ricorsione e Record di Attivazione; Variabili locali, regole di visibilità e tempo di vita | [Pel] Capitolo 6,9,10 [BeGu] Capitolo 11, 15 |
11 | UDE 6: Algoritmi di ricerca e ordinamento in memoria interna: classi di algoritmi; Esempi di Algoritmi di ordinamento | Dispense del docente |
12 | UDE 6: Complessità computazionale; la notazione O e Omega grande; Cenni sulla valutazione della complessità di un programma | Dispense del docente |
13 | UDE 7: Strutture dati lineari: Liste, Pile, Code; Strutture dati annidate; Esercizi sugli argomenti svolti nelle UDE 5,6,7 | Dispense del docente |
14 | UDE 7: Strutture dati non lineari: Alberi, Hashmap | Dispense del docente |
Sono previste due prove in itinere o un esame finale che permettono il superamento dell'esame.
Le competenze minime richieste per il superamento dell'esame sono le seguenti:
Conoscenze:
Conoscenze elementari di paradigmi di programmazione
Conoscenza della sequenza completa di produzione di programmi eseguibili
Capacità di realizzazione di semplici conversioni decimali/binarie e viceversa
Capacità di utilizzo di funzioni ed espressione booleane
Comprensione delle differenti tipologie di algoritmi di ordinamento
Capacità di utilizzare le strutture dati elementari (pile, code e liste)
Capacità di risoluzione di problemi informatici tramite la decomposizione in funzioni elementari
Sintassi e semantica del Linguaggio ANSI-C:
Capacità
Capacità di risoluzione di problemi informatici elementari tramite l’utilizzo delle istruzioni di selezione ed iterazione
Capacità di risoluzione di problemi informatici che richiedono l’utilizzo di vettori monodimensionali
Capacità di utilizzo delle funzioni e dei parametri formali e dell’istruzione return
Capacità di gestione della memoria Heap, tramite semplici operazioni di allocazione dinamica di elementi e vettori
Capacità di utilizzo dei file di testo per rendere persistenti le informazioni.
Capacità di implementare semplici algoritmi di ordinamento utilizzando la memoria interna
Capacità di implementare ed utilizzare le strutture dati elementari (pile, code e liste)
I criteri adottati nella valutazione finale sono basati sulla pertinenza delle risposte rispetto alle domande formulate, sulla qualità dei contenuti, sulla capacità di riportare esempi, e sulla proprietà di linguaggio tecnico e la capacità espressiva complessiva dello studente.
PROVE IN ITINERE
Sono previste due prove in itinere durante il corso.
Prima prova in itinere
La prima prova in itinere è costituita da un elaborato al calcolatore della durata da 30 a 60 minuti, che potrà svolgersi a distanza e/o in laboratorio, che prevede la capacità di sviluppo di un semplice programma in ANSI C (in accordo alle competenze erogate nelle Unità Didattiche 1,2,3,4).
Il superamento della prima prova in itinere permette l’accesso alla seconda prova in itinere.
L’accesso alla prima prova in itinere è subordinato alla frequenza alle lezioni, come descritto in “Frequenza lezioni”, ed alla presenza ad almeno una esercitazione in laboratorio, o, in alternativa a quest’ultima, alla consegna di due esercizi (homeworks), assegnati durante il primo semestre del corso, che dovranno essere svolti in autonomia.
Seconda prova in itinere
La seconda prova in itinere è costituita da una prova al calcolatore della durata da 60 a 90 minuti che potrà svolgersi a distanza e/o in laboratorio e da un colloquio orale. Non ci sono limiti al massimo voto ottenibile con le prove in itinere. La prova al calcolatore funge da ammissione alla prova orale.
Il colloquio orale, in presenza e/o a distanza, prevede una discussione sulle prove preliminari svolte e approfondimenti sull’intero programma.
L’accesso alla seconda prova in itinere è subordinato alla frequenza alle lezioni, come descritto in “Frequenza lezioni”, ed alla consegna di due ulteriori esercizi (homeworks) , assegnati durante il secondo semestre del corso, che dovranno essere svolti in autonomia.
PROVE DI FINE CORSO
La prova d'esame è composta da due prove preliminari al calcolatore e da una prova orale, che si potranno svolgere in presenza e/o a distanza. L’accesso alla prova orale è subordinato al superamento di ambedue le prove al calcolatore.
Prima prova preliminare
La prima prova preliminare (in analogia con la prima prova in itinere) è costituita da un elaborato al calcolatore, che potrà svolgersi a distanza e/o in laboratorio, della durata di 30 minuti che prevede la capacità di sviluppo di un semplice programma in ANSI C (in accordo alle competenze erogate nelle Unità Didattiche 1,2,3,4,5).
Seconda prova preliminare
La seconda prova preliminare è costituita da un elaborato al calcolatore della durata da 60 a 90 minuti (non è prevista valutazione numerica) che potrà svolgersi a distanza e/o in laboratorio.
Colloquio orale
Il colloquio orale prevede una discussione sulle prove preliminari svolte e approfondimenti sull’intero programma.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande ed esercizi sono disponibili sul portale Studium.UniCT di Ateneo e/o la piattaforma Microsoft Teams