ID:
27000
Tipo Insegnamento:
Obbligatorio
Durata (ore):
90
CFU:
9
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Percorso Comune Anno: 1
Anno:
2024
Dati Generali
Periodo di attività
Primo semestre (primi anni) (19/09/2024 - 17/12/2024)
Syllabus
Obiettivi Formativi
Il corso è il primo insegnamento di programmazione software. Apprendere il linguaggio di programmazione imperativo C e il linguaggio a oggetti Java, divenendo capaci di individuare l’algoritmo risolutivo di semplici problemi e realizzarlo nel linguaggio C e/o nel linguaggio Java, anche utilizzando strutture di dato. Inoltre, 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 (liste, alberi)
- la programmazione su più file
- la programmazione a oggetti e il linguaggio Java
- la Java Collections Framework come implementazione in Java di strutture di dato.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
− capacità di risolvere semplici problemi con tecniche algoritmiche e realizzarle mediante il linguaggio di programmazione C o Java
− essere in grado di individuare l’evoluzione a tempo di esecuzione di un programma in linguaggio C
− essere in grado di valutare la complessità di semplici algoritmi, anche su strutture dati collegate (liste, alberi).
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 (liste, alberi)
- la programmazione su più file
- la programmazione a oggetti e il linguaggio Java
- la Java Collections Framework come implementazione in Java di strutture di dato.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
− capacità di risolvere semplici problemi con tecniche algoritmiche e realizzarle mediante il linguaggio di programmazione C o Java
− essere in grado di individuare l’evoluzione a tempo di esecuzione di un programma in linguaggio C
− essere in grado di valutare la complessità di semplici algoritmi, anche su strutture dati collegate (liste, alberi).
Prerequisiti
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
Metodi didattici
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.
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.
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, 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 con le
prove 1 e 3 negli appelli di dicembre, gennaio e febbraio e in seguito
(qualora il primo parziale sia sufficiente), negli appelli da giugno in
poi, il secondo parziale con la prova 2. Ciascuno dei due parziali è
sufficiente se si ottengono almeno 18 punti su 31; se uno dei due
parziali non è sufficiente può essere sostenuto nuovamente; in
particolare se il secondo parziale non è sufficiente il voto conseguito
nel primo continua ad essere valido.
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, 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 con le
prove 1 e 3 negli appelli di dicembre, gennaio e febbraio e in seguito
(qualora il primo parziale sia sufficiente), negli appelli da giugno in
poi, il secondo parziale con la prova 2. Ciascuno dei due parziali è
sufficiente se si ottengono almeno 18 punti su 31; se uno dei due
parziali non è sufficiente può essere sostenuto nuovamente; in
particolare se il secondo parziale non è sufficiente il voto conseguito
nel primo continua ad essere valido.
Testi
I lucidi proiettati durante le lezioni in aula o laboratorio sono resi disponibili su Google Classroom (codice j44nxjf).
Su Google Classroom 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.
Su Google Classroom 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.
Contenuti
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.
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.
Lingua Insegnamento
ITALIANO
Corsi
Corsi
3 anni
No Results Found
Persone
Persone
No Results Found