MATEMATICA E INFORMATICAInformaticaAnno accademico 2023/2024

1015912 - PROGRAMMAZIONE I E LABORATORIO O - Z
Modulo 1015913 - PROGRAMMAZIONE I

Docente: FABRIZIO MESSINA

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo primario del corso è l’acquisizione da parte degli studenti della “filosofia” della programmazione strutturata, e la conoscenza dettagliata della sintassi e della semantica del linguaggio di programmazione C. Il corso rivolge una particolare attenzione allo sviluppo di codice ben scritto e ben strutturato utilizzando le tecniche di base per lo sviluppo del software. 


Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): si intende fornire gli strumenti per conseguire le seguenti abilità pratiche e professionali:

Autonomia di giudizio (making judgements): attraverso l'esame di numerosi esempi di codice e una consistente componente pratica che prevede lo svolgimento di esercizi all'elaboratore, il discente sarà in grado di analizzare problemi e progettare e implementare le relative soluzioni software.

Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative nell'impiego del linguaggio verbale/tecnico nell'ambito della programmazione degli elaboratori.

Capacità di apprendimento (learning skills): il corso intende fornire al discente le necessarie metodologie teoriche e pratiche da mettere in campo in contesti professionali e, in particolare, la capacità di formulare algoritmi ad-hoc per la risoluzione di nuovi problemi e la possibilità di acquisire facilmente ed in breve tempo un altro linguaggio di programmazione.


DATE D'ESAME

Tutte le date di esame sono pubblicate nel sito www.dmi.unict.it

PROVE IN ITINERE

Sono previste prove in itinere. Il superamento di tutte le prove in itinere equivale al superamento della prova teorica (1).

PROVE DI FINE CORSO

1. Prova teorica. Si tratta di un test a risposta multipla atto a verificare la comprensione degli elementi di base della programmazione e delle principali caratteristiche del linguaggio C. Al test non è assegnato un voto in trentesimi (il compito riceverà esito “ammesso” o “non ammesso”).

2. Prova pratica di laboratorio. Si tratta di un piccolo progetto da svolgere in aula al calcolatore. La prova è giudicata insufficiente se il codice prodotto presenta errori di compilazione o se non produce un output non compatibile con le consegne del compito. Verrà assegnato un voto in trentesimi al compito. 

3. Prova orale: una discussione sulla prova svolta al calcolatore, domande sugli argomenti teorici inseriti nel programma. La prova permette di incrementare o decrementare il voto ottenuto alla prova 2) (di norma al massimo 3 punti). Qualora la prova 3) mettesse in luce evidenti lacune, lo studente può essere rimandato, con l’obbligo di ripetere le tre prove.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere

Modalità di svolgimento dell'insegnamento


Lezioni frontali ed esposizione di schemi ed algoritmi. 


Prerequisiti richiesti

Frequenza e superamento del test finale dei corsi zero di informatica. 

Frequenza lezioni

La frequenza delle lezioni non è obbligatoria ma è fortemente consigliata.



Contenuti del corso

Introduzione alla programmazione

 Il linguaggio C

 I File.

 Prime strutture dati

Algoritmi di ordinamento e ricerca

(definizione formale e esempi di implementazioni con array e liste)

Testi di riferimento

Il linguaggio C Fondamenti e tecniche di programmazione • 9/Ed. Paul J. Deitel - Harvey M. Deitel. ISBN: 9788891906236

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione alla programmazioneLibro di testo, eventuale materiale fornito dal docente.
2Il linguaggio CLibro di testo, eventuale materiale fornito dal docente.
3Costrutti del linguaggio CLibro di testo, eventuale materiale fornito dal docente
4Gestione dei file in CLibro di testo, eventuale materiale fornito dal docente
5Prime strutture dati  libro di testo, eventuale materiale fornito dal docente
6Algoritmi di ordinamento e di ricerca - libro di testo, eventuale materiale fornito dal docente

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L’esame consiste nella verifica degli obiettivi preposti per il corso e cioè:

A tal fine l’esame è composto da tre prove atte a verificare i precedenti punti e si intenderà superato quando tutte e tre le prove saranno valutate sufficientemente:

  1. Prova teorica: un test a risposta multipla atto a verificare la comprensione degli elementi di base della programmazione e delle principali caratteristiche del linguaggio C. Tale test si dovrà svolgere con strumenti informatici in modo da dare immediato feedback allo studente e permettergli di accedere alla prova pratica di laboratorio.

  2. Prova pratica di laboratorio: una serie di esercizi o un piccolo progetto che lo studente dovrà svolgere in autonomia sul calcolatore in aula. Tale prova è inscindibile dalla prova al punto 1 e deve tenersi lo stesso giorno della prova 1.

  3. Orale: una discussione sulla prova svolta al calcolatore, domande sugli argomenti teorici inseriti nel programma.

Le prove 1), 2) e 3) sono sequenziali, pertanto, possono accedere alla prova 2) tutti coloro che abbiano superato la prova 1), e possono accedere alla prova 3) tutti coloro che abbiano superato la prova 2). Le tre prove possono essere superate in appelli o sessioni differenti a sufficienza conseguita nelle prove 1) e 2) sarà considerata valida per tutto l’A.A. (fino al mese di dicembre successivo alla erogazione del corso). Il non superamento della prova 2) comporta la ripetizione della prova 1). Non viene assegnato alcun voto alla prova 1), mentre alla prova 2) viene assegnato un voto in trentesimi. La prova 3) permette di incrementare o  decrementare il voto ottenuto alla prova 2) (di norma al massimo 3 punti). Qualora la prova 3) mettesse in luce evidenti lacune, lo studente può essere rimandato, con l’obbligo di ripetere le tre prove. Le prove 1) e 2) si terranno nelle date ufficiali degli appelli, mentre la prova 3) si tiene in una data successiva a quella dell’appello ufficiale.

La votazione è espressa in trentesimi secondo il seguente schema: 

Voto 29-30 e lode
Lo studente ha una conoscenza approfondita dei concetti fondamentali e delle principali tecniche di programmazione. Riesce prontamente ad analizzare i problemi di programmazione, individuando gli algoritmi e le tecniche di programmazione più idonee alla risoluzione del problema considerato in maniera autonoma e con spirito critico. Ha ottime capacità comunicative e proprietà di linguaggio. 

Voto 26-28
Lo studente ha una buona conoscenza dei concetti fondamentali e delle principali tecniche di programmazione. Riesce ad analizzare i problemi di programmazione, individuando degli algoritmi e tecniche di programmazione idonee alla risoluzione del problema considerato. Ha buone capacità comunicative e proprietà di linguaggio. 

Voto 22-25
Lo studente ha una discreta conoscenza dei concetti fondamentali e delle principali tecniche di programmazione. Riesce ad analizzare i problemi di programmazione, seppure non sempre in maniera esaustiva, individuando degli algoritmi e tecniche di programmazione idonee alla risoluzione del problema considerato. Ha discrete capacità comunicative e proprietà di linguaggio. 

Voto 18-21
Lo studente ha la minima conoscenza dei concetti fondamentali e delle principali tecniche di programmazione. Ha una modesta capacità di analizzare i problemi di programmazione e di individuare degli algoritmi e tecniche di programmazione idonee alla risoluzione del problema considerato. Ha sufficienti capacità comunicative, seppure non sempre una appropriata proprietà di linguaggio. 

Esame non superato
Lo studente non possiede la conoscenza minima richiesta dei contenuti principali dell’insegnamento. La capacità di utilizzare il linguaggio specifico è scarsissima o nulla e non è in grado di applicare autonomamente le conoscenze acquisite.

Esempi di domande e/o esercizi frequenti

Esempi di domande per la prova orale:


English version