Dipartimento di Ingegneria e architettura Ingegneria informatica Fondamenti di informatica ING-INF/05 (9 CFU) – (Ingegneria Informatica) Pds 2023-2024 – I anno

Home Didattica Corsi di Laurea triennali e Magistrali Ingegneria informatica (Ingegneria informatica) Frequentare il corso (Ingegneria Informatica) Pds 2023-2024 Fondamenti di informatica ING-INF/05 (9 CFU) – (Ingegneria Informatica) Pds 2023-2024 – I anno
Insegnamento Fondamenti di Informatica
CFU 9
Settore Scientifico Disciplinare ING-INF/05
Metodologia didattica

Attività didattica frontale e Attività di laboratorio/esercitazione

Nr. ore di aula 42
Nr. ore di studio autonomo 167
Nr. ore di laboratorio 16
Mutuazione NO
Annualità I
Periodo di svolgimento Primo Semestre
Docente Ruolo SSD docente
MARIO COLLOTTA PA ING-INF/05
* PO (professore ordinario), PA (professore associato), RTD (ricercatore a tempo determinato), RU (Ricercatore a tempo indeterminato), DC (Docente a contratto).
Propedeuticità NO
Prerequisiti NO
Sede delle lezioni Facoltà di Ingegneria e Architettura - UNIKORE
Orario delle lezioni

L’orario delle lezioni è pubblicato sull’Agenda WEB dell’Università degli Studi di Enna “Kore”:

https://gestioneaule.unikore.it/agendaweb_unikore/

 

 

Obiettivi formativi

L’obiettivo di questo insegnamento è quello di farsi che lo studente sia in grado di analizzare un problema di natura ingegneristica, trovarne una soluzione e implementare la stessa attraverso un processo di risoluzione in modo automatico in forma algoritmica, utilizzando un linguaggio di programmazione di alto livello. Al termine, lo studente deve, quindi, aver appreso i principi fondamentali della disciplina e della programmazione procedurale. Questa disciplina ha l’obiettivo di fornire agli studenti le conoscenze fondamentali relative alla rappresentazione dei dati, agli algoritmi e ai principi di funzionamento di un calcolatore. Inoltre, lo studente, attraverso le esercitazioni in classe e le attività laboratoriali è inoltre introdotto ai fondamenti della programmazione e alle principali metodologie di soluzione automatica dei problemi.

Contenuti del Programma
N. Argomento tipologia Durata
1 Panoramica sui Sistemi di Elaborazione delle Informazioni nella società moderna.  Cenni di progettazione di un sistema tecnologico e di sistemi software.La rappresentazione dell’informazione e la codifica delle informazioni: Rappresentazione binario/naturale, rappresentazione in modulo e segno, rappresentazione in complemento a due. Operatori binari: scorrimento logico e aritmetico. Operatori booleani, Cenni su Algebra di Boole, Funzioni logiche, Espressione logiche, Applicazioni dell’algebra booleana. Cenni di codifica digitale di immagini e video.

 

Esempi, sviluppo e analisi di alcuni casi di studio ed esercizi.

 

 Frontale 3 h
 

 

 

 

 

 

 

Laboratorio/Esercitazione

 

 

 

 

 

 

 

2 h

2  

Gli algoritmi per la soluzione di problemi di natura matematica e ingegneristica: Rappresentazione mediante flow-chart.

 

Esempi, sviluppo e analisi di alcuni esercizi.

 

 

Frontale

 

3 h

 

 

Laboratorio/Esercitazione

 

 

3 h

3.a  

I linguaggi di programmazione, i compilatori e gli interpreti. Integrated Development Environement (IDE), concetti di programmazione tradizionale.

 

Frontale 3 h
3.B  

Il linguaggio C: Sintassi, costrutti, strutture dati, funzioni, passaggio dei parametri, programmazione modulare.

 

Frontale 7 h
Esempi, sviluppo e analisi di alcuni esercizi. Laboratorio/Esercitazione  

1 h

 

3.C  

Il linguaggio C: Strutture dati composte: Array e Array bidimensionali. Il preprocessore (direttive e compilazione condizionale).

 

Frontale 6 h
Esempi, sviluppo e analisi di alcuni esercizi. Laboratorio/Esercitazione  

3 h

 

3.D  

Il linguaggio C: I puntatori: allocazione statica e dinamica delle risorse.

 

Frontale 7 h
Esempi, sviluppo e analisi di alcuni esercizi. Laboratorio/Esercitazione  

3 h

 

3.E  

Il linguaggio C:  Strutture composte in C (e.g., struct e union) e tipi definiti dall’utente. Strutture e funzioni, Stringhe di caratteri. Esempi e casi di studio.

 

Frontale 7 h
Esempi, sviluppo e analisi di alcuni esercizi. Laboratorio/Esercitazione  

3 h

 

3.F  

Il linguaggio C:  Strutture ricorsive con i puntatori: liste concatenate, pile, code, alberi. Esempi e casi di studio.

 

Frontale 4 h
Esempi, sviluppo e analisi di alcuni esercizi. Laboratorio/Esercitazione  

1 h

 

 

 

Risultati di apprendimento (descrittori di Dublino)

Gli studenti dovranno aver conseguito le seguenti abilità, conoscenze e competenze:

  • Conoscenza e capacità di comprensione (knowledge and understanding): Lo studente avrà conoscenza della formalizzazione del processo di risoluzione di un problema di natura ingegneristica in forma algoritmica e alla sua implementazione mediante un linguaggio di programmazione di alto livello.
  1. La memorizzazione e l’elaborazione dei dati in un calcolatore, la architettura di un calcolatore e le basi del linguaggio macchina, le istruzioni aritmetico logiche e la comunicazione tra dispositivi.
  2. Le strutture iterative e ricorsive;
  3. Le fasi di esecuzione di un programma, la differenza tra programmazione imperativa, dichiarativa, e orientata agli oggetti;
  4. Comprensione degli algoritmi, sia iterativi che ricorsivi, e capacità di proporre algoritmi per la soluzione di problemi noti.

 

  • Conoscenza e capacità di comprensione applicate (applying knowledge and understanding): Lo studente sarà in grado di sviluppare semplici applicazioni software utilizzando il linguaggio di programmazione C.
  1. Conoscenza dei principi per la programmazione imperativa, ed in particolar modo del linguaggio di programmazione C;
  2. Analizzare e comprendere gli elementi che caratterizzano i linguaggi di programmazione procedurale; c
  3. Progettare e implementare programmi software secondo il paradigma di progettazione procedurale; d.

 

  • Autonomia di giudizio (making judgements): Lo studente sarà in grado di analizzare un problema e descrivere il processo di risoluzione in modo automatico in forma algoritmica, nonché di visualizzarne graficamente l’output dell’elaborazione numerica effettuata da un programma scritto in linguaggio C. Lo studente sarà, inoltre, in grado di valutare la qualità di una soluzione in termini di semplicità, leggibilità, efficienza e possibilità di riutilizzo della soluzione stessa (e quindi anche del codice).  L’autonomia di giudizio potrà essere un’espressione della capacità dello studente di proporre soluzioni a problemi di media complessità per la gestione dei dati.

 

  • Abilità comunicative (communication skills): Lo studente acquisirà la capacità di comunicare ed esprimere problematiche inerenti l’oggetto dell’insegnamento, mediante l’so della corretta terminologia. Sarà in grado di sostenere conversazioni su tematiche relative alla programmazione mediante linguaggi di programmazione di alto livello e alla risoluzione algoritmica di problemi ingegneristici.

 

  • Capacità di apprendere (learning skills): Lo studente avrà acquisito le problematiche di sviluppo di applicazioni software nel campo ingegneristico e sarà in grado di approfondire autonomamente le conoscenze di base impartite.
Testi per lo studio della disciplina
  • Testi principali consigliati: Alessandro Bellini, Andrea Guidi. Linguaggio C – Guida alla Programmazione. Mc.Graw- Hill.
  • Materiale didattico a disposizione degli studenti: Approfondimenti ed esercizi svolti forniti dal docente (scaricabili dalla pagina web dedicata).
  • Testi complementari: Informatica: Arte e Mestiere 4/Ed, D. Mandrioli, S. Ceri, L. Sbattella, P. Cremonesi e G. Cugola, McGraw-Hill.
Metodi e strumenti per la didattica

Le lezioni saranno accompagnate da un’analisi di casi di studio ed esempi al fine di stimolare una concezione pratica dell’apprendimento e per avviare una riflessione a partire da situazioni reali, su cui avanzare ipotesi e soluzioni.

 

La frequenza dell’insegnamento è fortemente consigliata ma non obbligatoria.

Modalità di accertamento delle competenze

L’accertamento delle competenze avverrà attraverso un’unica prova orale che verterà:

  1. contribuisce per il 50% sulla valutazione finale la discussione di un esercizio da svolgere al calcolatore in laboratorio, in un tempo massimo di 60 minuti, sugli argomenti affrontati nei capitoli dal n.1 al n. 20 del testo consigliato);
  2. contribuisce per il 50% sulla valutazione finale la discussione di un elaborato svolto dallo studente (argomento a scelta dello studente – è possibile trarre spunto dagli esercizi al calcolatore pubblicati nella sezione web dedicata) che preveda l’implementazione in linguaggio C di una soluzione progettuale basata su almeno due delle strutture dati analizzate nel corso nelle attività in aula di cui al punto 3.F (Liste, Pile, Code ed Alberi).

La proposta di un elaborato progettuale è volta a dimostrare l’acquisizione degli argomenti indicati nel punto 3.F, nonché nei capitoli 21 e 22 del testo consigliato. Domande di approfondimento sull’elaborato riguarderanno i metodi e le scelte progettuali per la gestione e l’elaborazione dei dati nel caso di studio in esame; la discussione, indicativamente, durerà tra i 10 e i 15 minuti.

In caso di necessità, gli esaminandi saranno ripartiti in più giornate, secondo un calendario determinato nel giorno dell’appello ovvero, se possibile, anticipatamente sulla base delle prenotazioni pervenute. La valutazione dell’apprendimento sarà focalizzata sulla valutazione dei risultati attesi, in accordo con i descrittori di Dublino.

Il colloquio si intende superato, con la votazione di 18/30, quando lo studente dimostra di possedere le seguenti competenze minime:

  • conoscenza e capacità di realizzazione di semplici conversioni nei principali sistemi di numerazione (binario, ottale, esadecimale e decimale);
  • capacità di elaborazione delle conoscenze acquisite per formulare semplici valutazioni di funzionalità̀ in termini di utilizzo dei meccanismi per la formulazione algoritmica di problemi di natura informatica e/o di tipo ingegneristico;
  • conoscenze delle tecniche di base per la implementazione di programmi in linguaggio C;
  • capacità di autonomia nell’applicazione di metodi progettuali in relazione a semplici problemi di natura informatica utilizzando array, puntatori, funzioni e le principali strutture dati

 

Il voto di 30/30, con eventuale lode, è assegnato quando lo studente dimostra:

  • piena conoscenza e capacità di realizzazione di semplici conversioni nei principali sistemi di numerazione (binario, ottale, esadecimale e decimale);
  • ampia capacità di elaborazione delle conoscenze acquisite per formulare semplici valutazioni di funzionalità̀ in termini di utilizzo dei meccanismi per la formulazione algoritmica di problemi di natura informatica e/o di tipo ingegneristico;
  • ampia capacità di autonomia nell’applicazione di metodi progettuali in relazione a semplici problemi di natura informatica utilizzando i puntatori e le strutture semplici e composte nonché le principali strutture dati.

La prova di esame si intende non superata se lo studente mostra un livello insufficiente di conoscenza degli argomenti trattati e non dimostra una sufficiente capacità nell’applicazione delle conoscenze acquisite.

Date di esame

Le date di esami saranno pubblicate sull’Agenda WEB dell’Università degli Studi di Enna “Kore” :

https://gestioneaule.unikore.it/agendaweb_unikore/

 

Modalità e orario di ricevimento

Gli studenti si ricevono, di norma, il Lunedì ed il Mercoledì, al fine di ridurre i tempi di attesa, si chiede di voler formalizzare la richiesta di ricevimento tramite e-mail.

Indietro