Modules | Area | Type | Hours | Teacher(s) | |
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's, Python scripting, Assembler programming.
Le conoscenze verrano verificate tramite:
Le modalità di verifica potranno subire delle modifiche a seconda delle restrizioni dovute al Covid
The knowledge acquired will be assessed using:
The assessment criteria can be change because of Covid related restrictions.
Lo studente sviluperà capacità di:
The student will acquire skills in:
Compiti di programmazione in classe e a casa, progetto finale.
Programming execises at home and in class, final project.
Al termine del corso gli studenti dovrebbero essere in grado di svolgere in maniera efficiente compiti complessi utilizzando anche programmi concorrenti
At the end of the course students should be able to efficiently tackle complex tasks, possibily using concurrent programs.
Progetto finale e orale.
Final project and oral exam
Buona conoscenza di almeno un linguaggio di programmazione imperativo.
Conoscenza delle strutture dati elementari: array e liste (ordinati), pile, stack, alberi, tabelle hash.
Conoscenza dei comandi principali delle shell Linux/Unix.
Good knowledge of at least one imperative language
Knowlegde of elementary data structures: (sorted) arrays and lists, queues, stacks, trees, hash tables
Knowledge of the man Linux/Unix shell commands.
E' fortemente consigliato di seguire in parallelo il corso di Architetture e Sistemi Operativi
IT is strongly suggested to follow the course on Architectures and Operating Systems
Modalità: Lezioni frontali
Attività di apprendimento:
Frequenza fortemente consigliata ma non obbligatoria.
Metodi di insegnamento:
Delivery: frontal lectures in mixed mode (in person and online)
Learning activities:
Attendance: strongly advised but not mandatory.
Teaching methods:
Programmazione sequenziale in C, incluso utilizzo di puntatori, 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 concorrente in C utilizzando processi e thread.
Communicazione e sincronizazzione tra processi e thread.
Programmazione in Assembler ARM.
Scripting in Python.
Applicazioni, esempi e collegamenti 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à:
The exam will be held in two modalities: