ID:
64398
Tipo Insegnamento:
Obbligatorio
Durata (ore):
150
CFU:
15
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Percorso Comune Anno: 1
Anno:
2024
Dati Generali
Periodo di attività
Annuale (19/09/2024 - 05/06/2025)
Syllabus
Obiettivi Formativi
L’insegnamento è il primo di programmazione software. Apprendere il linguaggio di programmazione imperativo C, divenendo capaci di progettare l’algoritmo risolutivo di semplici problemi e realizzarlo nel linguaggio C, anche utilizzando strutture di dato. Saper calcolare la complessità in tempo di un semplice programma/algoritmo.
Le principali conoscenze acquisite saranno:
- nozione di algoritmo e calcolo della complessità di un algoritmo
- architettura della macchina di Von Neumann, e macchina astratta a supporto dell’esecuzione di un programma in linguaggio C
- il linguaggio di programmazione C
- la ricorsione
- la realizzazione in C delle principali strutture di dato, anche dinamiche (tavole, mappe associative, liste, alberi)
- la programmazione su più file.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
− progettare l’algoritmo di soluzione di un semplice problema e realizzarlo mediante il linguaggio di programmazione C
− determinare l’evoluzione a tempo di esecuzione di un programma in linguaggio C
− calcolare la complessità di semplici algoritmi, anche su strutture dati collegate (tavole, liste, alberi).
Il corso è organizzato in due moduli, modulo A (9 CFU) nel primo semestre e modulo B (6 CFU) nel secondo.
Le principali conoscenze acquisite saranno:
- nozione di algoritmo e calcolo della complessità di un algoritmo
- architettura della macchina di Von Neumann, e macchina astratta a supporto dell’esecuzione di un programma in linguaggio C
- il linguaggio di programmazione C
- la ricorsione
- la realizzazione in C delle principali strutture di dato, anche dinamiche (tavole, mappe associative, liste, alberi)
- la programmazione su più file.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
− progettare l’algoritmo di soluzione di un semplice problema e realizzarlo mediante il linguaggio di programmazione C
− determinare l’evoluzione a tempo di esecuzione di un programma in linguaggio C
− calcolare la complessità di semplici algoritmi, anche su strutture dati collegate (tavole, liste, alberi).
Il corso è organizzato in due moduli, modulo A (9 CFU) nel primo semestre e modulo B (6 CFU) nel secondo.
Prerequisiti
------------------------------------------------------------
Modulo: 27000 - MODULO A
------------------------------------------------------------
L'insegnamento non ha prerequisiti, se non quelli di base forniti dalla scuola media superiore, quali la capacità di comprensione di un testo e le conoscenze minime di matematica
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Il modulo non ha prerequisiti, se non quelli di base forniti dalla scuola media superiore, e l'aver seguito e studiato i contenuti del Modulo A.
Modulo: 27000 - MODULO A
------------------------------------------------------------
L'insegnamento non ha prerequisiti, se non quelli di base forniti dalla scuola media superiore, quali la capacità di comprensione di un testo e le conoscenze minime di matematica
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Il modulo non ha prerequisiti, se non quelli di base forniti dalla scuola media superiore, e l'aver seguito e studiato i contenuti del Modulo A.
Metodi didattici
------------------------------------------------------------
Modulo: 27000 - MODULO A
------------------------------------------------------------
Al fine di far acquisire le conoscenze teoriche dell’insegnamento, si svolgono lezioni frontali in aula. Durante le lezioni in aula del modulo A, sono anche svolti esercizi, fornendo il testo di un problema e risolvendolo alla lavagna seguendo i suggerimenti dati dagli studenti, discutendone insieme vantaggi, svantaggi e correggendo eventuali errori.
Al fine di far apprendere le conoscenze pratiche (quali l’uso dei compilatori e degli strumenti di debugging, e la programmazione in C), ogni settimana vengono svolte esercitazioni in laboratorio di informatica, in cui gli studenti potranno scrivere programmi al calcolatore.
Nelle ore di esercitazione in Laboratorio inserite nel corso, gli studenti possono usufruire di tutor didattici in numero congruo per essere seguiti nello svolgimento degli esercizi proposti. Le esercitazioni in laboratorio vengono replicate (tipicamente due volte alla settimana) per permettere la partecipazione a tutti. Ciascuno studente può scegliere l'orario fra quelli disponibili. Gli studenti hanno anche libero accesso al Laboratorio per ulteriori esercitazioni individuali.
Vengono anche fornite, per chi non riuscisse a seguire le lezioni in presenza, le videolezioni su Moodle
https://sea-el.unife.it/el-dip/course/view.php?id=8470
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Al fine di far acquisire le conoscenze teoriche dell’insegnamento, si svolgono lezioni frontali in aula.
Al fine di far apprendere le conoscenze pratiche (quali la programmazione in C), ogni settimana vengono svolte esercitazioni in laboratorio di informatica, in cui gli studenti potranno scrivere programmi al calcolatore.
Nelle ore di esercitazione in Laboratorio inserite nel corso, gli studenti possono usufruire di tutor didattici in numero congruo per essere seguiti nello svolgimento degli esercizi proposti. Gli studenti hanno anche libero accesso al Laboratorio per ulteriori esercitazioni individuali.
Modulo: 27000 - MODULO A
------------------------------------------------------------
Al fine di far acquisire le conoscenze teoriche dell’insegnamento, si svolgono lezioni frontali in aula. Durante le lezioni in aula del modulo A, sono anche svolti esercizi, fornendo il testo di un problema e risolvendolo alla lavagna seguendo i suggerimenti dati dagli studenti, discutendone insieme vantaggi, svantaggi e correggendo eventuali errori.
Al fine di far apprendere le conoscenze pratiche (quali l’uso dei compilatori e degli strumenti di debugging, e la programmazione in C), ogni settimana vengono svolte esercitazioni in laboratorio di informatica, in cui gli studenti potranno scrivere programmi al calcolatore.
Nelle ore di esercitazione in Laboratorio inserite nel corso, gli studenti possono usufruire di tutor didattici in numero congruo per essere seguiti nello svolgimento degli esercizi proposti. Le esercitazioni in laboratorio vengono replicate (tipicamente due volte alla settimana) per permettere la partecipazione a tutti. Ciascuno studente può scegliere l'orario fra quelli disponibili. Gli studenti hanno anche libero accesso al Laboratorio per ulteriori esercitazioni individuali.
Vengono anche fornite, per chi non riuscisse a seguire le lezioni in presenza, le videolezioni su Moodle
https://sea-el.unife.it/el-dip/course/view.php?id=8470
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Al fine di far acquisire le conoscenze teoriche dell’insegnamento, si svolgono lezioni frontali in aula.
Al fine di far apprendere le conoscenze pratiche (quali la programmazione in C), ogni settimana vengono svolte esercitazioni in laboratorio di informatica, in cui gli studenti potranno scrivere programmi al calcolatore.
Nelle ore di esercitazione in Laboratorio inserite nel corso, gli studenti possono usufruire di tutor didattici in numero congruo per essere seguiti nello svolgimento degli esercizi proposti. Gli studenti hanno anche libero accesso al Laboratorio per ulteriori esercitazioni individuali.
Verifica Apprendimento
L’obiettivo della prova d’esame è verificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati.
L’esame è costituito da tre prove, che si svolgono nello stesso giorno.
Prova 1: di programmazione in linguaggio C, svolta in laboratorio di informatica, per valutare la capacità di saper scrivere programmi C con accesso ai file, array e strutture. Questa prova assegna al massimo 24 punti su 62.
Prova 2: di programmazione in linguaggio C, svolta sempre in laboratorio di informatica, per valutare la capacità di saper scrivere programmi C che utilizzano strutture dati dinamiche e la capacità di saper valutare la complessità di un algoritmo/programma C. Questa prova vale 31 punti su 62.
Prova 3: è scritta (domande aperte), per valutare la capacità di saper scrivere funzioni ricorsive, di saper determinare l’evoluzione a tempo di esecuzione di un programma in linguaggio C, di saper descrivere l’architettura di Von Neumann, il concetto di algoritmo, e di saper descrivere i diversi aspetti teorici riguardanti il linguaggio C. Questa prova vale 7 punti su 62.
Il voto finale è data dalla somma dei punteggi nelle diverse prove divisa per 2.
Le prove possono essere sostenute tutte nello stesso giorno (esame da 15 CFU), oppure si possono sostenere due esami parziali: il primo, (PARZIALE A), con le prove 1 e 3, negli appelli di dicembre, gennaio e febbraio e, in seguito, qualora il primo parziale sia sufficiente, il secondo parziale (PARZIALE B) con la prova 2, negli appelli da giugno in poi. Ciascuno dei due parziali è sufficiente se si ottengono almeno 18 punti su 31; se il secondo parziale non è sufficiente, il voto conseguito
nel primo (PARZIALE A) continua ad essere valido FINO A FINE DICEMBRE 2025.
L'esame può essere sostenuto in Inglese se richiesto con almeno una settimana di anticipo.
L’esame è costituito da tre prove, che si svolgono nello stesso giorno.
Prova 1: di programmazione in linguaggio C, svolta in laboratorio di informatica, per valutare la capacità di saper scrivere programmi C con accesso ai file, array e strutture. Questa prova assegna al massimo 24 punti su 62.
Prova 2: di programmazione in linguaggio C, svolta sempre in laboratorio di informatica, per valutare la capacità di saper scrivere programmi C che utilizzano strutture dati dinamiche e la capacità di saper valutare la complessità di un algoritmo/programma C. Questa prova vale 31 punti su 62.
Prova 3: è scritta (domande aperte), per valutare la capacità di saper scrivere funzioni ricorsive, di saper determinare l’evoluzione a tempo di esecuzione di un programma in linguaggio C, di saper descrivere l’architettura di Von Neumann, il concetto di algoritmo, e di saper descrivere i diversi aspetti teorici riguardanti il linguaggio C. Questa prova vale 7 punti su 62.
Il voto finale è data dalla somma dei punteggi nelle diverse prove divisa per 2.
Le prove possono essere sostenute tutte nello stesso giorno (esame da 15 CFU), oppure si possono sostenere due esami parziali: il primo, (PARZIALE A), con le prove 1 e 3, negli appelli di dicembre, gennaio e febbraio e, in seguito, qualora il primo parziale sia sufficiente, il secondo parziale (PARZIALE B) con la prova 2, negli appelli da giugno in poi. Ciascuno dei due parziali è sufficiente se si ottengono almeno 18 punti su 31; se il secondo parziale non è sufficiente, il voto conseguito
nel primo (PARZIALE A) continua ad essere valido FINO A FINE DICEMBRE 2025.
L'esame può essere sostenuto in Inglese se richiesto con almeno una settimana di anticipo.
Testi
------------------------------------------------------------
Modulo: 27000 - MODULO A
------------------------------------------------------------
I lucidi proiettati durante le lezioni in aula o laboratorio sono resi disponibili su Moodle:
https://sea-el.unife.it/el-dip/course/view.php?id=8470
Su Moodle vengono anche forniti i testi delle esercitazioni ed alcuni testi d’esame, eventualmente con soluzione.
Argomenti specifici possono essere approfonditi sui seguenti testi.
Per la parte sul linguaggio C:
S. Ceri, D. Mandrioli, L. Sbattella, Informatica: Programmazione, McGraw-Hill, 2006.
A. Bellini, A. Guidi: Guida al Linguaggio C, McGraw-Hill, 1995.
o su altri testi sul linguaggio C.
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Argomenti specifici possono essere approfonditi sui seguenti testi.
Per la parte sul linguaggio C:
S. Ceri, D. Mandrioli, L. Sbattella, Informatica: Programmazione, McGraw-Hill, 2006.
A. Bellini, A. Guidi: Guida al Linguaggio C, McGraw-Hill, 1995.
o su altri testi sul linguaggio C.
Modulo: 27000 - MODULO A
------------------------------------------------------------
I lucidi proiettati durante le lezioni in aula o laboratorio sono resi disponibili su Moodle:
https://sea-el.unife.it/el-dip/course/view.php?id=8470
Su Moodle vengono anche forniti i testi delle esercitazioni ed alcuni testi d’esame, eventualmente con soluzione.
Argomenti specifici possono essere approfonditi sui seguenti testi.
Per la parte sul linguaggio C:
S. Ceri, D. Mandrioli, L. Sbattella, Informatica: Programmazione, McGraw-Hill, 2006.
A. Bellini, A. Guidi: Guida al Linguaggio C, McGraw-Hill, 1995.
o su altri testi sul linguaggio C.
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Argomenti specifici possono essere approfonditi sui seguenti testi.
Per la parte sul linguaggio C:
S. Ceri, D. Mandrioli, L. Sbattella, Informatica: Programmazione, McGraw-Hill, 2006.
A. Bellini, A. Guidi: Guida al Linguaggio C, McGraw-Hill, 1995.
o su altri testi sul linguaggio C.
Contenuti
------------------------------------------------------------
Modulo: 27000 - MODULO A
------------------------------------------------------------
L’insegnamento e’ organizzato in due moduli: Modulo A nel primo semestre, e Modulo B nel secondo. Ciascun modulo include ore di didattica nella forma di lezioni ed esercitazioni, correlate tra loro, e alternate nel corso di ogni settimana, per consolidare gli argomenti man mano.
Nel Modulo A, circa due terzi delle ore di lezione sono erogate in aula e un terzo come ore di esercitazioni guidate in laboratorio. Gli argomenti affrontati nel Modulo A sono:
- Nozione di algoritmo
- La Macchina di Von Neumann
- La programmazione strutturata
- Il linguaggio C, le sue strutture di controllo, tipi primitivi, vettori, struct, puntatori, funzioni e passaggio dei parametri, iterazione e ricorsione, accesso ai file.
- Il modello "run-time" del C
- Gli argomenti della linea di comando
- la programmazione su più file.
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Il Modulo B (6 CFU) include ore di didattica nella forma di lezioni ed esercitazioni, correlate tra loro, e alternate nel corso di ogni settimana, per consolidare gli argomenti man mano.
Nel Modulo B, circa metà delle ore sono dedicate a lezioni, la parte restante a lezioni ed esercitazioni in Laboratorio. In laboratorio gli studenti verificano direttamente, programmando, ciò che il docente introduce nel corso della lezione (con un approccio learning-by-doing). Le esercitazioni pratiche consolidano gli argomenti legati alla programmazione e alle strutture dati presentati a lezione.
Gli argomenti affrontati nel Modulo B sono:
- Complessità degli algoritmi e calcolo della complessità temporale
- Algoritmi e strutture di dato anche dinamiche in C
- Programmazione in C di algoritmi con strutture dati (tavole, mappe associative) e strutture dati collegate di tipo lista e albero (anche in Laboratorio)
- La programmazione per componenti.
Modulo: 27000 - MODULO A
------------------------------------------------------------
L’insegnamento e’ organizzato in due moduli: Modulo A nel primo semestre, e Modulo B nel secondo. Ciascun modulo include ore di didattica nella forma di lezioni ed esercitazioni, correlate tra loro, e alternate nel corso di ogni settimana, per consolidare gli argomenti man mano.
Nel Modulo A, circa due terzi delle ore di lezione sono erogate in aula e un terzo come ore di esercitazioni guidate in laboratorio. Gli argomenti affrontati nel Modulo A sono:
- Nozione di algoritmo
- La Macchina di Von Neumann
- La programmazione strutturata
- Il linguaggio C, le sue strutture di controllo, tipi primitivi, vettori, struct, puntatori, funzioni e passaggio dei parametri, iterazione e ricorsione, accesso ai file.
- Il modello "run-time" del C
- Gli argomenti della linea di comando
- la programmazione su più file.
------------------------------------------------------------
Modulo: 27002 - MODULO B
------------------------------------------------------------
Il Modulo B (6 CFU) include ore di didattica nella forma di lezioni ed esercitazioni, correlate tra loro, e alternate nel corso di ogni settimana, per consolidare gli argomenti man mano.
Nel Modulo B, circa metà delle ore sono dedicate a lezioni, la parte restante a lezioni ed esercitazioni in Laboratorio. In laboratorio gli studenti verificano direttamente, programmando, ciò che il docente introduce nel corso della lezione (con un approccio learning-by-doing). Le esercitazioni pratiche consolidano gli argomenti legati alla programmazione e alle strutture dati presentati a lezione.
Gli argomenti affrontati nel Modulo B sono:
- Complessità degli algoritmi e calcolo della complessità temporale
- Algoritmi e strutture di dato anche dinamiche in C
- Programmazione in C di algoritmi con strutture dati (tavole, mappe associative) e strutture dati collegate di tipo lista e albero (anche in Laboratorio)
- La programmazione per componenti.
Lingua Insegnamento
ITALIANO
Corsi
Corsi
3 anni
No Results Found
Persone
Persone (3)
Docenti di ruolo di IIa fascia
No Results Found