Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2022/2023
Tipologia di insegnamento: 
Base
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Laurea triennale (DM 270) in INGEGNERIA E SCIENZE INFORMATICHE PER LA CYBERSECURITY
Sede: 
Nola
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Italiano
Crediti: 
12
Anno di corso: 
1
Docenti: 
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
96

Obiettivi

Il modulo Programmazione, 12 CFU, costituisce un percorso introduttivo alla programmazione, ovvero alle metodologie e alle tecniche per lo sviluppo, l’analisi e l’implementazione degli algoritmi. Il corso introduce il linguaggio C, utilizzato per la realizzazione dei prodotti software previsti nelle attività di laboratorio (in gruppo) e nei progetti individuali degli allievi.
Conoscenza e capacità di comprensione: Lo studente deve dimostrare di conoscere e saper comprendere le metodologie di base per lo sviluppo e l’analisi degli algoritmi, il linguaggio di programmazione C e un suo ambiente di sviluppo.
Capacità di applicare conoscenza e comprensione: Lo studente deve dimostrare di saper utilizzare la propria conoscenza acquisita per risolvere computazionalmente semplici problemi applicativi, anche quando essi appaiono in contesti concreti, per sviluppare algoritmi e analizzarli dal punto di vista della correttezza e della complessità, per usare in modo consapevole il linguaggio di programmazione C al fine di implementare efficientemente un algoritmo. Tali capacità si estrinsecano anche in un uso approfondito e consapevole degli strumenti di calcolo e dei laboratori informatici avanzati.
Autonomia di giudizio: Lo studente deve essere in grado di sapere valutare e interpretare in maniera autonoma i risultati di un algoritmo e di una sua implementazione in linguaggio C.
Abilità comunicative: Lo studente deve essere in grado di redigere una relazione di presentazione di un algoritmo e di documentare la sua implementazione in linguaggio C, anche lavorando in gruppo, servendosi di strumenti avanzati di scrittura/documentazione e usando correttamente la terminologia di base dell’Informatica, anche in lingua inglese.
Capacità di apprendimento: Lo studente deve essere in grado di aggiornarsi e approfondire in modo autonomo argomenti e applicazioni specifiche di programmazione in C.

Prerequisiti

Nessuno

Contenuti

Concetto di Algoritmo (2h). Concetto di Variabile – Variabili e tipi (4h). Introduzione al linguaggio C - Aspetti generali del linguaggio C ed “esecuzione” di un programma C - Variabili e tipi in C - Puntatori in C – Input / output in C (6h). Costrutti di controllo – Costrutto di selezione - Costrutti di ripetizione - Costrutti di selezione in C - Costrutti di ripetizione in C (6h). Function e procedure (8h). Approccio incrementale (6h). Strutture dati – Generalità sul concetto di tipo strutturato array - Algoritmi con array (8h). Array e insiemi –algoritmi di unione, intersezione, inclusione, sottrazione e uguaglianza (6h). Stringhe ed elaborazione di testi – Operazioni elementari su stringhe (8h). Efficienza degli algoritmi (6h). Ordinamento di array – Algoritmi di ordinamento (8h). Formule ricorrenti – Formula di Fibonacci (6h). Approccio divide et impera – Idea di base del “divide et impera (6h). Algoritmi ricorsivi – Tecniche di programmazione ricorsiva (8h). Strutture dati: record – Generalità sul concetto di tipo strutturato - il tipo struct del C (4h). Linee guida per la programmazione sicura in C (4h).

Metodi didattici

L'insegnamento consiste in un totale di 96 ore di lezione frontale (12 CFU) di lezioni frontali, suddivise rispettivamente in due moduli (6 CFU ciascuno), Programmazione e Laboratorio di Programmazione. L'insegnamento si svolge in aula o in laboratorio ed è organizzato in lezioni di 2 ore programmate secondo il calendario accademico. Ogni lezione può essere una lezione teorica e pratica, tenuta dal docente e relativa ad uno degli argomenti del corso. Le lezioni teoriche mirano a fornire allo studente le conoscenze di base della programmazione in linguaggio C. Le lezioni di laboratorio partono dalle nozioni teoriche acquisite dagli studenti per fornire le loro implementazioni realizzabili. Durante il corso sono previste lezioni pratiche. Sono di natura collegiale, si svolgono in aula e sono impartite dal docente che propone soluzioni ad esercitazioni volte a verificare l'adozione e l'attuazione degli argomenti teorici esposti nelle lezioni precedenti. La risoluzione di tali esercizi consente allo studente di verificare la propria comprensione dei concetti teorici e la propria capacità di proporre implementazioni alternative.

Verifica dell'apprendimento

Il raggiungimento degli obiettivi dell’insegnamento è certificato mediante il superamento di un esame con valutazione in trentesimi. l'esame prevede una prova scritta o pratica di laboratorio e una prova orale. La prova scritta o pratica di laboratorio è propedeutica alla prova orale. La prova ha la funzione di valutare la capacità dello studente di comprensione nell’affrontare un problema pratico di programmazione e di mettere in pratica le nozioni del corso attraverso la progettazione algoritmica e la relativa codifica in linguaggio C. La prova scritta o pratica si considera superata con il raggiungimento del punteggio minimo di 18/30.
La prova orale consiste in un colloquio con domande e discussione sui contenuti teorici e metodologici indicati nel programma dell’insegnamento. E’ finalizzata ad accertare il livello di conoscenza e capacità di comprensione raggiunto dallo studente, nonché a verificare la capacità di esposizione e sintesi, ricorrendo alla terminologia appropriata e la capacità di organizzazione autonoma sugli stessi argomenti a contenuto teorico. Le due prove (scritta o pratica e orale) concorreranno in ugual misura alla valutazione finale dello studente
Sono previste 2 prove in itinere, rispettivamente alla metà e al termine del periodo di insegnamento, svolte con le medesime modalità, obiettivi e valutazione della prova scritta o pratica. Il superamento delle prove in itinere, con una valutazione in trentesimi ottenuta come media pesata delle 2 prove in itinere, dà accesso diretto alla successiva prova orale nei normali appelli di esame.

Testi

KELLEY, I. POHL; “C: didattica e programmazione”, Pearson Education Italia, 2004.
Programmazione in C - Kim N. King - Apogeo, 2009.

Altre informazioni

La frequenza è fortemente consigliata. I contenuti e-learning saranno resi disponibili attraverso la piattaforma elearning.uniparthenope.it. Dalla stessa piattaforma sarà possibile recuperare le dispense didattiche prodotte dal docente.