CdSINFORMATICA
Codice732AA
CFU12
PeriodoAnnuale
LinguaItaliano
Moduli | Settore/i | Tipo | Ore | Docente/i | |
LABORATORIO II | INF/01 | LABORATORI | 96 |
|
Lo studente acquisirà conoscenze relativi alla programmazione di sistema in C, programmazione concorrente, utilizzo di Makefile, scripting in Python, programmazione in Assembler.
The student will acquire knowledge related to system programming in C, concurrent programming, use of Makefile, Python scripting, Assembler programming.
Le conoscenze verrano verificate tramite:
- Compiti in classe - esercizi di programmazione da svolgere in un tempo ridotto.
- Compiti a casa - esercizi di programmazione più complessi.
- Progetto - compitò più complesso che deve integrare vari diversi concetti visti a lezione.
- Verifica orale finale.
Le modalità di verifica potranno subire delle modifiche a seconda delle restrizioni dovute al Covid
The knowledge acquired will be assessed using:
- Programming tests in class.
- Programming homeworks.
- Project.
- Final oral exam.
The assessment criteria can be change because of Covid related restrictions.
Lo studente sviluperà capacità di:
- Sviluppo di programmi in C.
- Design e sviluppo di soluzioni multithreading in C.
- Sviluppo di script Python.
- Sviluppo di programmi in Assembler.
The student will acquire skills in:
- Development of C programming language.
- Design and evelopment of multithreading solutions in C.
- Development of Python Scripts.
- Development of Assembler programs.
Compiti di programmazione in classe e a casa, progetto.
Programming homeworks at home and in class, project.
Modalità: Lezioni frontali in modalità mista (in presenza e online)
Attività di apprendimento:
- frequenza lezioni
- studio individuale
- svolgere esercizi di programmazione individualmente
- frequenza di ricevimenti tenuti dagli assistenti e docenti
Frequenza fortemente consigliata ma non obbligatoria.
Metodi di insegnamento:
- lezioni frontali con slide
- esercizi di programmazione
Delivery: frontal lectures in mixed mode (in person and online)
Learning activities:
- attending lectures
- individual study
- solving of programming exercises individually
- attending office hours with the assistants and professors
Attendance: strongly advised but not mandatory.
Teaching methods:
- lectures with slides
- programming exercises
Programmazione sequenziale in C, incluso utilizzo di pointer, stringhe, librerie standard I/O.
Programmazione in C utilizzando chiamate di sistema.
Debugging con GDB e controllo accessi alla memoria con valgrind.
Utilizzo di Makefile.
Programmazione concorrenta in C utilizzando processi e thread.
Communicazione e sincronizazzione tra processi e thread.
Programmazione in Assembler ARM.
Scripting in Python.
Applicazioni, esempi e link con altri corsi del secondo anno.
C programming, including using pointers, strings, standard I/O libraries.
C programming using system calls.
GDB debugging and memroy check using valgrind.
Using Makefile.
Concurrent programming in C using processes and threads.
Communication and sincronisation among processes and threads.
ARM Assembler programming
Python Scripting.
P. Deitel, H. Deitel. Il linguaggio C. Fondamenti e tecniche di programmazione. Pearson.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
P. Deitel, H. Deitel. C: how to program. Pearson.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
L'esame si svolgerà con una delle due seguenti modalità:
- Verifiche intermedie durante l'anno, tramite compiti di programmazione a casa e in classe + mini-progetto finale + orale.
- Per gli studenti che non hanno passato le verifiche intermedie: progetto + orale.
The exam will be held in two modalities:
- Intermediate programming tests during the academic year, including homework and in-class tests + final mini project + oral exam.
- For the syudents who did not pass the intermediate evaluation: project + oral exam.